【问题标题】:Prediction using lm on a data frame input - model is not finding input variables [duplicate]在数据框输入上使用 lm 进行预测 - 模型未找到输入变量 [重复]
【发布时间】:2014-09-01 15:17:48
【问题描述】:

这是一个非常基本的问题(我是新手...)。我正在尝试使用线性模型测试一个简单的预测,但我似乎没有正确指定输入的数据框。

在调用预测时,我不断收到一条消息,即 newdata 有 12 行但变量有 21 行 - 我认为这是因为未找到输入变量。我看到之前针对单个输入发布的解决方案(建议使用向量而不是数据框),但这似乎无法解决我的问题。非常感谢任何帮助。

################Code is below ######################

# Reading in a csv Text File. Has Headers Quantity, Income, Price and 21 rows of values
CSVData <- read.table("C:/Users/.../CSVInput.txt",header=T,sep=",")

Model=lm(CSVData$Quantity~CSVData$Income+CSVData$Price)

###Creating a new test data set for prediction##################
BindCols1=seq(5,16,by=1)
BindCols2=seq(20,75,by=5)
PredFrame=data.frame(cbind(BindCols1,BindCols2))
colnames(PredFrame) <- c('Income','Price')
colnames(PredFrame)

coef(Model)
pc=predict(Model,PredFrame)

当我运行代码时,我得到一个

"警告消息:'newdata' 有 12 行,但找到的变量有 21 行”

。此外,它不使用新输入(来自 PredFrame)进行预测,而是使用用于拟合模型的数据。

提前感谢您的建议!!!

【问题讨论】:

    标签: r input prediction lm


    【解决方案1】:

    用途:

    Model <- lm(Quantity ~ Income + Price,data=CSVData)
    

    lm(...)formula=... 参数引用 data=... 参数中指定的数据框中的列名。完成拟合后,该信息将被存储,因此您可以使用 predict(Model,newdata=...) 并且只要 newdataformula 的 RHS 上的列相同,它将起作用。

    【讨论】:

      猜你喜欢
      • 2019-07-19
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 1970-01-01
      • 2017-07-25
      相关资源
      最近更新 更多