Hi, I am new to R. My problem is with the ordered logistic model. Here is my question:
Generate an order discrete variable using the variable wrwage1 = wages in first full calendar quarter after benefit application in the following way: * wage*1*Ordered *= 1 *if*0 *· wrwage*1 *< *1000 2 *if*1000 *· wrwage*1 *< *2000 3 *if*2000 *· wrwage*1 *< *3000 4 *if*3000 *· wrwage*1 *< *4000 5 *ifwrwage*1 *¸ *4000. Estimate an order logit model using the new created discrete variable as the dependent variable with the following control variables: black = 1 if black hispanic = 1 if hispanic otherrace = 1 if black = 0 and hispanic = 0 female = 1 if female wba = claimant's UI weekly bene¯t amount (*=week*) age = age of claimant when claim is ¯led (years) bp1000 = base period wages (thousand $) inuidur1 = duration of unemployment (weeks) I have written the program as: > pennw <- read.table("G:/Econometrics II/pennsylvania.txt", header=TRUE) > names(pennw) [1] "group" "t0" "t1" "t2" "t3" "t4" [7] "intercept" "black" "hispanic" "female" "wba" "bonus" [13] "age" "recall" "pd" "bp1000" "numpay" "wrwage0" [19] "wrwage1" "wrwage2" "wrwage3" "wrwage4" "inuidur1" "regui" > wage <- pennw$wrwage1 > wage[wage>=0 & wage<1000] <- 1 > wage[wage>=1000 & wage<2000] <- 2 > wage[wage>=2000 & wage<3000] <- 3 > wage[wage>=3000 & wage<4000] <- 4 > wage[wage>=4000] <- 5 > intercept <- pennw$intercept > blac <- pennw$black > hisp <- pennw$hispanic > fem <- pennw$female > wba <- pennw$wba > age <- pennw$age > bpw <- pennw$bp1000 > dur <- pennw$inuidur1 > fw <- factor(wage) > Ik <- model.matrix(~fw-1) > I1 <- Ik[,1] > I2 <- Ik[,2] > I3 <- Ik[,3] > I4 <- Ik[,4] > I5 <- Ik[,5] > yelmon <- function(theta,x){ + mu1 <- theta[1] + mu2 <- theta[2] + mu3 <- theta[3] + mu4 <- theta[4] + mu5 <- theta[5] + beta <- theta[6] + logL <- sum((Ik*log((exp(mu2-(x*beta))/(1+exp(mu2-(x*beta))))-(exp(mu1-(x*beta))/(1+exp(mu1-(x*beta))))))+(Ik*log((exp(mu3-(x*beta))/(1+exp(mu3-(x*beta))))-(exp(mu2-(x*beta))/(1+exp(mu2-(x*beta))))))+(Ik*log((exp(mu4-(x*beta))/(1+exp(mu4-(x*beta))))-(exp(mu3-(x*beta))/(1+exp(mu3-(x*beta))))))+(Ik*log((exp(mu5-(x*beta))/(1+exp(mu5-(x*beta))))-(exp(mu4-(x*beta))/(1+exp(mu4-(x*beta))))))+(Ik*log(1-(exp(mu5-(x*beta))/(1+exp(mu5-(x*beta))))))) + return(-logL) + } > optim(yelmon, c(0,1), x=c(intercept, blac, hisp, fem, wba, age, bpw, dur)) I should be getting the values for all betas and mus here ) The program should be done by maximum likelihood not by calling ready-made commands Rubel [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.