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

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

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