Fits a basic local independence model (BLIM) for probabilistic knowledge structures by minimum discrepancy maximum likelihood estimation.

blim(K, N.R, method = c("MD", "ML", "MDML"), R = as.binmat(N.R),
     P.K = rep(1/nstates, nstates),
     beta = rep(0.1, nitems), eta = rep(0.1, nitems),
     betafix = rep(NA, nitems), etafix = rep(NA, nitems),
     betaequal = NULL, etaequal = NULL,
     randinit = FALSE, incradius = 0,
     tol = 1e-07, maxiter = 10000, zeropad = 16)

blimMD(K, N.R, R = as.binmat(N.R),
       betafix = rep(NA, nitems), etafix = rep(NA, nitems),
       incrule = c("minimum", "hypblc1", "hypblc2"), m = 1)

# S3 method for class 'blim'
anova(object, ..., test = c("Chisq", "none"))

Arguments

K

a state-by-problem indicator matrix representing the knowledge structure. An element is one if the problem is contained in the state, and else zero.

N.R

a (named) vector of absolute frequencies of response patterns.

method

MD for minimum discrepancy estimation, ML for maximum likelihood estimation, MDML for minimum discrepancy maximum likelihood estimation.

R

a person-by-problem indicator matrix of unique response patterns. Per default inferred from the names of N.R.

P.K

the vector of initial parameter values for probabilities of knowledge states.

beta, eta

vectors of initial parameter values for probabilities of a careless error and a lucky guess, respectively.

betafix, etafix

vectors of fixed error and guessing parameter values; NA indicates a free parameter.

betaequal, etaequal

lists of vectors of problem indices; each vector represents an equivalence class: it contains the indices of problems for which the error or guessing parameters are constrained to be equal. (See Examples.)

randinit

logical, if TRUE then initial parameter values are sampled uniformly with constraints. (See Details.)

incradius

include knowledge states of distance from the minimum discrepant states less than or equal to incradius.

tol

tolerance, stopping criterion for iteration.

maxiter

the maximum number of iterations.

zeropad

the maximum number of items for which an incomplete N.R vector is completed and padded with zeros.

incrule

inclusion rule for knowledge states. (See Details.)

m

exponent for hyperbolic inclusion rules.

object

an object of class blim, typically the result of a call to blim.

test

should the p-values of the chi-square distributions be reported?

...

additional arguments passed to other methods.

Details

See Doignon and Falmagne (1999) for details on the basic local independence model (BLIM) for probabilistic knowledge structures.

Minimum discrepancy (MD) minimizes the number of expected response errors (careless errors or lucky guesses). Maximum likelihood maximizes the likelihood, possibly at the expense of inflating the error and guessing parameters. Minimum discrepancy maximum likelihood (MDML) maximizes the likelihood subject to the constraint of minimum response errors. See Heller and Wickelmaier (2013) for details on the parameter estimation methods.

If randinit is TRUE, initial parameter values are sampled uniformly with the constraint beta + eta < 1 (Weisstein, 2013) for the error parameters, and with sum(P.K) == 1 (Rubin, 1981) for the probabilities of knowledge states. Setting randinit to TRUE overrides any values given in the P.K, beta, and eta arguments.

The degrees of freedom in the goodness-of-fit test are calculated as number of possible response patterns minus one or number of respondents, whichever is smaller, minus number of parameters.

blimMD uses minimum discrepancy estimation only. Apart from the hyperbolic inclusion rules, all of its functionality is also provided by blim. It may be removed in the future.

Value

An object of class blim having the following components:

discrepancy

the mean minimum discrepancy between response patterns and knowledge states.

P.K

the vector of estimated parameter values for probabilities of knowledge states.

beta

the vector of estimated parameter values for probabilities of a careless error.

eta

the vector of estimated parameter values for probabilities of a lucky guess.

disc.tab

the minimum discrepancy distribution.

K

the knowledge structure.

N.R

the vector of frequencies of response patterns.

nitems

the number of items.

nstates

the number of knowledge states.

npatterns

the number of response patterns.

ntotal

the number of respondents.

nerror

the number of response errors.

npar

the number of parameters.

method

the parameter estimation method.

iter

the number of iterations needed.

loglik

the log-likelihood.

fitted.values

the fitted response frequencies.

goodness.of.fit

the goodness of fit statistic including the likelihood ratio fitted vs. saturated model (G2), the degrees of freedom, and the p-value of the corresponding chi-square distribution. (See Details.)

References

Doignon, J.-P., & Falmagne, J.-C. (1999). Knowledge spaces. Berlin: Springer.

Heller, J., & Wickelmaier, F. (2013). Minimum discrepancy estimation in probabilistic knowledge structures. Electronic Notes in Discrete Mathematics, 42, 49–56. doi:10.1016/j.endm.2013.05.145

Rubin, D.B. (1981). The Bayesian bootstrap. The Annals of Statistics, 9(1), 130–134. doi:10.1214/aos/1176345338

Weisstein, E.W. (2013, August 29). Triangle point picking. In MathWorld – A Wolfram Web Resource. Retrieved from https://mathworld.wolfram.com/TrianglePointPicking.html.

Examples

data(DoignonFalmagne7)
K   <- DoignonFalmagne7$K    # knowledge structure
N.R <- DoignonFalmagne7$N.R  # frequencies of response patterns

## Fit basic local independence model (BLIM) by different methods
blim(K, N.R, method = "MD")    # minimum discrepancy estimation
#> 
#> Basic local independence models (BLIMs)
#> 
#> Number of knowledge states: 9
#> Number of response patterns: 32
#> Number of respondents: 1000
#> 
#> Method: Minimum discrepancy
#> Number of iterations: 1
#> Goodness of fit (2 log likelihood ratio):
#> 	G2(13) = 91.283, p = 7.9381e-14
#> 
#> Minimum discrepancy distribution (mean = 0.254)
#>   0   1   2 
#> 760 226  14 
#> 
#> Mean number of errors (total = 0.254)
#> careless error    lucky guess 
#>     0.16400059     0.09000041 
#> 
#> Error and guessing parameters
#>       beta      eta
#> a 0.092089 0.000001
#> b 0.088720 0.000001
#> c 0.045058 0.040640
#> d 0.000001 0.040858
#> e 0.000001 0.054722
#> 
blim(K, N.R, method = "ML")    # maximum likelihood estimation by EM
#> 
#> Basic local independence models (BLIMs)
#> 
#> Number of knowledge states: 9
#> Number of response patterns: 32
#> Number of respondents: 1000
#> 
#> Method: Maximum likelihood
#> Number of iterations: 300
#> Goodness of fit (2 log likelihood ratio):
#> 	G2(13) = 12.623, p = 0.47735
#> 
#> Minimum discrepancy distribution (mean = 0.254)
#>   0   1   2 
#> 760 226  14 
#> 
#> Mean number of errors (total = 0.48767)
#> careless error    lucky guess 
#>     0.44280716     0.04486539 
#> 
#> Error and guessing parameters
#>       beta      eta
#> a 0.164871 0.103065
#> b 0.163113 0.095074
#> c 0.188839 0.000004
#> d 0.079835 0.000003
#> e 0.088648 0.019910
#> 
blim(K, N.R, method = "MDML")  # MDML estimation
#> 
#> Basic local independence models (BLIMs)
#> 
#> Number of knowledge states: 9
#> Number of response patterns: 32
#> Number of respondents: 1000
#> 
#> Method: Minimum discrepancy maximum likelihood
#> Number of iterations: 122
#> Goodness of fit (2 log likelihood ratio):
#> 	G2(13) = 79.192, p = 1.5652e-11
#> 
#> Minimum discrepancy distribution (mean = 0.254)
#>   0   1   2 
#> 760 226  14 
#> 
#> Mean number of errors (total = 0.254)
#> careless error    lucky guess 
#>     0.19166385     0.06233713 
#> 
#> Error and guessing parameters
#>       beta      eta
#> a 0.112944 0.000001
#> b 0.107871 0.000001
#> c 0.027133 0.010689
#> d 0.000001 0.012976
#> e 0.000001 0.063496
#> 

## Parameter restrictions: beta_a = beta_b = beta_d, beta_c = beta_e
##                          eta_a =  eta_b = 0.1
m1 <- blim(K, N.R, method = "ML",
           betaequal = list(c(1, 2, 4), c(3, 5)),
              etafix = c(0.1, 0.1, NA, NA, NA))
m2 <- blim(K, N.R, method = "ML")
anova(m1, m2)
#> Analysis of Deviance Table
#> 
#> Model 1: m1
#> Model 2: m2
#>   Resid. Df Resid. Dev Df  Deviance Pr(>Chi)
#> 1        18     12.630                      
#> 2        13     12.623  5 0.0069751        1

## See ?endm, ?probability, and ?chess for further examples.