# nrmlepln: Full information maximum likelihood and bivariate composite... In pln: Polytomous logit-normit (graded logistic) model estimation

## Description

Full information maximum likelihood and bivariate composite likelihood estimation for polytomous logit-normit and Rasch models, via Newton Raphson iterations.

## Usage

 ```1 2 3 4 5 6``` ```nrmlepln(x, ncat, nitem=NULL, alphas=NULL, betas=NULL, abound=c(-10,10), bbound=c(-1,10), nq=48, mxiter=200, m2=TRUE, iprint=FALSE) nrmlerasch(x, ncat, nitem=NULL, alphas=NULL, abound=c(-10,10), bbound=c(-1,10), nq=48, mxiter=200, m2=TRUE, iprint=FALSE) nrbcpln(x, ncat, nitem=NULL, alphas=NULL, betas=NULL, abound=c(-10,10), bbound=c(-1,10), nq=48, mxiter=200, se=TRUE, iprint=FALSE) ```

## Arguments

 `x` A data matrix. Data can be in one of two formats: 1) raw data where the number of rows corresponds to an individual's response and each column represents an item, and 2) a matrix of dimensions `nrec`X(`nitem`+1) where each row corresponds to a response pattern and the last column is the frequency of that response pattern. A data matrix of the second type requires input for `nitem` and `nrec`. `ncat` Number of ordinal categories for each item, coded as 0,...,(`ncat`-1). Currently supported are items that have the same number of categories. `nitem` Number of items. If omitted, it is assumed that `x` contains a data matrix of the first type (raw data) and the number of columns in `x` will be selected as the number of items. `alphas` A vector of length `nitem`X(`ncat`-1) corresponding to starting values for the (decreasing) cutpoints for the items. If omitted, these will be computed from the function `startalphas`. `betas` A vector of length `nitem` corresponding to starting values for the beta vectors of slopes. If omitted, these will be computed from the function `startbetas`. For the polytomous logit-normit, there is one slope for each item; for the Rasch model, there is a common slope beta for all of the items. `abound` Vector of length 2 that sets upper and lower bounds on parameter estimation for alphas. Currently experimental; changing defaults it not recommended. Estimation problems are more likely solved by changing starting values. `bbound` Vector of length 2 that sets upper and lower bounds on parameter estimation for betas. Currently experimental; changing defaults it not recommended. Estimation problems are more likely solved by changing starting values. `nq` Number of quadrature points to use during estimation. This argument is currently experimental. It is recommended to use the default of 48. `mxiter` Maximum number of iterations for estimation. `se` Logical. If `TRUE`, calculates standard errors for the bivariate composite likelihood method. `m2` Logical. If `TRUE`, computes goodness-of-fit statistics from Maydeu-Olivares and Joe (2005, 2006; i.e., M_2). `iprint` Logical. Enables debugging / diagnostic information from C code that conducts estimation.

## Details

Estimation of graded logistic models is performed under the following parameterization:

Pr(y_i = k_i| η) = { 1-Ψ (α_i,k + β_i*η) if k_i = 0, Ψ (α_i,k + β_i*η) - Ψ (α_i,k+1 + β_i*η) if 0 < k_i < m-1, Ψ (α_i,k+1 + β_i*η) if k_i = m-1}.

Where the items are y_i, i = 1, …, n, and response categories are k=0, …, m-1. η is the latent trait, Ψ is the logistic distribution function, α is an intercept (cutpoint) parameter, and β is a slope parameter. When the number of categories for the items is 2, this reduceds to the 2PL parameterization:

Pr(y_i = 1| η) = Ψ (α_1 + β_i η)

Both `nrmlepln` and `nrbcpln` perform estimation under these parameterizations, via Newton Raphson iterations, using full information maximum likelihood (`nrmlepln`) and bivariate composite likelihood (`nrbcpln`). See Maydeu-Olivares and Joe (2005, 2006) for more information on bivariate composite likelihood estimation (see also Varin, Reid, and Firth, 2011). Under `nrmlerasch` a common β paramter is estimated for all items.

## Value

 `alphas` A vector of parameter estimates for alphas. Length is `nitem`X(`ncat`-1). Estimates are in order by item, e.g., all alphas for item 1, followed by all alphas for item 2, and so on. `betas` A vector of paraemter estimates for betas. Length is `nitem`. `nllk` Negative (composite) log-likelihood for polytomous logit-normit (or Rasch) model. `conv` Integer indicating whether estimation converged. Currently only returned for composite likelihood estimation. `sealphas` A vector of standard errors for the alpha estimates. `sebetas` A vector of standard errors for the beta estimates. `invhes` Inverse Hessian matrix for the MLE estimates. `vcov` Asymptotic covariance matrix for the composite likelihood estimates. `teststat` Value of M_2. `df` Degrees of fredom for M_2. `pval` P-value for M_2.

## Author(s)

Carl F. Falk [email protected], Harry Joe

## References

Bartholomew, D., Knott, M., and Moustaki, I. (2011). Latent Variable Models and Factor Analysis: A Unified Approach, 3rd Edition. Wiley.

Maydeu-Olivares, A., and Joe, H. (2005). Limited and full information estimation and goodness-of-fit testing in 2^n contingency tables: A unified framework. Journal of the American Statistical Association, 100, 1009-1020.

Maydeu-Olivares, A., and Joe, H. (2006). Limited information and goodness-of-fit testing in multidimensional contingency tables. Psychometrika, 71, 713-732.

Varin, C., Reid, N. and Firth, D. (2011). An overview of composite likelihood methods. Statistica Sinica, 21, 5-42.

`startalphas` `startbetas`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32``` ```### Matrix of response patterns and frequencies data(item5fr) ## ML estimation nrmleplnout<-nrmlepln(item5fr, ncat=3, nitem=5) print(nrmleplnout) ## BCL estimation nrbcplnout<-nrbcpln(item5fr, ncat=3, nitem=5) print(nrbcplnout) ## ML Rasch estimation nrmleraschout<-nrmlerasch(item5fr, ncat=3, nitem=5) print(nrmleraschout) ## Not run: ### Raw data data(item9cat5) ## ML estimation nrmleplnout<-nrmlepln(item9cat5, ncat=5) print(nrmleplnout) ## BCL estimation nrbcplnout<-nrbcpln(item9cat5, ncat=5, se=FALSE) print(nrbcplnout) ## ML Rasch estimation nrmleraschout<-nrmlerasch(item9cat5, ncat=5) print(nrmleraschout) ## End(Not run) ```