如何用R中的分类变量获得回归的标准贝塔系数



我想用lm.beta函数得到一个标准化的回归系数。然而,当我运行代码时,它给了我一个错误:

var中的错误(if(is.vvector(x(|| is.factor(x((x else as.double(x(,na.rm=na.rm(:对因子x调用var(x(是无效的。使用类似"all(duplicated(x([-1L]("的方法来测试常量向量。

我认为这是由于我的模型中有一个分类变量。然后我查阅了Package'lm.beta'1的R文档,当我运行该示例时,我仍然得到了相同的错误。代码如下:

## Annette Dobson (1990) "An Introduction to Generalized Linear Models". 
## Page 9: Plant Weight Data.
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2, 10, 20, labels = c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
# standardize
lm.D9.beta <- lm.beta(lm.D9)
print(lm.D9.beta)
summary(lm.D9.beta)
coef(lm.D9.beta)

我有两个问题:

分类变量可以用于lm.beta函数吗
  • 如何避免这个错误
  • 非常感谢您的建议!

    我也遇到了同样的问题,这是因为变量在回归模型中是分类的。

    我认为,如果在应用lm.beta之前添加as.numeric(x)——xlm方程中的一个因子——它应该可以正常工作。

    最新更新