首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中子样本均值的预测

R中子样本均值的预测
EN

Stack Overflow用户
提问于 2019-10-31 01:31:39
回答 2查看 37关注 0票数 0

下面是我的代码:

代码语言:javascript
复制
install.packages("wooldridge")
library(wooldridge)
data(wage1)
wage1reg<-lm(lwage ~ educ + exper + tenure, data = wage1) 

我试图根据这三个变量的均值来预测拟合值。正确的代码是什么?这些东西不起作用:

代码语言:javascript
复制
wagemeans<-data.frame(c(colMeans(data.frame(wage1$educ, wage1$exper, wage1$tenure))))
predict(wage1reg, newdata=wagemeans)

另外,如果我尝试其他东西,比如

代码语言:javascript
复制
wage1.subset1.means<-data.frame(colMeans(subset(wage1, select=c(educ, exper, tenure))))
predict(wage1reg, newdata=wage1.subset1.means)

它也不能工作。

找出三个变量的平均值的预测值的最佳方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2019-10-31 01:48:12

wagemeans数据帧的格式不正确,无法用于predict()。改用这个

代码语言:javascript
复制
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包会更容易

代码语言:javascript
复制
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)。

票数 0
EN

Stack Overflow用户

发布于 2019-10-31 16:25:38

谢谢。

如果我有100个变量(虚拟变量、交互术语等),其中一些变量是“即时”创建的,有没有其他方法可以正确地命名呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58630843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档