说我运行以下内容 lm
my.model = lm(distance ~ speed, data = my.data)
Run Code Online (Sandbox Code Playgroud)
我可以做以下事情来做一个元素预测
predict(my.model, speed = c(40))
Run Code Online (Sandbox Code Playgroud)
情况就是这样:我有一个lm,我知道它做了什么(它是速度距离的回归),但我不知道回归量被命名为速度.我怎么还能预测?
predict(my.model, ??? = c(40))
Run Code Online (Sandbox Code Playgroud)
我可以得到回归者的名字,names(my.model$coefficients)但我无法弄清楚如何将其传递给预测
predict(my.model, names(my.model$coefficients)[2] = c(40)) 不行
有什么建议?
谢谢!
使用内置BOD示例运行lm,然后将一个元素列表或数据框传递给predict使用setNames以适当地设置名称:
fm <- lm(demand ~ Time, BOD)
predict(fm, setNames(list(5.5), variable.names(fm)[2]))
## 1
## 17.98929
Run Code Online (Sandbox Code Playgroud)
根本不使用不同的方法predict.fm从上面使用:
coef(fm) %*% c(1, 5.5)
## [,1]
## [1,] 17.98929
Run Code Online (Sandbox Code Playgroud)