Learn R Programming

fourPNO (version 1.0.2)

Gibbs_2PNO: Gibbs Implementation of 2PNO

Description

Internal function to -2LL

Usage

Gibbs_2PNO(Y,mu_xi,Sigma_xi_inv,mu_theta,Sigma_theta_inv,burnin,chain_length=10000L)

Arguments

Y
A N by J matrix of item responses.
mu_xi
A two dimensional vector of prior item parameter means.
Sigma_xi_inv
A two dimensional matrix of prior for the inverse item parameter variance-covariance matrix.
mu_theta
The prior mean for theta.
Sigma_theta_inv
The prior inverse variance for theta.
burnin
The number of MCMC samples to discard. Note that if burnin < chain_length that
chain_length
The number of MCMC samples.

Value

  • Samples from posterior.

Examples

Run this code
require(fourPNO)
#simulate small 2PNO dataset to demonstrate function
J = 5
N = 100
  #population item parameters
  as_t = rnorm(J,mean=2,sd=.5)
  bs_t = rnorm(J,mean=0,sd=.5)
  #sampling gs and ss with truncation
  gs_t = rbeta(J,1,8)
    ps_g = pbeta(1-gs_t,1,8)
  ss_t = qbeta(runif(J)*ps_g,1,8)
theta_t <- rnorm(N)
Y_t = Y_4pno_simulate(N,J,as=as_t,bs=bs_t,gs=gs_t,ss=ss_t,theta=theta_t)

#setting prior parameters
mu_theta=0
Sigma_theta_inv=1
mu_xi = c(0,0)
alpha_c=alpha_s=beta_c=beta_s=1
Sigma_xi_inv = solve(2*matrix(c(1,0,0,1),2,2))
burnin = 1000
#Execute Gibbs sampler. This should take about 15.5 minutes
out_t <- Gibbs_4PNO(Y_t,mu_xi,Sigma_xi_inv,mu_theta,Sigma_theta_inv,alpha_c,beta_c,alpha_s,
                    beta_s,burnin,rep(1,J),rep(1,J),gwg_reps=5,chain_length=1000)

#summarizing posterior distribution
OUT = cbind(apply(out_t$AS[,-c(1:burnin)],1,mean),apply(out_t$BS[,-c(1:burnin)],1,mean),
            apply(out_t$GS[,-c(1:burnin)],1,mean),apply(out_t$SS[,-c(1:burnin)],1,mean),
            apply(out_t$AS[,-c(1:burnin)],1,sd),apply(out_t$BS[,-c(1:burnin)],1,sd),
            apply(out_t$GS[,-c(1:burnin)],1,sd),apply(out_t$SS[,-c(1:burnin)],1,sd) )
OUT = cbind(1:J,OUT)
colnames(OUT) = c('Item','as','bs','gs','ss','as_sd','bs_sd','gs_sd','ss_sd')
print(OUT,digits=3)

Run the code above in your browser using DataLab