【问题标题】:How to get the confidence intervals for LOWESS fit using R?如何使用 R 获得 LOWESS 拟合的置信区间?
【发布时间】:2014-05-08 05:10:51
【问题描述】:

对于 R 的“stats”包的 LOWESS 回归线的置信区间 (CI),我没有找到任何令人满意的答案:

plot(cars, main = "lowess(cars)")
lines(lowess(cars), col = 2)

但我不确定如何在它周围绘制 95% CI?但是,我知道我可以从

V = s^2*sum(w^2)

其中,s2= 估计误差方差,w= 应用于 X 的权重。因此,95% CI 应该是

Y plus/minus 2*sqrt(V(Y))

我知道有一种方法可以从 loess fit 中获取 CI,但我更喜欢 LOWESS,因为它很健壮。感谢您的建议。

【问题讨论】:

  • 看看ellipse
  • 哦,对了。好点@rawr。你想要置信带还是置信椭圆?
  • 你为什么说loess不健壮?例如,?loess.control 记录了在稳健拟合中使用的迭代次数。如果您想要适合 LO(W)ESS 的 SE,我可能会使用 loess()predict.loess()

标签: r linear-regression


【解决方案1】:

您可以使用predict()loess() 执行此操作。 lowessloess 更老,并且功能更少,但速度更快。但在这种情况下,我会使用loess,如下所示。

plot(cars)
plx<-predict(loess(cars$dist ~ cars$speed), se=T)

lines(cars$speed,plx$fit)
lines(cars$speed,plx$fit - qt(0.975,plx$df)*plx$se, lty=2)
lines(cars$speed,plx$fit + qt(0.975,plx$df)*plx$se, lty=2)

【讨论】:

  • 由于predict.loess(...,se=T) 还返回模型的估计df,因此通常使用它可能更准确:plx$fit +/- qt(0.975,plx$df)*plx$se
  • 谢谢,但您知道我的数据与美丽的“汽车”数据不同。其化学元素浓度有时有0.10的较低限制。 LOESS 的缺点是它预测负值(这是不可能的),但 LOWESS 不会,因为它更健壮。我尝试更改 loess.control 参数,但没有输出。我在这里找到了一个棘手的答案:stackoverflow.com/questions/21166218/…。但添加额外的浓度是不现实的,就像污染环境数据一样。 span>
  • 好吧,那么您应该发布一个最小的工作示例来展示您的特定问题。
  • 有些方法可以获得拟合曲线的斜率及其不确定性吗? span>
猜你喜欢
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 2021-06-13
  • 1970-01-01
  • 1970-01-01
  • 2014-07-14
  • 1970-01-01
相关资源
最近更新 更多