一般线性模型不假设所考虑的变量是正态分布的,因此,我们可以使用其他概率分布来创建一般线性模型。我们实际上应该说,如果数据不遵循正态分布,那么我们可以使用通用线性模型尝试不同的分布,并检查模型是否合适。p值在选择最佳模型中起着重要作用,我们可能希望从模型对象中提取它们。这可以通过使用coef函数来完成。
请看以下数据帧-
> set.seed(123) > var1<-rnorm(20,0.5) > var2<-rnorm(20,1.5) > var3<-rnorm(20,2.5) > Response<-rpois(20,2) > df<-data.frame(var1,var2,var3,Response) > df
输出结果
var1 var2 var3 Response 1 -0.06047565 0.4321763 1.8052930 2 2 0.26982251 1.2820251 2.2920827 1 3 2.05870831 0.4739956 1.2346036 1 4 0.57050839 0.7711088 4.6689560 1 5 0.62928774 0.8749607 3.7079620 1 6 2.21506499 -0.1866933 1.3768914 6 7 0.96091621 2.3377870 2.0971152 1 8 -0.76506123 1.6533731 2.0333446 0 9 -0.18685285 0.3618631 3.2799651 1 10 0.05433803 2.7538149 2.4166309 3 11 1.72408180 1.9264642 2.7533185 2 12 0.85981383 1.2049285 2.4714532 4 13 0.90077145 2.3951257 2.4571295 2 14 0.61068272 2.3781335 3.8686023 3 15 -0.05584113 2.3215811 2.2742290 2 16 2.28691314 2.1886403 4.0164706 2 17 0.99785048 2.0539177 0.9512472 3 18 -1.46661716 1.4380883 3.0846137 3 19 1.20135590 1.1940373 2.6238542 5 20 0.02720859 1.1195290 2.7159416 2
> General_LM<-glm(Response~var1+var2+var3,df,family=poisson()) > summary(General_LM)
输出结果
Call: glm(formula = Response ~ var1 + var2 + var3, family = poisson(), data = df) Deviance Residuals: Min 1Q Median 3Q Max -1.8886 -0.6977 -0.1502 0.7453 1.4222 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) 1.00642 0.50653 1.987 0.0469 * var1 0.18546 0.16256 1.141 0.2539 var2 -0.04053 0.18234 -0.222 0.8241 var3 -0.10772 0.16206 -0.665 0.5063 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 (Dispersion parameter for poisson family taken to be 1) Null deviance: 18.704 on 19 degrees of freedom Residual deviance: 16.376 on 16 degrees of freedom AIC: 74.43 Number of Fisher Scoring iterations: 5 > coef(summary(General_LM))[,4] (Intercept) var1 var2 var3 0.0469347 0.2539288 0.8241122 0.5062662