如何解决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 举报,一经查实,本站将立刻删除。