GRShiny

library(GRShiny)

CRAN status

GRM data simulation

Item parameters for graded response model

item_pars <- genIRTpar(nitem = 10, ncat = 3, nfac = 1)

Individual true latent traits

true_theta <- genTheta(nsample = 500, nfac = 1)

GRM data

grm_dt <- genData(eta = true_theta, ipar = item_pars)

GRM data simulation

Generate lavaan syntax

lav_syn <- genLavSyn(dat = grm_dt, nfac = 1)
#> 
#> F1 =~ NA*y1+l1*y1+l2*y2+l3*y3+l4*y4+l5*y5+l6*y6+l7*y7+l8*y8+l9*y9+l10*y10
#> 
#>  
#> F1~~ 1*F1
#> F1~ 0*1  
#> y1 | t11*t1;
#> y2 | t21*t1;
#> y3 | t31*t1;
#> y4 | t41*t1;
#> y5 | t51*t1;
#> y6 | t61*t1;
#> y7 | t71*t1;
#> y8 | t81*t1;
#> y9 | t91*t1;
#> y10 | t101*t1;
#> y1 | t12*t2;
#> y2 | t22*t2;
#> y3 | t32*t2;
#> y4 | t42*t2;
#> y5 | t52*t2;
#> y6 | t62*t2;
#> y7 | t72*t2;
#> y8 | t82*t2;
#> y9 | t92*t2;
#> y10 | t102*t2;

Conduct GRM with two different estimators

grm.fit <- runGRM(dat = grm_dt, lav.syntax = lav_syn, estimator = "WL")

Results

parameter estimates

extract_est(grm.fit)
#>    lhs op rhs label    est    se      z pvalue
#> 1   F1 =~  y1    l1  0.480 0.053  8.987  0.000
#> 2   F1 =~  y2    l2  0.445 0.052  8.535  0.000
#> 3   F1 =~  y3    l3  0.405 0.055  7.423  0.000
#> 4   F1 =~  y4    l4  0.537 0.049 10.993  0.000
#> 5   F1 =~  y5    l5  0.609 0.047 12.977  0.000
#> 6   F1 =~  y6    l6  0.811 0.033 24.374  0.000
#> 7   F1 =~  y7    l7  0.649 0.043 15.116  0.000
#> 8   F1 =~  y8    l8  0.599 0.046 13.036  0.000
#> 9   F1 =~  y9    l9  0.750 0.039 19.142  0.000
#> 10  F1 =~ y10   l10  0.558 0.047 11.790  0.000
#> 11  y1  |  t1   t11 -0.090 0.056 -1.608  0.108
#> 12  y2  |  t1   t21 -0.121 0.056 -2.144  0.032
#> 13  y3  |  t1   t31 -0.166 0.056 -2.947  0.003
#> 14  y4  |  t1   t41 -0.176 0.056 -3.126  0.002
#> 15  y5  |  t1   t51 -0.171 0.056 -3.037  0.002
#> 16  y6  |  t1   t61 -0.141 0.056 -2.501  0.012
#> 17  y7  |  t1   t71 -0.212 0.057 -3.750  0.000
#> 18  y8  |  t1   t81 -0.156 0.056 -2.769  0.006
#> 19  y9  |  t1   t91 -0.156 0.056 -2.769  0.006
#> 20 y10  |  t1  t101 -0.187 0.056 -3.304  0.001
#> 21  y1  |  t2   t12  0.095 0.056  1.697  0.090
#> 22  y2  |  t2   t22  0.171 0.056  3.037  0.002
#> 23  y3  |  t2   t32  0.111 0.056  1.965  0.049
#> 24  y4  |  t2   t42  0.192 0.056  3.393  0.001
#> 25  y5  |  t2   t52 -0.045 0.056 -0.804  0.421
#> 26  y6  |  t2   t62  0.100 0.056  1.787  0.074
#> 27  y7  |  t2   t72  0.065 0.056  1.162  0.245
#> 28  y8  |  t2   t82  0.090 0.056  1.608  0.108
#> 29  y9  |  t2   t92  0.040 0.056  0.715  0.475
#> 30 y10  |  t2  t102  0.090 0.056  1.608  0.108

IRT plots

ICCplot(grm.fit, 1)

ESplot(grm.fit , 1)

infoPlot(grm.fit, 1)

FSplot(grm.fit)

Launch app

startGRshiny()