mirt
パッケージを使用すると、私の名目モデルで奇妙な結果が得られました。ノミナルモデルの奇妙な結果
library(difNLR)
library(mirt)
data("GMATtest", "GMATkey")
key <- as.numeric(as.factor(GMATkey))
data <- sapply(1:20, function(i) as.numeric(GMATtest[, i]))
colnames(data) <- paste("Item", 1:ncol(data))
scoredGMAT <- key2binary(data, key)
# 2PL IRT model for scored data
mod0 <- mirt(scoredGMAT, 1)
# nominal model for unscored data
mod1 <- mirt(data, 1, 'nominal')
# plots of characteristic curves for item 1
itemplot(mod0, 1)
itemplot(mod1, 1)
私はmod0
に対してプロットとしてノミナルモデルmod1
のために正しい答えに非常に似て1つの曲線があるだろうと予想しました。しかし、それほど妥当ではないように、ジッタが増加するにつれてジッタが増加するようである。もちろん、データに何か問題がある可能性があります。または、おそらく私は何かが欠けている可能性があります。
私は既にmirt
の例をチェックしました。
どのような提案(何が間違っているかもしれない)をいただければ幸いです!
1つ最後のこと - 私も2PLNRM
モデルに適合しようとしましたが、私のRセッションは中止されました。誰もが同じ問題に気づいた?私のコード:
# 2PLNRM model
mod2 <- mirt(data, 1, "2PLNRM", key = key)
coef(mod2)$`Item 1`
itemplot(mod2, 1)
EDIT:mirt
パッケージからの例では、 あります:私はすべての項目のnominal
モデルに適合しようとすると、
library(mirt)
data(SAT12)
SAT12[SAT12 == 8] <- NA #set 8 as a missing value
head(SAT12)
# correct answer key
key <- c(1, 4, 5, 2, 3, 1, 2, 1, 3, 1, 2, 4, 2, 1, 5, 3, 4, 4, 1, 4, 3,
3, 4, 1, 3, 5, 1, 3, 1, 5, 4, 5)
scoredSAT12 <- key2binary(SAT12, key)
mod0 <- mirt(scoredSAT12, 1)
# for first 5 items use 2PLNRM and nominal
scoredSAT12[, 1:5] <- as.matrix(SAT12[, 1:5])
mod1 <- mirt(scoredSAT12, 1, c(rep('nominal', 5), rep('2PL', 27)))
coef(mod0)$Item.1
coef(mod1)$Item.1
itemplot(mod0, 1)
itemplot(mod1, 1)
そして結果は、しかし、私が期待したものです、曲線が変更されました:
# nominal for all items
mod1 <- mirt(SAT12, 1, 'nominal')
coef(mod1)$Item.1
itemplot(mod1, 1)
あなたが提案したように、シータとその解釈は変わったが、なぜ、どのように?
P1が正解である場合、それは、ジッタが減少するにつれて確率が増加することに注意してください。これは、ディストラクタの反対です。この意味で、モデリングは意味をなさないでしょう。この動作が一貫しているかどうかを確認するために他のアイテムをチェックしましたか? –
確かに私は理解していますが、P1をチェックすると、それが減少して増えていないように見えます。正解なので、モデリングは私には意味がありません。他の項目は類似しているようです。 – Adela
すべての項目について正しい答えが常にthetaが減少するもので、distractorsがthetaが増加するものである場合、 'mirt'によって与えられた結果は一貫しています。 しかし、この特定のケースでは、このタイプのモデリングではシータの意味を再考する必要があります。これはコード関連の問題ではありません。 –