如何在ggplot的geom_smooth中限制GAM模型的最大自由度?
在ggplot的geom_smooth(method=gam)中设置自由度限制的方法
- 直接通过
geom_smooth()的method.args参数,给gam方法传递k参数即可,以此限制自由度,让ggplot的拟合结果和你单独使用mgcv包gam()函数时一致。 - 针对你的两个数据集,分别对应设置
k=9和k=4,示例代码如下:
# 处理含9个观测值的数据集 ggplot(your_data_9, aes(x = 自变量列名, y = 因变量列名)) + geom_point() + geom_smooth(method = "gam", method.args = list(k = 9), formula = y ~ s(x)) # 处理含4个观测值的数据集 ggplot(your_data_4, aes(x = 自变量列名, y = 因变量列名)) + geom_point() + geom_smooth(method = "gam", method.args = list(k = 4), formula = y ~ s(x))
- 注意:代码里的
formula = y ~ s(x)是mgcv中gam模型常用的平滑项形式,如果你之前单独用gam()时用了其他平滑函数或公式,替换成对应的形式即可。
内容的提问来源于stack exchange,提问作者Barbara Perez de Araújo
相关产品推荐
相关产品推荐

