微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R 中平滑样条的 95% 置信区间

如何解决R 中平滑样条的 95% 置信区间

我想计算 smooth.spline 的置信区间,但 predict 函数中似乎没有这样的选项。我试着像这样应用公式:

lines(rng,predicted + 1.96*st.dev/sqrt(n),lty = 'dashed',lwd=2)
lines(rng,predicted - 1.96*st.dev/sqrt(n),lwd=2)

但这不是我要寻找的逐点 CI。通常,您在 ,interval = "confidence" 函数中编写 predict,它会返回下限和上限,但此处并非如此。

这是一个例子:

library(splines)

x_ = c(0.3,0.8,1.6,2.7)
y_ = c(3.5,2.3,3.2,5.0)
n = 50 - length(x_)
set.seed(0)
x = seq(0,3,length.out=n) + runif(n,0.1)
y = x*sin(3*x) + runif(n)
x = c(x,x_)
y = c(y,y_)

st.dev <- sd(y)
z <- qnorm(1 - .05/2)
rng <- seq(min(x),max(x),length.out= 100)

df <- data.frame(x=x,y=y)

ft <- smooth.spline(x,y)

pred <- predict(ft,rng,interval = "confidence")$y

lines(rng,pred,col="green",lwd=3)


plot(x,y,col='red',pch=19)

lines(rng,lwd=3)

lines(rng,pred + z*st.dev/sqrt(n),pred - z*st.dev/sqrt(n),lwd=2)


那我该怎么做?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。