平滑项类似于广义线性模型中的简单线(包mgcv)

时间:2017-07-09 18:53:25

标签: r gam mgcv

我使用下面的代码使用二元响应拟合广义加法模型:

library(mgcv)
attach(mydata)
m = gam(y ~ dm  + af + s(BMI) + s(sleepworkday), family=binomial(logit), data=mydata, method="REML")
summary(m)

不是dm和af也是二进制的。结果是:

Family: binomial 
Link function: logit 

Formula:
y ~ dm + af + s(BMI) + s(sleepworkday)

Parametric coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -1.3683     0.1291 -10.600  < 2e-16 ***
dmyes        -1.0930     0.3019  -3.621 0.000294 ***
afyes        -2.5139     1.0209  -2.462 0.013801 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
              edf Ref.df Chi.sq p-value  
s(BMI)          1.000  1.000  4.834  0.0279 *
s(sleepworkday) 1.112  1.216  5.700  0.0305 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.0447   Deviance explained = 6.58%
-REML = 247.49  Scale est. = 1         n = 606

似乎两个平滑的术语都很重要。但他们吃的只是一条简单的线:

plot(m)

这是情节:

Plot of smooth term BMI

另一个平滑的术语也就像一条简单的线。为什么平滑的术语很重要但不弯曲?我应该改变任何选择吗?

1 个答案:

答案 0 :(得分:3)

p值用于测试曲线是否等于零,而不是它是否等于直线(当自动估算平滑参数时,后者不是最自然的测试)。