# 乱数の種を固定する B <- 100 # ブートストラップ反復回数 n <- length(cholost$z) # 標本の大きさ r60 <- numeric(B) # ブートストラップ回帰平均値 r100 <- numeric(B) # ブートストラップ回帰平均値 for (b in 1:100){ # ブートストラップ反復開始 bt <- sample(1:n, replace=TRUE) # ブートストラップ標本番号 mydata <- cholost[bt,] # ブートストラップ標本 zz <- sort(mydata$z) # zの値の並べ替え yy <- mydata$y[order(mydata$z)] # zの大きさの順にyを並べ替える mydata <- data.frame(z1=zz, z2=zz^2, z3=zz^3, yy) # データフレームを作る cubic <- lm(yy~., data=mydata) # 最小2乗法による3次関数のあてはめ lines(zz, predict(cubic)) # 求めた最小2乗曲線を描く # z=60, 100 のときのブートストラップ回帰予測値 dumy <- predict(cubic, data.frame(z1=c(60, 100), z2=c(60, 100)^2, z3=c(60, 100)^3)) r60[b] <- dumy[1] r100[b] <- dumy[2] } DPNQMJBODF EFDSFBTFJODIPMFTUFSPMMFWFM