【视频】广义相加模型(GAM)在电力负荷预测中的应用(一)https://developer.aliyun.com/article/1485893
5光滑函数
样条曲线可以是光滑的或“摇摆的”,这可以通过改变节点数(k)或使用光滑惩罚γ来控制。如果我们增加结的数目,它将更“摇摆”。这可能会更接近数据,而且误差也会更小,但我们开始“过度拟合”关系,并拟合我们数据中的噪声。当我们结合光滑惩罚时,我们会惩罚模型中的复杂度,这有助于减少过度拟合。
6广义相加模型(GAM)
广义加性模型(GAM)(Hastie,1984)使用光滑函数(如样条曲线)作为回归模型中的预测因子。
这些模型是严格可加的,这意味着我们不能像正常回归那样使用交互项,但是我们可以通过重新参数化作为一个更光滑的模型来实现同样的效果。事实并非如此,但本质上,我们正转向一种模型,如:
摘自Wood _(2017)_的GAM的更正式示例 是:
其中:
- μi≡E(Yi),Y的期望
- Yi〜EF(μi,ϕi),Yi是一个响应变量,根据均值μi和形状参数ϕ的指数族分布。
- Ai是任何严格参数化模型分量的模型矩阵的一行,其中θ为对应的参数向量。
- fi是协变量xk的光滑函数,其中k是每个函数的基础。
如果您要建立回归模型,但怀疑光滑拟合会做得更好,那么GAM是一个不错的选择。它们适合于非线性或有噪声的数据。
7 gam拟合
那么,如何 为上述S型数据建立 GAM模型?
在这里,我将使用三次样条回归 :
gam(Y ~ s(X, bs="cr")
上面的设置意味着:
s()指定
光滑器。还有其他选项,但是s是一个很好的默认选项
bs=“cr”告诉它使用三次回归样条('basis')。
- s函数计算出要使用的默认结数,但是您可以将其更改为k=10,例如10个结。
8模型输出:
查看模型摘要:
## ## Family: gaussian ## Link function: identity ## Parametric coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 43.9659 0.8305 52.94 <2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Approximate significance of smooth terms: ## edf Ref.df F p-value ## s(X) 6.087 7.143 296.3 <2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## R-sq.(adj) = 0.876 Deviance explained = 87.9% ## GCV = 211.94 Scale est. = 206.93 n = 300
- 显示了我们截距的模型系数,所有非光滑参数将在此处显示
- 每个光滑项的总体含义如下。
- 这是基于“有效自由度”(edf)的,因为我们使用的样条函数可以扩展为许多参数,但我们也在惩罚它们并减少它们的影响。
9检查模型:
该 gam.check()
函数可用于查看残差图,但它也可以测试光滑器以查看是否有足够的结来描述数据。但是如果p值很低,则需要更多的结。
## ## Method: GCV Optimizer: magic ## Smoothing parameter selection converged after 4 iterations. ## The RMS GCV score gradient at convergence was 1.107369e-05 . ## The Hessian was positive definite. ## Model rank = 10 / 10 ## ## Basis dimension (k) checking results. Low p-value (k-index<1) may ## indicate that k is too low, especially if edf is close to k'. ## ## k' edf k-index p-value ## s(X) 9.00 6.09 1.1 0.97
10它比线性模型好吗?
让我们对比具有相同数据的普通线性回归模型:
anova(my\_lm, my\_gam) ## Analysis of Variance Table ## ## Model 1: Y ~ X ## Model 2: Y ~ s(X, bs = "cr") ## Res.Df RSS Df Sum of Sq F Pr(>F) ## 1 298.00 88154 ## 2 292.91 60613 5.0873 27540 26.161 < 2.2e-16 *** ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
我们的方差分析函数在这里执行了f检验,我们的GAM模型明显优于线性回归。
11小结
所以,我们看了什么是回归模型,我们是如何解释一个变量y和另一个变量x的。其中一个基本假设是线性关系,但情况并非总是这样。当关系在x的范围内变化时,我们可以使用函数来改变这个形状。一个很好的方法是在“结”点处将光滑曲线链接在一起,我们称之为“样条曲线”
我们可以在常规回归中使用这些样条曲线,但是如果我们在GAM的背景中使用它们,我们同时估计了回归模型以及如何使我们的模型更光滑。
上面的示例显示了基于样条的GAM,其拟合度比线性回归模型好得多。
【视频】广义相加模型(GAM)在电力负荷预测中的应用(三)https://developer.aliyun.com/article/1485896