广义相加模型gam 中,处理后的各参数都代表什么意思?

2024-05-19 03:51

1. 广义相加模型gam 中,处理后的各参数都代表什么意思?

原文链接:http://tecdat.cn/?p=20882 
 
1导言
这篇文章探讨了为什么使用广义相加模型 是一个不错的选择。为此,我们首先需要看一下线性回归,看看为什么在某些情况下它可能不是最佳选择。

2回归模型
假设我们有一些带有两个属性Y和X的数据。如果它们是线性相关的,则它们可能看起来像这样:
a<-ggplot(my_data, aes(x=X,y=Y))+geom_point()+
 

为了检查这种关系,我们可以使用回归模型。线性回归是一种使用X来预测变量Y的方法。将其应用于我们的数据将预测成红线的一组值:
a+geom_smooth(col="red", method="lm")+
 

这就是“直线方程式”。根据此等式,我们可以从直线在y轴上开始的位置(“截距”或α)开始描述,并且每个单位的x都增加了多少y(“斜率”),我们将它称为x的系数,或称为β)。还有一点自然的波动,如果没有的话,所有的点都将是完美的。我们将此称为“残差”(ϵ)。数学上是:

或者,如果我们用实际数字代替,则会得到以下结果:

 
 

这篇文章通过考虑每个数据点和线之间的差异(“残差)然后最小化这种差异来估算模型。我们在线的上方和下方都有正误差和负误差,因此,通过对它们进行平方并最小化“平方和”,使它们对于估计都为正。这称为“普通最小二乘法”或OLS。

3非线性关系如何?
因此,如果我们的数据看起来像这样,我们该怎么办:
 

我们刚刚看到的模型的关键假设之一是y和x线性相关。如果我们的y不是正态分布的,则使用广义线性模型 (Nelder&Wedderburn,1972),其中y通过链接函数进行变换,但再次假设f(y)和x线性相关。如果不是这种情况,并且关系在x的范围内变化,则可能不是最合适的。我们在这里有一些选择:
我们可以使用线性拟合,但是如果这样做的话,我们会在数据的某些部分上面或者下面。
我们可以分为几类。我在下面的图中使用了三个,这是一个合理的选择。同样,我们可能处于数据某些部分之下或之上,而在类别之间的边界附近似乎是准确的。例如,如果x = 49时,与x = 50相比,y是否有很大不同?
我们可以使用多项式之类的变换。下面,我使用三次多项式,因此模型适合:。这些的组合使函数可以光滑地近似变化。这是一个很好的选择,但可能会极端波动,并可能在数据中引起相关性,从而降低拟合度。
请点击输入图片描述

请点击输入图片描述
4样条曲线
多项式的进一步细化是拟合“分段”多项式,我们在数据范围内将多项式链在一起以描述形状。“样条线”是分段多项式,以绘图员用来绘制曲线的工具命名。物理样条曲线是一种柔性条,可以弯曲成形,并由砝码固定。在构造数学样条曲线时,我们有多项式函数,二阶导数连续,固定在“结”点上。
下面是一个ggplot2 对象,该 对象的 geom_smooth 的公式包含ns 函数中的“自然三次样条”  。这种样条曲线为“三次”,并且使用10个结
请点击输入图片描述

请点击输入图片描述
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.9710它比线性模型好吗?
让我们对比具有相同数据的普通线性回归模型:
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,其拟合度比线性回归模型好得多。

12参考:
NELDER, J. A. & WEDDERBURN, R. W. M. 1972. Generalized Linear Models. Journal of the Royal Statistical Society. Series A (General), 135, 370-384.
HARRELL, F. E., JR. 2001. Regression Modeling Strategies, New York, Springer-Verlag New York.

请点击输入图片描述
最受欢迎的见解
1.R语言多元Logistic逻辑回归 应用案例
2.面板平滑转移回归(PSTR)分析案例实现
3.matlab中的偏最小二乘回归(PLSR)和主成分回归(PCR)
4.R语言泊松Poisson回归模型分析案例
5.R语言回归中的Hosmer-Lemeshow拟合优度检验
6.r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现
7.在R语言中实现Logistic逻辑回归
8.python用线性回归预测股票价格
9.R语言如何在生存分析与Cox回归中计算IDI,NRI指标

广义相加模型gam 中,处理后的各参数都代表什么意思?

2. 求广义可加模型的程序:SAS程序或R程序

广义可加模型可用SAS软件的gam过程来实现,具体代码如下:
ods graphics on;
proc gam data=ds plots=components(clm);
      model y=spline(x1,df) loess(x2) spline2(x3,x4) param(x5)/method=gcv;
run;
ods graphics off;

3. r语言怎么提取提取出广义相加模型结果的系数

result$coef[1]
result$coef[2]等等,看你需要的系数是结果中的第几个就直接提取出来

r语言怎么提取提取出广义相加模型结果的系数

4. 求大神帮忙用R语言自己写一个GLM广义线性模型的函数

请教如何实现广义线性模型GLM作图
1、广义线性模型GLM很简单,举个例子,药物的疗效和服用药物的剂量有关。这个相关性可能是多种多样的,可能是简单线性关系(发烧时吃一片药退烧0.1度,两片药退烧0.2度,以此类推;这种情况就是一般线性模型),也可能是比较复杂的其他关系,如指数关系(一片药退烧0.1度,两片药退烧0.4度),对数关系等等。这些复杂的关系一般都可以通过一系列数学变换变成线性关系,以此统称为广义线性模型。
2、广义线性混合模型GLMM比较复杂,GLM要求观测值误差是随机的,而GLMM则要求误差值并非随机,而是呈一定分布的。举个例子,我们认为疗效可能与服药时间相关,但是这个相关并不是简简单单的疗效随着服药时间的变化而改变。更可能的是疗效的随机波动的程度与服药时间有关。比如说,在早上10:00的时候,所有人基本上都处于半饱状态,此时吃药,相同剂量药物效果都差不多。但在中午的时候,有的人还没吃饭, 有的人吃过饭了,有的人喝了酒,结果酒精和药物起了反应,有的人喝了醋,醋又和药物起了另一种反应。显然,中午吃药会导致药物疗效的随机误差非常大。这种疗效的随机误差(而非疗效本身)随着时间的变化而变化,并呈一定分布的情况,必须用广义线性混合模型了。

5. 求教如何使用R语言应用GAM进行时间序列

金融数据必须是时间序列,才可进行经济统计分析。建立时间序列,必须有日期作为数据框的一列。R语言建立时间序列的两个函数是ts()和as.xts()。

求教如何使用R语言应用GAM进行时间序列

6. matlab能做GAM(广义相加模型)吗

我也想了解这方面的,不过好像matlab没法做  ,它可以方便作的:
1、矩阵运算 
MTALAB最强的项目就是矩阵运算,计算效率远远高于C/C++,是常用的工程计算线性方程组的计算软件。
2、MTALB强大的作图功能
MTALAB具有强大的3D绘图功能,函数调用简单,并且很多功能都以工具箱的方式可供应用,即使是没有接触过MATLAB,学会绘制3D图,也很容易
3、数据拟合功能
MATLAB具有强大数据分析拟合能力,常用的拟合工具箱CFTOOL
4、数值积分微分运算
MATLAB内部有现成的一些常用的数值计算方法,例如牛顿法、高斯法等,同时MATLAB也可以进行符号运算,进行符号积分以及微分运算。
5、MATLAB还可以进行仿真实验,以及图像处理等等专业功能。

7. r语言中广义线性模型的解释值怎么出来

人互相关爱,让他们更加亲近、和谐、还记得那一天发生的事…… 
那天,要数学考试.离考试还有五分钟的时候,我再一次检查我的文具盒,看看文具准备好了没.中性笔,好好地躺在文具盒中;铅笔,乖乖地趴在文具盒里内;橡皮,安静地坐在文具盒里;尺子,咦?尺子跑哪去了?我再一次检查,嘴里还喃喃自语“中性笔,铅笔,橡皮……”还是不见尺子.我看了看表,糟了,快上课了,怎么办?怎么办呢?我着急地看了看旁边的同学,心里想“要是有人可以帮帮我就好了”----可是没有,周围的同学都在认真地准备着东西,只有我,在焦急地东张西望,六神无主的我心里想有一只调皮的小兔子在嘭嘭直跳,我心想“昨天晚上还在呀,现在怎么没了呢?难道它长翅膀飞了?那我考试怎么办?这次百分之八十的题目都要用上尺子,我该怎么办?向

r语言中广义线性模型的解释值怎么出来

8. r语言多个gam拟合图怎么放在 一个坐标里

  需要先双击拟合好的曲线,然后在弹出的对话框中点击最下方的 Worksheet,这时候会再弹出拟合曲线的数据列表。
  有了数据之后,你需要用到图层工具。
  在原图中左上角有一个带数字的灰色小正方形,这个就是图层的标志。
  数字1代表第一个图层,以此类推。当然,你现在可能只有这一个图层。
最新文章
热门文章
推荐阅读