全文下载链接:http://tecdat.cn/?p=20904
环境科学中的许多数据不适合简单的线性模型,最好用广义相加模型(GAM)来描述(点击文末“阅读原文”获取完整代码数据)。
相关视频
这基本上就是具有 光滑函数的广义线性模型(GLM)的扩展 。当然,当您使用光滑项拟合模型时,可能会发生许多复杂的事情,但是您只需要了解基本原理即可。
相关视频
理论
让我们从高斯线性模型的方程开始 :
GAM中发生的变化是存在光滑项:
这仅意味着对线性预测变量的贡献现在是函数f。从概念上讲,这与使用二次项()或三次项(
)作为预测变量没什么不同。
在这里,我们将重点放在样条曲线上。在过去,它可能类似于分段线性函数。
例如,您可以在模型中包含线性项和光滑项的组合
或者我们可以拟合广义分布和随机效应
一个简单的例子
让我们尝试一个简单的例子。首先,让我们创建一个数据框,并创建一些具有明显非线性趋势的模拟数据,并比较一些模型对该数据的拟合程度。
x <- seq(0, pi * 2, 0.1)
sin_x <- sin(x)
y <- sin_x + rnorm(n = length(x), mean = 0, sd = sd(sin_x / 2))
Sample <- data.frame(y,x)
library(ggplot2)
ggplot(Sample, aes(x, y)) + geom_point()
尝试拟合普通的线性模型:
lm_y <- lm(y ~ x, data = Sample)
并使用geom_smooth
in 绘制带有数据的拟合线 ggplot
ggplot(Sample, aes(x, y)) + geom_point() + geom_smooth(method = lm)
查看图或 summary(lm_y)
,您可能会认为模型拟合得很好,但请查看残差图
plot(lm_y, which = 1)