2016-06-12 6 views
0

私は15種類のユニタリ次元のIRTパラメータ推定値をブートストラップしています。私はこれらのモデルの12のためにboot.ci、boot Rパッケージのエラー - Redux

BS <- function(formula, data, indices) { 

d <- data[indices, drop=FALSE] # allows boot to select sample 

fit <- ltm(DIM1A_IRT_Vars ~ z1, IRT.param=TRUE, start.val="random", na.action=NULL, control=list(GHk=35, iter.em=100, verbose=TRUE)) 
    return(coef(fit)) 
     } 

bootDIM1A <- boot(data=DIM1A_IRT_Vars, statistic=BS, R=500, sim="ordinary") 
#Ordinary nonparametric = empirical bootstrap 
print(bootDIM1A, digits=10) 
plot(bootDIM1A, index=1, qdist="norm")#index= refers to that coefficient in the list 
boot.ci(bootDIM1A, type="all", index=10)#index= refers to that coefficient in the list 

(変数やデータフレームの関連する変更をスワップアウト)次元ごとに以下のコードを使用し、boot.ciまたはboot.plot関数を呼び出すとき、私は問題がない、すべてがあります所望の結果を生成する点では非常に綺麗である。しかし、3つの次元については、次のようになります。

for boot.ci [1] "tの値はすべて2.3654985546995です。\ n信頼区間を計算できません。" for boot.plot:[1] "t *のすべての値は2.3654985546995に等しい"

今、私はこの問題を扱っている関連スレッドを調べましたが、私が知ることのできる "one-size-fits-all"答えはありませんでした。さらに、15個のブーツのうち12個がこのエラーを生成していないため、関連する一意の関数/オブジェクト識別子を除いてコード内で何も変更していません(DIM1A_IRT_varsはDIM1B_IRT_varsなどになります)。これらの3つの次元について。以前のユーザーが示唆したようにコメントを削除しようとしましたが、それは何も変わりませんでした。また、前にreturn(coef(fit))を落としても何も変わらない。最後に、私はブートストラップを600に上げましたが、これも結果を変更しませんでした。 32個のパラメータ(16の難易度推定値と16差別推定値)を有する寸法のために、以下に示すように、すべてのブートストラップ推定は、単に元のサンプルの第1の推定値を繰り返し:

> bootDIM4A$t0[1:36] 
[1] 2.3654986 2.3543770 2.9894745 1.9730266 2.0989111 2.2333604 2.2546996 3.4546528 3.3797208 5.1105451 1.5078148 17.0628991 3.1567948 
[14] 4.1629080 2.1770134 4.0014715 1.0831248 0.9757742 0.9994559 1.2374123 1.8756228 1.2023270 1.3513075 1.1867299 1.8608412 0.5105291 
[27] 1.3291120 0.2202287 2.4495431 1.0526343 1.1105217 0.6287497   NA   NA   NA   NA 

> bootDIM4A$t[1:200] 
    [1] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[17] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[33] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[49] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[65] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[81] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[97] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[113] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[129] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[145] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[161] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[177] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 
[193] 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 2.365499 

を任意の考えは非常に高く評価されるだろう。

答えて

0

私はこれまで、あなたのBSの機能を変更します

BS <- function(data, indices) { 

d <- data[indices, ] # allows boot to select sample 

fit <- ltm(d ~ z1, IRT.param=TRUE, start.val="random", na.action=NULL, control=list(GHk=35, iter.em=100, verbose=TRUE)) 
    return(coef(fit)) 
     } 

はその後、これを使用する:これは動作するはず

boot(data="your actual dataset with item responses", statistic=BS, R=500, sim="ordinary") 

これはltmパッケージからWIRSデータとの例である:6つの項目がデータセットとパッケージ推定項目困難とアイテム識別パラメータであるので、bootは12個のパラメーターの結果を生成

> boot(data=WIRS, statistic=BS, R=500, sim="ordinary")  

ORDINARY NONPARAMETRIC BOOTSTRAP 


Call: 
boot(data = WIRS, statistic = BS, R = 500, sim = "ordinary") 


Bootstrap Statistics : 
     original  bias std. error 
t1* 3.4013781 7.52611046 59.3494490 
t2* -0.9421109 -0.01612312 0.8377384 
t3* 0.8093891 -0.17794274 0.6883230 
t4* 1.3688871 -0.24206685 0.8511538 
t5* 0.4762308 -0.10135528 0.3921645 
t6* 1.6804624 -0.35333454 1.2908451 
t7* 0.1533959 0.06739873 1.0988324 
t8* 0.3676942 -0.18417850 1.0817039 
t9* 1.7178883 -0.28775229 0.9994516 
t10* 1.0101366 -0.21218369 0.6517991 
t11* 2.0330472 -0.30806809 1.2112776 
t12* 1.3745729 -0.23506519 0.8087398 

(t1 *〜t6 *)に対応し、残りは項目の弁別(すなわち、t7 *〜t12 *)に対応する。