1

さまざまな学校の生徒とその体重に関する詳細が記載されたcsvファイルがあります

例えば

School  School code Weight  Age Height
A   1   91  15  1.6
A   1   60  16  2.0
B   2   61  14  1.8
B   2   92  13  1.7
B   2   67  14  1.5
B   2   56  15  1.7
C   3   95  16  1.7
C   3   72  17  1.5
A   1   62  15  2.0
A   1   96  15  1.9
D   4   84  17  2.0
D   4   51  17  1.6
D   4   99  18  1.6
C   3   79  17  1.8
C   3   83  17  2.0
C   3   81  16  1.9
D   4   93  17  1.6
D   4   62  18  1.5
B   2   98  14  2.0
B   2   73  13  1.6

n個の重みを置き換えて繰り返しサンプリングし、n個の重みを合計して、結果の分布の95番目の分位数を計算したいと思います。これを200校の各学校の生徒に対して行い、1〜25の範囲で変化させて、次の出力を生成します。

n=1 2   3   4   …   25
School code =1                  
2                   
3                   
4           95th percentile of distrinution     
5                   
…                   
200                 

私はtapply()を使用して、200校すべてのn=1の答えを見つけています

tapply(weight,schoolcode,quantile,probs=0.95)

そして、replilcate()、sum()、sample()を使用して、2つの重みを加算する1000の組み合わせをシミュレートしています。

nstudents=replicate(1000, sum(sample(weight, size=n, replace=TRUE)

tapply関数内で合計とサンプルを複製するために、上記の2つを組み合わせるのに問題があります。

お知らせ下さい。

私はRの初心者です。

4

1 に答える 1

2

それを関数に入れて、その関数を で使用しますtapply()

Myrepfun <- function(x,n){
    nstudents <- replicate(1000,sum(sample(x, size=n,replace=TRUE)))
    quantile(nstudents,probs=0.95)
}

tapply(weight,schoolcode,Myrepfun,n=2)

これにより、すべての学校の 0.95 分位数が得られます。ブートストラップを考えている場合は、次のことを確認してください。

http://www.statoo.com/en/publications/bootstrap_scgn_v131.pdf

http://www.statmethods.net/advstats/bootstrapping.html

他に何ができるかについてのアイデアを得るために。

于 2012-05-21T11:35:42.720 に答える