##################################### ##GRADUATE STUDENT IDEAL POINT EST.## ##################################### library(MCMCpack) library(wnominate) library(oc) library(ellipse) setwd("C:/Users/Adam/Documents/University of Rochester/Grad Student Ideal Points") #Prepare plot window par(mfrow=c(2,2)) roll.call = t(read.csv("Grad Student RC.csv")) #Read in data here colnames(roll.call)=1:ncol(roll.call) ############## ##One-d Plot## ############## ideal.points1d = MCMCirt1d(roll.call, theta.constraints=list("Adam"="+", "Peter.H."="-"), store.item=TRUE) ip = matrix(apply(ideal.points1d,2,mean)) rownames(ip) = 1:ncol(ideal.points1d) ip.sort = matrix(sort(ip[1:nrow(roll.call)])) sdev = NULL rollnames = NULL for (j in 1:nrow(roll.call)){ i = as.numeric(rownames(ip)[ip==ip.sort[j]]) rollnames = c(rollnames, rownames(roll.call)[ip==ip.sort[j]]) sdev = rbind(sdev, sd(ideal.points1d[,i])) } plot(ip.sort[1:nrow(roll.call)], 1:nrow(roll.call), xlim=c(-2, 2.5), pch="") #segments(y0 = 1:nrow(roll.call), y1 = 1:nrow(roll.call), # x0 = (ip.sort[1:nrow(roll.call)] - 1.64*sdev), x1 = (ip.sort[1:nrow(roll.call)] + 1.64*sdev)) text(ip.sort[1:nrow(roll.call)], 1:nrow(roll.call), rollnames, cex=0.75, xlab="Ideal Point", ylab=NULL, main="1D Ideal Points") #Check discrimination parameters beta.mean = apply(ideal.points1d, 2, mean)[(nrow(roll.call)+1):(nrow(roll.call)+2*ncol(roll.call))][seq(2,2*45,by=2)] beta.sd = apply(ideal.points1d, 2, sd)[(nrow(roll.call)+1):(nrow(roll.call)+2*ncol(roll.call))][seq(2,2*45,by=2)] alpha.mean = apply(ideal.points1d, 2, mean)[(nrow(roll.call)+1):(nrow(roll.call)+2*ncol(roll.call))][seq(1,2*45,by=2)] alpha.sd = apply(ideal.points1d, 2, sd)[(nrow(roll.call)+1):(nrow(roll.call)+2*ncol(roll.call))][seq(1,2*45,by=2)] plot(1:45, beta.mean/beta.sd, pch="", xlab="Roll Calls", ylab="Pseudo-t Value", main="1D Model Fit") text(1:45, beta.mean/beta.sd, 1:45) abline(h=2) abline(h=-2) plot(1:45, alpha.mean, pch="", xlab="Roll Calls", ylab="Difficulty", main="1D Difficulty") text(1:45, alpha.mean, 1:45) abline(h=2) abline(h=-2)