如何在R中为smooth.spline绘制引导样本?

问题描述

我正在为一些引导样本绘制所有平滑样条,但我遇到了一个问题,即这些图往往会“吓坏”并失去平滑度。我不明白为什么会这样。代码如下:

library(splines)
library(boot)

# data generation
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)

knots <- quantile(x)[c(2,4)]

# End of data generation


def <- function(df,i) {
  df1 <- df[unique(i),]
  ft <- smooth.spline(df1$x,df1$y)
  pred <- predict(ft,rng)$y

  plot(df,col='green')
  points(df1,col='red')
  print(unique(i))
  lines(rng,pred)

}
boot(df,def,R=10)$t

你可以看到我在这里写了 unique(i),这大大减少了“破碎”情节的数量,但并没有消除它们。

这是一个“好”的情节,用以下代码生成

good

这里是“坏”的:

bad

这显然不是 3 节的样条(认)。

我做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)