2017-11-10 12 views
1

私は、ブートストラップをしました(線形回帰は、交換で1000倍に複製された)。そして、1000件のインターセプト(アルファ)1000の斜面(ベータ版)、R:1000回の線形回帰の切片を抽出して1つのデータセットに入れる方法は?私は得ることができます

msft.boot.sample <- list() 
for (i in 1:1000) { 
    msft.boot.sample[[i]] <- sample(y_msft,size = 132, replace = TRUE) 
} 
x.boot.sample <- list() 
for (i in 1:1000) { 
    x.boot.sample[[i]] <- sample(x, size = 132, replace = TRUE) 
} 
n <- 1000 
my_lms <- lapply(1:n, function(i) lm(msft.boot.sample[[i]] ~ x.boot.sample[[i]])) 
sapply(my_lms, coef) 
summaries <- lapply(my_lms, summary) 

を得た、

coef(my_lms[[1]])["(Intercept)"] 
# (Intercept) 
# -0.0366332 

coef(my_lms[[2]])["(Intercept)"] 
# (Intercept) 
# -0.01598145 

coef(my_lms[[3]])["(Intercept)"] 
# (Intercept) 
# -0.02526318 

1回のインターセプトと1回のスロープが可能ですが、すべてのアルファ(またはベータ)を一度に取得してデータセットに入れる方法はありますか? 私はそのようなコードを使用しましたが、アルファ値は1つだけです。

for (i in 1:1000) { 
    alpha.1000 <- as.numeric(coef(my_lms[[i]])["(Intercept)"]) 
} 

alpha.1000 
# [1] -0.03495652 
+1

将来のコードブロックの書き込みに注意してください。行を4つのスペースでインデントするか、選択したテキストに '{}'アイコンを使用して複数の行をインデントしてください。 –

+0

それを得ました:)私はそれが有線に見えることを知っています... – WWH98932

答えて

0

常にalpha.1000の値が上書きされます。あなたの回帰はすべて同じパラメータを持っている場合は、

coef_list = sapply(my_lms, coef) 

はあなたの各モデルと各係数のための行の列の行列を与える

alpha.1000=numeric(1000)  
for(i in 1:1000){ 
     alpha.1000[i]<-as.numeric(coef(my_lms[[i]])["(Intercept)"]) 
    } 
+1

ありがとうたくさん!ちなみにあなたはタイプミスがあります。 "alpha.1000 = c()"でなければなりません! – WWH98932

+1

あなたは最初から1000があることを知っていますので、さらに良いのは 'alpha.100 = numeric(1000)'でしょう。 – Gregor

+0

修正されました。おかげで –

0

:これを使用してください。インターセプトのベクトルは、一番上の行、coef_list[1, ]です。

+0

また、感謝の価値がある! – WWH98932

関連する問題