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 (将#修改为@)