나는 이전에 비슷한 질문을 보았지만 나는 결코 만족스런 대답을 찾지 못했다.데이터의 관측치에 요인 점수 (Exp)를 어떻게 적용합니까? 데이터 집합의 관측치를 R의 벡터를 기반으로 한 값과 어떻게 일치시킬 수 있습니까?
ltm이라는 항목 응답 이론 패키지를 사용하여 데이터를 분석하고 있습니다. (많은 과목에 대 한 25 시험 문제에 대한 바이너리 답변) 내 데이터는 다음과 같다 :
q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 q16 q17 q18 q19 q20 q21 q22 q23 q24
0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1 0 1 0 0
1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 1 0 0 0 0 0 1 0 0
1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1
1 1 0 0 1 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0
0 1 1 1 1 0 1 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 0
0 1 1 1 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 0 0
다음 나는 요인 점수를 실행할 때마다 응시자의 능력을 평가하기 위해 내 분석
library(ltm)
model <- ltm(questionsPretest ~ z1, IRT.param = na.action = NULL)
를 시작합니다 :
scores <- factor.scores(model)
이렇게하면 내 대답의 벡터 (24 1과 0)가 주어집니다. 능력은 (Z1이라고 함)의 점수에 다음과 같이 저장됩니다 내가해야 할 일은
str(scores)
List of 6
$ score.dat:'data.frame': 3088 obs. of 28 variables:
..$ q1 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q2 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q3 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q4 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q5 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q6 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q7 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q8 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q9 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q10 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q11 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q12 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q13 : num [1:3088] 0 0 0 0 0 0 0 0 0 0 ...
..$ q14 : num [1:3088] 0 0 0 0 0 0 0 0 0 1 ...
..$ q15 : num [1:3088] 0 0 0 0 0 0 0 0 1 0 ...
..$ q16 : num [1:3088] 0 0 0 0 0 0 0 1 0 0 ...
..$ q17 : num [1:3088] 0 0 0 0 0 1 1 1 0 0 ...
..$ q18 : num [1:3088] 0 0 0 1 1 0 0 0 0 0 ...
..$ q19 : num [1:3088] 0 0 0 0 1 0 0 0 0 0 ...
..$ q20 : num [1:3088] 0 0 0 0 0 1 1 0 0 0 ...
..$ q21 : num [1:3088] 0 1 1 0 0 0 1 1 0 0 ...
..$ q22 : num [1:3088] 0 0 0 1 0 0 0 0 0 0 ...
..$ q23 : num [1:3088] 0 0 0 0 0 0 1 0 0 0 ...
..$ q24 : num [1:3088] 0 0 1 0 0 0 0 0 0 0 ...
..$ Obs : num [1:3088] 87 1 1 1 1 1 1 1 1 1 ...
..$ Exp : num [1:3088] 5.553 2.275 0.213 0.096 0.061 ...
..$ z1 : num [1:3088] -1.9 -1.87 -1.61 -1.55 -1.53 ...
..$ se.z1: num [1:3088] 0.573 0.583 0.535 0.523 0.524 ...
$ method : chr "EB"
$ B : num 5
$ call : language tpm(data = questionsPretest, type = "latent.trait", IRT.param = TRUE, na.action = NULL)
$ resp.pats: logi FALSE
$ coef : num [1:24, 1:3] 0.000017879 0.311805093 0.000045896 0.000000182 0.000004738 ...
..- attr(*, "dimnames")=List of 2
.. ..$ : chr [1:24] "q1" "q2" "q3" "q4" ...
.. ..$ : Named chr [1:3] "Gussng" "Dffclt" "Dscrmn"
.. .. ..- attr(*, "names")= chr [1:3] "Guessing" "Difficulty" "Discrimination"
- attr(*, "class")= chr "fscores"
는 응답에 따라 내 데이터 세트에서 관측 Z1 지정합니다. 점수 산출물을 보면, 나는 모든 질문에 0을 대답 한 모든 사람들에게 z1 = -1.9를 할당 할 것입니다. q21 질문을 제외한 모든 질문에 0으로 답한 모든 사람들에게 z1 = -1.87을 할당합니다.
당신이 말할 수있는, 거기에 3088 내 데이터 세트에 대한 답변의 순열을 관찰, 그래서 난 정말 손 :
사람이 R에서 작업을 수행하는 방법을 제안 시겠어요으로이 일을 방지하기 위해시겠습니까?
감사합니다!
결과를 보면'score $ score.dat'는 28 행과 3088 열이있는 data.frame임을 보여줍니다. 각 열은 시험 대상을 나타냅니다. 27 번째 행'$ z1'은 각 과목에 할당하고자하는 점수이므로 무례하게 시도하지 않고 이미 필요한 것을 가지고 계시지 않으십니까? 이것이 귀하가 겪은 것이 아닌 경우 알려 주시면 더 이상 지원할 수 있습니다. –
@BryanGoggin - 답장을 보내 주셔서 감사합니다. 내 데이터 세트에는 3459 회의 관측이 있습니다. score $ score.dat는 내 데이터 집합에서 3088 개의 응답 순열을 포함합니다. – polished
아, 좋아, 어디서 왔는지 알 겠어. 내가 무엇인가 생각해 내면 나는 당신에게 알려줄 것이다. –