问题描述
使用黄土(y〜x)进行预测,我发现R中一个随机变量的黄土估计。现在,我想执行100个蒙特卡洛模拟来找到标准误差。我使用了以下R代码,但在所有100个仿真中它都返回相同的值。请告诉我我哪里出问题了。
set.seed(6)
pn = replicate(100,predict(fit,data=data.frame(X=78)),simplify=FALSE)
plot(pn)
sd(pn)
解决方法
正如注释中所述:如果您给预测提供相同的fit
对象和相同的X
值,它将始终返回相同的答案。有两种明显的方法可以解决这个问题。
第一:您正在使用的predict
函数实际上是predict.loess
包中的stats
。它有一个参数se
,如果调用predict(fit,...,se = TRUE)
,它将为每个预测值返回一个估计的标准误差。因此,请检查一下是否可以满足您的需要,而无需自己进行编程:
cf. http://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/predict.loess
第二:如果您希望从predict
调用中获得不同的预测,则需要向其传递不同的fit
对象。您可以通过引导输入到loess
als Roland在评论中建议的数据来获取这些信息。