Print concise, user-friendly summaries of objects generated by the Qval package. Supports objects of classes CDM, validation, sim.data, fit, as well as their corresponding summary objects.

# S3 method for class 'CDM'
print(x, ...)

# S3 method for class 'validation'
print(x, ...)

# S3 method for class 'sim.data'
print(x, ...)

# S3 method for class 'fit'
print(x, ...)

# S3 method for class 'summary.CDM'
print(x, ...)

# S3 method for class 'summary.validation'
print(x, ...)

# S3 method for class 'summary.sim.data'
print(x, ...)

# S3 method for class 'summary.fit'
print(x, ...)

Arguments

x

An object of the appropriate class (e.g., CDM, validation, sim.data, fit, or their summaries).

...

Currently unused. Additional arguments are ignored.

Value

Invisibly returns x.

Details

The print methods provide an at-a-glance view of key information:

print.CDM

displays sample size, item and attribute counts, and package information.

print.validation

shows suggested modifications to the Q-matrix, marking changed entries with an asterisk.

print.sim.data

reports dimensions of simulated data and offers guidance on extraction.

print.fit

show basic fit indices.

print.summary.CDM

prints fitted model details and alpha-pattern distribution from a summary.CDM object.

print.summary.validation

prints suggested Q-matrix changes or a message if none are recommended.

print.summary.sim.data

prints attribute-pattern frequencies and proportions from summary.sim.data.

print.summary.fit

prints basic fit indices from summary.fit.

Methods (by class)

  • print(CDM): Print method for CDM objects

  • print(validation): Print method for validation objects

  • print(sim.data): Print method for sim.data objects

  • print(fit): Print method for fit objects

  • print(summary.CDM): Print method for summary.CDM objects

  • print(summary.validation): Print method for summary.validation objects

  • print(summary.sim.data): Print method for summary.sim.data objects

  • print(summary.fit): Print method for summary.fit objects

Examples

set.seed(123)
library(Qval)

# \donttest{
################################################################
# Example 1: print a CDM object                                #
################################################################
Q <- sim.Q(3, 20)
IQ <- list(P0 = runif(20, 0.0, 0.2), P1 = runif(20, 0.8, 1.0))
data.obj <- sim.data(Q = Q, N = 500, IQ = IQ, 
                     model = "GDINA", distribute = "horder")
#> distribute =  horder 
#>  model =  GDINA 
#>  number of attributes:  3 
#>  number of items:  20 
#>  num of examinees:  500 
#>  average of P0 =  0.083 
#>  average of P1 =  0.894 
#> theta_mean =  -0.055 , theta_sd = 0.996 
#>  a =  1.5 1.5 1.5 
#>  b =  -1.5 1.5 0 
CDM.obj <- CDM(data.obj$dat, Q, model = "GDINA", 
               method = "EM", maxitr = 2000, verbose = 1)
#> 
Iter = 1  Max. abs. change = 0.57951  Deviance  = 10238.69                                                                                  
Iter = 2  Max. abs. change = 0.09509  Deviance  = 8501.84                                                                                  
Iter = 3  Max. abs. change = 0.03995  Deviance  = 8478.24                                                                                  
Iter = 4  Max. abs. change = 0.01792  Deviance  = 8477.13                                                                                  
Iter = 5  Max. abs. change = 0.02604  Deviance  = 8477.02                                                                                  
Iter = 6  Max. abs. change = 0.01142  Deviance  = 8476.97                                                                                  
Iter = 7  Max. abs. change = 0.01740  Deviance  = 8476.96                                                                                  
Iter = 8  Max. abs. change = 0.00686  Deviance  = 8476.95                                                                                  
Iter = 9  Max. abs. change = 0.00466  Deviance  = 8476.94                                                                                  
Iter = 10  Max. abs. change = 0.00253  Deviance  = 8476.94                                                                                  
Iter = 11  Max. abs. change = 0.00030  Deviance  = 8476.94                                                                                  
Iter = 12  Max. abs. change = 0.00014  Deviance  = 8476.94                                                                                  
Iter = 13  Max. abs. change = 0.00016  Deviance  = 8476.94                                                                                  
Iter = 14  Max. abs. change = 0.00760  Deviance  = 8476.94                                                                                  
Iter = 15  Max. abs. change = 0.00246  Deviance  = 8476.94                                                                                  
Iter = 16  Max. abs. change = 0.00502  Deviance  = 8476.94                                                                                  
Iter = 17  Max. abs. change = 0.00017  Deviance  = 8476.94                                                                                  
Iter = 18  Max. abs. change = 0.00109  Deviance  = 8476.94                                                                                  
Iter = 19  Max. abs. change = 0.00004  Deviance  = 8476.94                                                                                  
print(CDM.obj)
#> Qval version1.2.3(2025-06-03) 
#> ==============================================
#>  Number of items       = 20 
#>  Number of attributes  = 3 
#>  Number of individuals = 500 
#>  To extract components, use the method extract.


################################################################
# Example 2: print a validation object                         #
################################################################
set.seed(123)
MQ <- sim.MQ(Q, 0.1)
#> rate of mis-specifications =  0.1 
#>  rate of  over-specifications =  0.07 
#>  rate of under-specifications =  0.03 
CDM.obj <- CDM(data.obj$dat, MQ)
#> 
Iter = 1  Max. abs. change = 0.47926  Deviance  = 11325.04                                                                                  
Iter = 2  Max. abs. change = 0.13995  Deviance  = 9168.03                                                                                  
Iter = 3  Max. abs. change = 0.07841  Deviance  = 9097.21                                                                                  
Iter = 4  Max. abs. change = 0.02452  Deviance  = 9091.20                                                                                  
Iter = 5  Max. abs. change = 0.00702  Deviance  = 9090.55                                                                                  
Iter = 6  Max. abs. change = 0.00397  Deviance  = 9090.47                                                                                  
Iter = 7  Max. abs. change = 0.00229  Deviance  = 9090.46                                                                                  
Iter = 8  Max. abs. change = 0.00148  Deviance  = 9090.46                                                                                  
Iter = 9  Max. abs. change = 0.00081  Deviance  = 9090.46                                                                                  
Iter = 10  Max. abs. change = 0.00054  Deviance  = 9090.46                                                                                  
Iter = 11  Max. abs. change = 0.00033  Deviance  = 9090.45                                                                                  
Iter = 12  Max. abs. change = 0.00020  Deviance  = 9090.45                                                                                  
Iter = 13  Max. abs. change = 0.00010  Deviance  = 9090.45                                                                                  
Iter = 14  Max. abs. change = 0.00004  Deviance  = 9090.45                                                                                  
validation.obj <- validation(data.obj$dat, MQ, CDM.obj, 
                             method = "GDI")
#> GDI  method with  PAA  in  test  level iteration ...
#> Iter  =  1/  1,   6 items have changed, ΔPVAF=1.37410 
print(validation.obj)
#> Qval version1.2.3(2025-06-03) 
#> ==============================================
#> 
#> Suggested Q-matrix: 
#> 
#>         A1 A2 A3
#> item 1  0  1  0 
#> item 2  1  0  1 
#> item 3  1  0* 1 
#> item 4  0  0  1 
#> item 5  1  0  1 
#> item 6  0* 0* 1*
#> item 7  0  0* 1 
#> item 8  0  1  0 
#> item 9  0  0  1 
#> item 10 0* 1* 1 
#> item 11 1  1  0*
#> item 12 0  1  1 
#> item 13 1  0  0 
#> item 14 0  0  1 
#> item 15 1  0* 0 
#> item 16 0  1  1 
#> item 17 1  1  1 
#> item 18 1  0  1 
#> item 19 0  1  0 
#> item 20 1  1  1 
#> Note: * denotes a modified element.


################################################################
# Example 3: print a sim.data object                           #
################################################################
set.seed(123)
Q2 <- sim.Q(3, 10)
data.obj2 <- sim.data(Q = Q2, N = 1000)
#> distribute =  uniform 
#>  model =  GDINA 
#>  number of attributes:  3 
#>  number of items:  10 
#>  num of examinees:  1000 
#>  average of P0 =  0.174 
#>  average of P1 =  0.889 
print(data.obj2)
#> Qval version1.2.3(2025-06-03) 
#> ==============================================
#>  Number of items       = 10 
#>  Number of attributes  = 3 
#>  Number of individuals = 1000 
#>  To extract components, use the method extract.


################################################################
# Example 4: print a fit object                           #
################################################################
set.seed(123)
Q2 <- sim.Q(3, 10)
fit.obj <- fit(Y = data.obj$dat, Q = Q, model = "GDINA")
#> 
Iter = 1  Max. abs. change = 0.58226  Deviance  = 10238.69                                                                                  
Iter = 2  Max. abs. change = 0.09628  Deviance  = 8499.25                                                                                  
Iter = 3  Max. abs. change = 0.03447  Deviance  = 8474.14                                                                                  
Iter = 4  Max. abs. change = 0.01418  Deviance  = 8473.11                                                                                  
Iter = 5  Max. abs. change = 0.01087  Deviance  = 8473.00                                                                                  
Iter = 6  Max. abs. change = 0.00870  Deviance  = 8472.98                                                                                  
Iter = 7  Max. abs. change = 0.00678  Deviance  = 8472.96                                                                                  
Iter = 8  Max. abs. change = 0.00521  Deviance  = 8472.96                                                                                  
Iter = 9  Max. abs. change = 0.00398  Deviance  = 8472.95                                                                                  
Iter = 10  Max. abs. change = 0.00303  Deviance  = 8472.95                                                                                  
Iter = 11  Max. abs. change = 0.00230  Deviance  = 8472.95                                                                                  
Iter = 12  Max. abs. change = 0.00174  Deviance  = 8472.95                                                                                  
Iter = 13  Max. abs. change = 0.00131  Deviance  = 8472.95                                                                                  
Iter = 14  Max. abs. change = 0.00099  Deviance  = 8472.95                                                                                  
Iter = 15  Max. abs. change = 0.00075  Deviance  = 8472.95                                                                                  
Iter = 16  Max. abs. change = 0.00056  Deviance  = 8472.95                                                                                  
Iter = 17  Max. abs. change = 0.00042  Deviance  = 8472.95                                                                                  
Iter = 18  Max. abs. change = 0.00032  Deviance  = 8472.95                                                                                  
Iter = 19  Max. abs. change = 0.00024  Deviance  = 8472.95                                                                                  
Iter = 20  Max. abs. change = 0.00018  Deviance  = 8472.95                                                                                  
Iter = 21  Max. abs. change = 0.00014  Deviance  = 8472.95                                                                                  
Iter = 22  Max. abs. change = 0.00010  Deviance  = 8472.95                                                                                  
Iter = 23  Max. abs. change = 0.00008  Deviance  = 8472.95                                                                                  
print(fit.obj)
#> Qval version1.2.3(2025-06-03) 
#> ==============================================
#>  Number of parameters  = 87 
#> 
#> Relative fit indices  = :
#>     -2LL      AIC      BIC     CAIC    SABIC 
#> 8472.948 8646.948 9013.619 9100.619 8737.475 
#> 
#> Absolute fit indices = :
#>      M2      df p.value  RMSEA2   SRMSR 
#> 126.958 123.000   0.385   0.008   0.028 


################################################################
# Example 5: print summary objects                             #
################################################################
summary.CDM.obj <- summary(CDM.obj)
print(summary.CDM.obj)
#> ==============================================
#>  Number of items       = 20 
#>  Number of attributes  = 3 
#>  Number of individuals = 500 
#> 
#> Model Fit:
#> Deviance     npar      AIC      BIC 
#> 9090.455   89.000 9268.455 9643.555 
#> 
#> Distribution of Alpha Patterns:
#>        000   001   010  011   100   101   110  111
#> freq    96    17   124  135     4    11    33   80
#> prop 0.192 0.034 0.248 0.27 0.008 0.022 0.066 0.16

summary.val.obj <- summary(validation.obj)
print(summary.val.obj)
#> ==============================================
#> 
#> Suggested Q-matrix: 
#> 
#>         A1 A2 A3
#> item 1  0  1  0 
#> item 2  1  0  1 
#> item 3  1  0* 1 
#> item 4  0  0  1 
#> item 5  1  0  1 
#> item 6  0* 0* 1*
#> item 7  0  0* 1 
#> item 8  0  1  0 
#> item 9  0  0  1 
#> item 10 0* 1* 1 
#> item 11 1  1  0*
#> item 12 0  1  1 
#> item 13 1  0  0 
#> item 14 0  0  1 
#> item 15 1  0* 0 
#> item 16 0  1  1 
#> item 17 1  1  1 
#> item 18 1  0  1 
#> item 19 0  1  0 
#> item 20 1  1  1 
#> Note: * denotes a modified element.

summary.sim.obj <- summary(data.obj2)
print(summary.sim.obj)
#> ==============================================
#>  Number of items       = 10 
#>  Number of attributes  = 3 
#>  Number of individuals = 1000 
#> 
#> Distribution of Alpha Patterns:
#>        000   001   010   011  100   101   110   111
#> freq   126   116   118   137  130   119   121   133
#> prop 0.126 0.116 0.118 0.137 0.13 0.119 0.121 0.133

summary.fit <- summary(fit.obj)
print(summary.fit)
#> ==============================================
#>  Number of parameters  = 87 
#> 
#> Relative fit indices  = :
#>     -2LL      AIC      BIC     CAIC    SABIC 
#> 8472.948 8646.948 9013.619 9100.619 8737.475 
#> 
#> Absolute fit indices = :
#>      M2      df p.value  RMSEA2   SRMSR 
#> 126.958 123.000   0.385   0.008   0.028 
# }