平滑项就像广义线性模型中的一条简单线(包 mgcv)
Smooth terms are like a simple line in a generalized linear model (package 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)
剧情如下:
另一个平滑项也像一条简单的线。为什么平滑项显着但不弯曲?我应该更改任何选项吗?
p 值用于测试曲线是否等于零,而不是它是否等于直线(当自动估计平滑参数时,后者不是最自然的测试)。
我使用以下代码拟合了一个具有二元响应的广义加性模型:
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)
剧情如下:
另一个平滑项也像一条简单的线。为什么平滑项显着但不弯曲?我应该更改任何选项吗?
p 值用于测试曲线是否等于零,而不是它是否等于直线(当自动估计平滑参数时,后者不是最自然的测试)。