R 3모수 모형

1 개요[ | ]

R IRT 3모수 모형
R 문항반응이론 3PLM
R 문항반응이론 3모수 모형

2 ltm 패키지[ | ]

R
CPU
4.1s
MEM
241M
4.9s
Reload
Copy
df <- read.csv("https://raw.githubusercontent.com/jmnote/ds/main/github.com/cran/ltm/data/LSAT.csv")
library(ltm)
model <- tpm(df)

# 로그우도
model$log.Lik
Loading required package: MASS

Loading required package: msm

Loading required package: polycor

-2466.65950899778
Copy
# 계수
coef(model)
A matrix: 5 × 3 of type dbl
GussngDffcltDscrmn
Item.10.03738668-3.29647610.8286287
Item.20.07770994-1.14514870.7603748
Item.30.01178206-0.24901440.9015777
Item.40.03529306-1.76578620.7006545
Item.50.05315665-2.99020460.6657969
Copy
# 문항특성곡선
plot(model)
Copy
# 문항정보곡선
plot(model, "IIC")

3 irtplay 패키지[ | ]

R
Reload
Copy
df <- read.csv("https://raw.githubusercontent.com/jmnote/ds/main/github.com/cran/ltm/data/LSAT.csv")
library(irtplay)
model <- est_irt(data=df, model="3PLM", verbose=FALSE)
coef(model)
Loading
Copy
plotICC <- function(model) {
  p1 <- model$estimates$par.1
  p2 <- model$estimates$par.2
  p3 <- model$estimates$par.3
  p3[is.na(p3)] <- 0
  D <- model$scale.D
  z <- seq(-4, 4, length=100)
  len <- nrow(model$estimates)
  pos <- round(seq(10, 90, length=len))
  for( i in 1:len ) {
    f <- function(x) {p3[i]+(1-p3[i])*plogis(p1[i]*D*(x-p2[i]))}
    if( i == 1 ) plot(z, f(z), type='l', col=i, ylim=c(0,1),
                      main="Item Characteristic Curves",
                      xlab="Ability", ylab="Probability")
    else lines(z, f(z), type='l', col=i, ylim=c(0,1))
    text(z[pos[i]], f(z[pos[i]]), adj=c(0,2), labels=c(paste('Item',i)), col=i)
  }
}
plotICC(model)
Loading

4 같이 보기[ | ]