当我在 R 中执行回归并使用类型因子时,它可以帮助我避免在数据中设置分类变量。但是如何从回归中删除不显着的因素以仅显示显着变量?
例如:
dependent <- c(1:10)
independent1 <- as.factor(c('d','a','a','a','a','a','a','b','b','c'))
independent2 <- c(-0.71,0.30,1.32,0.30,2.78,0.85,-0.25,-1.08,-0.94,1.33)
output <- lm(dependent ~ independent1+independent2)
summary(output)
这导致以下回归模型:
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.6180 1.0398 4.441 0.00676 **
independent1b 3.7471 2.1477 1.745 0.14148
independent1c 5.5597 2.0736 2.681 0.04376 *
independent1d -3.7129 2.3984 -1.548 0.18230
independent2 -0.1336 0.7880 -0.170 0.87203
如果我想拉出无关紧要的独立1级别(b,d),有没有办法可以做到这一点?
在这种情况下,将数据设置为具有分类变量很容易,但是当我包含周数或其他具有很多级别的因素时,它变得不方便。
这是使用分类变量构建模型的方法。正如你所看到的,构建数据最终变得更加痛苦,但也给了我更多的控制权。
regressionData <- data.frame(cbind(1:10,c(-0.71,0.30,1.32,0.30,2.78,0.85,-0.25,-1.08,-0.94,1.33),c(0,1,1,1,1,1,1,0,0,0),c(0,0,0,0,0,0,0,1,1,0),c(0,0,0,0,0,0,0,0,0,1),c(1,0,0,0,0,0,0,0,0,0)))
names(output) = c('dependent','independent2','independenta', 'independentb','independentc','independentd')
attach(regressionData)
result <- lm(dependent~independent2+independentb+independentc+independentd)
summary(result)
现在我可以删除 Independent2 因为它无关紧要
result <- lm(dependent~independentb+independentc+independentd)
summary(result)
我会删除独立的,因为它并不重要
result <- lm(dependent~independentb+independentc)
summary(result)
但在这种情况下,调整后的 R 平方下降(我什至不打算进行部分 F 检验),因为它很重要,但在许多情况下这不是真的,我需要从回归中删除分类,因为它是吃掉在这种情况下很重要的自由度,并可能掩盖其他重要变量的值。