如何解决如何使用R中的分类变量获取标准化的Beta进行回归
我想使用lm.beta函数获得标准化的回归系数。但是,当我运行代码时,它给了我一个错误:
var(if(is.vector(x)|| is.factor(x))x else as double(x),na.rm = na.rm)中的错误: 调用因子x上的var(x)已失效。 使用“ all(duplicated(x)[-1L])”之类的东西来测试常数向量。
我认为这是由于模型中的分类变量所致。然后我查看了软件包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)
我有两个问题:
感谢任何建议!
解决方法
我遇到了同样的问题,这是因为您的回归模型中有一个变量是分类的。
我认为如果在应用 as.numeric(x)
之前添加 x
- lm
是 lm.beta
方程中的一个因子 - 应该可以正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。