R 是否有函数或包可以模拟从lm()返回的对象的预测?

R 是否有函数或包可以模拟从lm()返回的对象的预测?,r,regression,lm,R,Regression,Lm,是否有一个类似于“runif”、“rnorm”等的函数可以生成线性模型的模拟预测?我可以自己编写代码,但代码很难看,我认为这是以前有人做过的事情 slope = 1.5 intercept = 0 x = as.numeric(1:10) e = rnorm(10, mean=0, sd = 1) y = slope * x + intercept + e fit = lm(y ~ x, data = df) newX = data.frame(x = as.numeric(11:15)) 我

是否有一个类似于“runif”、“rnorm”等的函数可以生成线性模型的模拟预测?我可以自己编写代码,但代码很难看,我认为这是以前有人做过的事情

slope = 1.5
intercept = 0
x = as.numeric(1:10)
e = rnorm(10, mean=0, sd = 1)
y = slope * x + intercept + e
fit = lm(y ~ x, data = df)
newX = data.frame(x = as.numeric(11:15))
我感兴趣的是一个如下所示的函数:

sims = rlm(1000, fit, newX)

该函数将根据新的x变量返回1000个模拟的y值。

表明Gavin Simpson修改
统计信息的建议:::simulate.lm
是可行的

##修改stats::通过立即插入一些跟踪代码来模拟.lm

##在“ftd”一行之后,您的Q中的最后一行让我感到困惑。
x
是固定的;您的意思是模拟
y
(响应)对于新的
x
数据?抱歉,加文,你是对的。我的意思是说响应将是模拟的。这已经被编辑过了。好的,你可以查看
?simulate
,但这只适用于当前的
x
。但是你可以将它(
simulate.lm()
)更改为调用
predict()
在模型对象上使用
newdata=newX
而不是当前对
fitted()的调用
然后让它像普通代码一样继续。假设未使用
权重,因为这会使问题变得复杂…我看到这只是来自stats.stackexchange。这个问题写在这里。但我认为如果在那里以更一般的方式问它,而不使用程序,会更有趣详细说明。就我的两分钱。那太好了。第二个解决方案很好而且干净。第一个解决方案使用了一些我还没有学会的调试技术。非常好。谢谢。@PirateGrunt--很高兴你欣赏了
trace()
example——它是R开发和代码探索的真正强大工具。如果您经常使用它,您可能会很感激,这使得查找与所需代码插入点相对应的
at=
的值变得更加容易。(我经常使用Michael Hoffman回答中的
print.func()
。试试看,例如使用
print.func。)(stats:::simulate.lm)
)。尽情享受吧!如果有多个预测器,这个函数会是什么样子?我知道这已经有七年历史了(StackOverflow太疯狂了),但这是错误的。您正在向simulateX函数提供新的协变量数据,但您需要提供的是新的响应。如果您将
X=newX
替换为
X=predict(fit,new_data=newX),这将起作用
在simulateX函数调用中。@DaltonHance你说得对。我已编辑了答案的两部分以更正错误。谢谢!