繁体   English   中英

线性回归中的 NAs model 总结

[英]NAs in linear regression model summary

我正在尝试对内置的 ChickWeight 数据运行线性回归 model,其中预测变量小鸡、时间、饮食、时间饮食相互作用作为固定效应,体重作为结果。

我在 model 摘要中得到了一些 NA。 难道我做错了什么?

model2<-lm(weight~ Chick + Time + Diet + Time*Diet, data = Data)
summary(model2)

如果您查看 model 的摘要,您会看到:

Coefficients: (3 not defined because of singularities)

这意味着您的某些预测变量完全相关——在本例中为ChickDiet这就是为什么某些系数显示为NA的原因。

即使情况并非如此,我也不确定您为什么要为Chick添加固定效果。 如果您想解释每只小鸡有多个观察结果这一事实,您可以改为包括Chick的随机截距。 使用lme4

library(lme4)

Data <- ChickWeight

model2_mixed <- lmer(
  weight ~ Time*Diet + (1 | Chick), 
  data = Data
)
summary(model2_mixed)

Output:

Linear mixed model fit by REML ['lmerMod']
Formula: weight ~ Time * Diet + (1 | Chick)
   Data: Data

REML criterion at convergence: 5466.9

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.3158 -0.5900 -0.0693  0.5361  3.6024 

Random effects:
 Groups   Name        Variance Std.Dev.
 Chick    (Intercept) 545.7    23.36   
 Residual             643.3    25.36   
Number of obs: 578, groups:  Chick, 50

Fixed effects:
            Estimate Std. Error t value
(Intercept)  31.5143     6.1163   5.152
Time          6.7115     0.2584  25.976
Diet2        -2.8807    10.5479  -0.273
Diet3       -13.2640    10.5479  -1.258
Diet4        -0.4016    10.5565  -0.038
Time:Diet2    1.8977     0.4284   4.430
Time:Diet3    4.7114     0.4284  10.998
Time:Diet4    2.9506     0.4340   6.799

Correlation of Fixed Effects:
           (Intr) Time   Diet2  Diet3  Diet4  Tm:Dt2 Tm:Dt3
Time       -0.426                                          
Diet2      -0.580  0.247                                   
Diet3      -0.580  0.247  0.336                            
Diet4      -0.579  0.247  0.336  0.336                     
Time:Diet2  0.257 -0.603 -0.431 -0.149 -0.149              
Time:Diet3  0.257 -0.603 -0.149 -0.431 -0.149  0.364       
Time:Diet4  0.254 -0.595 -0.147 -0.147 -0.432  0.359  0.359

正如@zephryl 指出的那样,在整个实验过程中,每只小鸡都被喂食相同的饮食,因此如果我们将小鸡作为固定效应包括在内,小鸡效应就会与饮食效应混淆。 直觉上,例如,对于一只体重没有增加多少的小鸡,我们不能说是因为他们的饮食不是很好,还是那只小鸡很不幸是一只虚弱的小鸡。

所以我们考虑了实验的设计:我们对每只小鸡进行了多次测量,因此每只小鸡都是一测量值。

我们得到与@zephryl 的混合效果 model 非常相似的估计,所以一切都很好。

fit.geeglm <- geepack::geeglm(
  weight ~ Time * Diet,
  id = ChickWeight$Chick,
  family = "gaussian",
  data = ChickWeight
)
broom::tidy(fit.geeglm)
#> # A tibble: 8 × 5
#>   term        estimate std.error  statistic  p.value
#>   <chr>          <dbl>     <dbl>      <dbl>    <dbl>
#> 1 (Intercept)   30.9       3.06  102.       0       
#> 2 Time           6.84      0.736  86.3      0       
#> 3 Diet2         -2.30      5.22    0.194    0.660   
#> 4 Diet3        -12.7       4.87    6.77     0.00925 
#> 5 Diet4         -0.139     4.85    0.000820 0.977   
#> 6 Time:Diet2     1.77      1.42    1.55     0.213   
#> 7 Time:Diet3     4.58      1.29   12.6      0.000387
#> 8 Time:Diet4     2.87      0.968   8.80     0.00301

reprex package (v2.0.1) 创建于 2022-03-18

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM