MODFIT: MODFIT for the GGUM

View source: R/MODFIT.R

MODFITR Documentation

MODFIT for the GGUM

Description

MODFIT computes the adjusted chi-square degrees of freedom ratios (chisq/df) introduced by Drasgow et al. (1995) for the GGUM.

Usage

MODFIT(IP, precision = 4)

Arguments

IP

Object of class GGUM.

precision

Number of decimal places of the results (default = 4).

Value

A list (an object of class MODFIT) with four elements: The results for singlets, doublets, triples, and a summary result.

Details

This function computes the adjusted chi-square degrees of freedom ratios (chisq/df) introduced by Drasgow et al. (1995). These chi-square statistics are based on expected frequencies that depend on the estimated item parameters and the distribution of theta. The unadjusted statistic for item i is given by

χ^2_i = ∑_{z=0}^C \frac{(O_{iz} - E_{iz})^2}{E_{iz}},

chisq_i = sum( (O_iz - E_iz)^2 / E_iz; z = 0, ..., C ),

with

E_iz = N int(P_iz(th)phi(th)dth).

O_iz is the observed frequency of choosing answer z for item i and phi(th) is the standard normal density. The equation above applies to single items ('singlets'). The formula is easily extendible to pairs and triples of items. For a large number of items, the function selects suitable subsets of doublets and triples to perform the computations since its total number increases quickly with test length (Drasgow et al., 1995).

The formula is adjusted to a sample size of 3,000, as follows (see also LaHuis et al., 2011):

chisq/df = 3,000(chsqr-df)/N + df,

where df is a number of degrees of freedom that depends on the number of singlets, doublets, and triplets.

As an heuristic, values of chisq/df larger than 3 are indicative of model misfit.

This function produces the same numerical results as the MODFIT program (Stark, 2001) for the GGUM.

Author(s)

Jorge N. Tendeiro, tendeiro@hiroshima-u.ac.jp

References

\insertRef

Drasgowetal1995GGUM

\insertRef

LaHuisetal2011GGUM

\insertRef

MODFITsoftwareGGUM

Examples

# For GUM:
# Generate data:
gen1 <- GenData.GGUM(400, 5, 3, "GUM", seed = 139)
# Fit the GUM:
fit1 <- GUM(gen1$data, 3)
# Compute the adjusted chi square degrees of freedom ratios:
modfit.res1 <- MODFIT(fit1)
modfit.res1$Singlets
modfit.res1$Doublets
modfit.res1$Triplets
modfit.res1$Summary
## Not run: 
# For GGUM:
# Generate data:
set.seed(1); C <- sample(3:5, 10, replace = TRUE)
gen2 <- GenData.GGUM(2000, 10, C, "GGUM", seed = 156)
# Fit the GGUM:
fit2 <- GGUM(gen2$data, C)
# Compute the adjusted chi square degrees of freedom ratios:
modfit.res2 <- MODFIT(fit1)
modfit.res2$Singlets
modfit.res2$Doublets
modfit.res2$Triplets
modfit.res2$Summary

## End(Not run)


secastroal/GGUM documentation built on Feb. 21, 2023, 3:39 p.m.