我使用下面的代码使用二元响应拟合广义加法模型:
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)
这是情节:
另一个平滑的术语也就像一条简单的线。为什么平滑的术语很重要但不弯曲?我应该改变任何选择吗?
答案 0 :(得分:3)
p值用于测试曲线是否等于零,而不是它是否等于直线(当自动估算平滑参数时,后者不是最自然的测试)。