在R中,当lm()我使用时,如果我na.action = na.pass在调用中设置lm(),那么在汇总表中,对于任何无法估计的系数都存在NA(因为在这种情况下缺少单元格).
但是,如果我只提取从摘要对象的系数,即使用summary(myModel)$coefficients或coef(summary(myModel)),那么NA的省略.
当我提取系数时,我希望包含NA,就像我打印摘要时一样.有没有办法做到这一点?
设置options(na.action = na.pass)似乎没有帮助.
这是一个例子:
> set.seed(534)
> myGroup1 <- factor(c("a","a","a","a","b","b"))
> myGroup2 <- factor(c("first","second","first","second","first","first"))
> myDepVar <- rnorm(6, 0, 1)
> myModel <- lm(myDepVar ~ myGroup1 + myGroup2 + myGroup1:myGroup2)
> summary(myModel)
Call:
lm(formula = myDepVar ~ myGroup1 + myGroup2 + myGroup1:myGroup2)
Residuals:
1 2 3 4 5 6
-0.05813 0.55323 0.05813 -0.55323 -0.12192 0.12192
Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.15150 0.23249 -0.652 0.561
myGroup11 0.03927 0.23249 0.169 0.877
myGroup21 -0.37273 0.23249 -1.603 0.207
myGroup11:myGroup21 NA NA NA NA
Residual standard error: 0.465 on 3 degrees of freedom
Multiple R-squared: 0.5605, Adjusted R-squared: 0.2675
F-statistic: 1.913 on 2 and 3 DF, p-value: 0.2914
> coef(summary(myModel))
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.15149826 0.2324894 -0.6516352 0.5611052
myGroup11 0.03926774 0.2324894 0.1689012 0.8766203
myGroup21 -0.37273117 0.2324894 -1.6032180 0.2072173
> summary(myModel)$coefficients
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.15149826 0.2324894 -0.6516352 0.5611052
myGroup11 0.03926774 0.2324894 0.1689012 0.8766203
myGroup21 -0.37273117 0.2324894 -1.6032180 0.2072173
Run Code Online (Sandbox Code Playgroud)
为什么不直接从拟合模型中提取系数:
> coef(myModel)
(Intercept) myGroup1b
-0.48496169 -0.07853547
myGroup2second myGroup1b:myGroup2second
0.74546233 NA
Run Code Online (Sandbox Code Playgroud)
这似乎是最简单的选择。
na.action与此无关。请注意,您没有通过na.action = na.pass您的示例。
na.action是一个全局选项,用于处理传递给模型拟合的数据NA,通常与公式结合使用;它也是一个函数的名称。R 根据参数和公式中表达的模型的符号表示建立所谓的模型框架。此时,将检测到任何变量,并且默认选项是通过删除任何变量的样本来从数据中删除。还有一些最有用的替代方案,它们会在拟合过程中删除,但会在拟合值、残差等的正确位置添加回来。阅读和了解更多信息,以及更多相关信息。na.action()dataNAna.actionna.omit()NANAna.exclude()NANA?na.omit?na.action?options