下面是我的代码:
install.packages("wooldridge")
library(wooldridge)
data(wage1)
wage1reg<-lm(lwage ~ educ + exper + tenure, data = wage1) 我试图根据这三个变量的均值来预测拟合值。正确的代码是什么?这些东西不起作用:
wagemeans<-data.frame(c(colMeans(data.frame(wage1$educ, wage1$exper, wage1$tenure))))
predict(wage1reg, newdata=wagemeans)另外,如果我尝试其他东西,比如
wage1.subset1.means<-data.frame(colMeans(subset(wage1, select=c(educ, exper, tenure))))
predict(wage1reg, newdata=wage1.subset1.means)它也不能工作。
找出三个变量的平均值的预测值的最佳方法是什么?
发布于 2019-10-31 01:48:12
wagemeans数据帧的格式不正确,无法用于predict()。改用这个
library(wooldridge)
data(wage1)
wage1reg<-lm(lwage ~ educ + exper + tenure, data = wage1)
wagemeans<-data.frame(educ=mean(wage1$educ),exper=mean(wage1$exper),tenure=mean(wage1$tenure))
predict(wage1reg,newdata = wagemeans)
#output
# 1
# 1.623268 对于超过三列的列,使用dplyr包会更容易
library(wooldridge)
data(wage1)
wage1reg<-lm(lwage ~ educ + exper + tenure, data = wage1)
library(dplyr)
wagemeans <- wage1 %>%
summarise_at(colnames(wage1[,2:4]),mean,na.rm=TRUE)
predict(wage1reg,newdata = wagemeans)您所需要做的就是编辑lm(),使其包含新变量和列号(当前为2:4)。
发布于 2019-10-31 16:25:38
谢谢。
如果我有100个变量(虚拟变量、交互术语等),其中一些变量是“即时”创建的,有没有其他方法可以正确地命名呢?
https://stackoverflow.com/questions/58630843
复制相似问题