print.Rd
Print concise, user-friendly summaries of objects generated by the Qval package.
Supports objects of classes CDM
, validation
, sim.data
,
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 'summary.CDM'
print(x, ...)
# S3 method for class 'summary.validation'
print(x, ...)
# S3 method for class 'summary.sim.data'
print(x, ...)
An object of the appropriate class (e.g., CDM
,
validation
, sim.data
, or their summaries).
Currently unused. Additional arguments are ignored.
Invisibly returns x
.
The print
methods provide an at-a-glance view of key information:
displays sample size, item and attribute counts, and package information.
shows suggested modifications to the Q-matrix, marking changed entries with an asterisk.
reports dimensions of simulated data and offers guidance on extraction.
prints fitted model details and alpha-pattern distribution from a summary.CDM
object.
prints suggested Q-matrix changes or a message if none are recommended.
prints attribute-pattern frequencies and proportions from summary.sim.data
.
print(CDM)
: Print method for CDM objects
print(validation)
: Print method for validation objects
print(sim.data)
: Print method for sim.data 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
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.2(2025-05-02)
#> ==============================================
#> 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.2(2025-05-02)
#> ==============================================
#>
#> 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.2(2025-05-02)
#> ==============================================
#> Number of items = 10
#> Number of attributes = 3
#> Number of individuals = 1000
#> To extract components, use the method extract.
################################################################
# Example 4: 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
# }