问题描述
我想计算 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 (将#修改为@)