Learn R Programming

ltbayes (version 0.3)

fmodel1pp: Latent Trait Posterior of the One-Parameter Binary Probit Model

Description

fmodel1pp evaluates the (unnormalized) posterior density of the latent trait of a one-parameter binary probit item response model with given prior distribution, and computes the probabilities for each item and response category given the latent trait.

Usage

fmodel1pp(zeta, y, bpar, prior = dnorm, ...)

Arguments

zeta
Latent trait value.
y
Vector of length m for a single response pattern, or matrix of size s by m of a set of s item response patterns. In the latter case the posterior is computed by conditioning on the event that the response pattern is one of the s response patterns. Element
bpar
Vector of m "difficulty" parameters.
prior
Function that evaluates the prior distribution of the latent trait. The default is a standard normal distribution.
...
Additional arguments to be passed to prior.

Value

  • postThe log of the unnormalized posterior distribution evaluated at zeta.
  • probMatrix of size m by 2 array of item response probabilities.

Details

The item response model is parameterized as $$P(Y_{ij} = 1|\zeta_i) = \Phi(\zeta_i - \beta_j),$$ where where $\beta_j$ is the difficulty parameter (bpar), $\zeta_i$ is the latent trait (zeta), and $\Phi$ is the distribution function of a standard normal distribution.

See Also

See fmodel2pp, fmodel3pp, and fmodel4pp for related models, and fmodel1pl for the logit variant of this model.

Examples

Run this code
samp <- 5000 # samples from posterior distribution
burn <- 1000 # burn-in samples to discard

beta <- -2:2        # difficulty parameters

post <- postsamp(fmodel1pp, c(1,1,0,0,0), 
	bpar = beta, control = list(nbatch = samp + burn))

post <- data.frame(sample = 1:samp, 
	zeta = post$batch[(burn + 1):(samp + burn)])
	
with(post, plot(sample, zeta), type = "l")  # trace plot of sampled realizations
with(post, plot(density(zeta, adjust = 2))) # density estimate of posterior distribution

with(posttrace(fmodel1pp, c(1,1,0,0,0), 
	bpar = beta),	plot(zeta, post, type = "l")) # profile of log-posterior density

information(fmodel1pp, c(1,1,0,0,0), bpar = beta) # Fisher information

with(post, mean(zeta)) # posterior mean
postmode(fmodel1pp, c(1,1,0,0,0), bpar = beta) # posterior mode

with(post, quantile(zeta, probs = c(0.025, 0.975))) # posterior credibility interval
profileci(fmodel1pp, c(1,1,0,0,0), bpar = beta) # profile likelihood confidence interval

Run the code above in your browser using DataLab