Describe 레만투_문항이론반응 here 데이터 준비 이분 반응(binary response)인 경우 응답을 0과 1로 코딩하여 행렬로 만든다. 이때 각 열은 문항(item)을, 행은 피검자(examinee)를 나타낸다. 만약 자료가 2개 이상의 선택지로 된 응답을 그대로 코딩한 것일 경우에 정답과 비교해서 맞으면 1, 틀리면 0으로 다시 코딩을 해줘야 한다. mult.choice 함수를 사용하면 이런 채점을 할 수 있다. 피검자들이 서로 다른 문항에 응답한 경우 자료를 하나로 합쳐야 한다. 이때는 testEquatingData 함수를 사용한다. mult.choice와 testEquatingData 함수의 자세한 사용법은 도움말을 참조하라. 모형 ltm 패키지에서 제공하는 모형과 이에 해당하는 함수는 다음과 같다. Rasch 모형 또는 1모수 모형: rasch 2모수 모형: ltm 3모수 모형: tpm Graded Response Model: grm 함수들의 사용법은 매우 간단하여 데이터를 매개변수로 넘겨주기만 하면 된다. 아래는 ltm 패키지에서 제공하는 연습용 데이터인 LSAT를 1,2,3모수 모형으로 분석한 것이다. {{{ > LSAT.1 <- rasch(LSAT) > LSAT.2 <- ltm(LSAT ~ z1) > LSAT.3 <- tpm(LSAT) }}} 위에서 보면 ltm 함수만 사용법이 조금 다르다는 것을 알 수 있다. rasch와 tpm은 모두 단일 차원의 능력에 대해서만 분석을 수행하지만 ltm은 최대 2차원의 능력에 대해서까지 분석을 수행할 수 있다. 각 차원의 이름은 z1, z2로 미리 정해져 있다. 위의 예제에서는 1차원에 대해서만 분석을 수행한 것이며 2차원에 대해 분석할 경우에는 ltm(LSAT ~ z1 + z2)와 같이 입력한다. 결과 보기 분석을 통해 얻은 LSAT.1 등의 결과 객체 이름을 입력하거나 또는 print(LSAT.1) 등과 같이 입력하면 간략 분석 결과를 볼 수 있다. 결과 객체를 coefficients 함수에 넣으면 변별도, 난이도, 추측도를 행렬로 돌려준다. summary 함수를 사용하면 좀 더 자세한 정보를 얻을 수 있다. plot 함수를 사용하면 문항특성곡선(ICC)이나 문항정보곡선(IIC) 등을 얻을 수 있다. plot 함수는 각 결과 객체에 따라 plot.rasch, plot.ltm, plot.tpm, plot.grm 등의 함수를 다시 호출하는 방식을 사용한다. 이 함수들의 도움말을 참조하라. 능력 추정 피검자들의 능력을 추정하기 위해서는 factor.scores 함수를 사용한다. 예를 들어 2모수 모형으로 추정한 능력을 알고 싶다면 다음과 같이 입력한다. {{{ > factor.scores(LSAT.2) Call: ltm(formula = LSAT ~ z1) Scoring Method: Empirical Bayes Factor-Scores for observed response patterns: Item 1 Item 2 Item 3 Item 4 Item 5 Obs Exp z1 se.z1 1 0 0 0 0 0 3 2.277 -1.895 0.795 2 0 0 0 0 1 6 5.861 -1.479 0.796 3 0 0 0 1 0 2 2.596 -1.460 0.796 4 0 0 0 1 1 11 8.942 -1.041 0.800 5 0 0 1 0 0 1 0.696 -1.331 0.797 }}} 위의 결과에서 z1이 해당 피검자의 능력을 나타낸다. factor.scores 함수는 관찰된 응답 패턴의 종류별로 점수를 계산하기 때문에 특정한 피검자의 능력 점수를 계산하고 싶다면 해당 피검자들의 응답 패턴을 행렬로 넣어줘야 한다. 아래는 LSAT 응답 자료 전체에 대해 각각의 피검자의 능력 점수를 계산하는 예이다. {{{ > factor.scores(LSAT.2, LSAT) }}} 때때로 문항이 너무 많은 경우에 Obs 값을 계산하지 못하여 factor.scores 함수가 중단되는 경우가 있다. 이럴 때는 factor.scores 함수에서 Obs를 계산하는 부분을 지워줘야 한다. factor.scores 함수는 결과객체의 종류에 따라 factor.scores.rasch, factor.scores.ltm, factor.scores.tpm 등을 불러서 사용하는 방식이기 때문에 결과객체의 종류에 따라 해당 함수를 고쳐야 한다. 예를 들어 2모수 모형으로 분석한 결과에 대해 문항이 너무 많아 factor.scores 함수가 작동하지 않는다면 factor.scores.ltm 함수를 고쳐야 한다. fix(factor.score.ltm)이라고 입력하면 factor.scores.ltm 함수의 내용이 뜨는 데 여기서 다음과 같은 행을 찾아 {{{ Obs <- observedFreqs(object, X, vals) }}} 아래와 같이 고친다. {{{ Obs <- rep(1, nrow(X)) }}}