logmnl<- function(X,y,nsize,nxvar,nhh,beta){ #Function evaluates the log-likelihood of multinimial logit model #X is of dimension X(nsize,nxvar,nhh) and y(nsize,nhh) # nsize=number of alternatives # nxvar=number of x variables # nhh=number of observations df=read.table("TS_3part.dat",header=TRUE) inp=as.matrix(df) y=as.numeric(inp[,1]) + nsize=3 + nxvar=4 + nhh=length(y) X=createX(p=p,na=1,Xa=data[,3:8],nd=NULL,Xd=NULL,INT=TRUE,base=1) + xp<-array(0,dim=c(nsize)) + logprob<-0 + for(i in 1:nhh) + { + for(j in 1:nsize) + { + xp[j]<-exp(t(X[j,,i]) %*% beta) + } + denom=sum(xp) + for(j in 1:nsize) + { + if(y[j,i]==1) prob=xp[j]/denom + } + logprob=logprob+log(prob) + } + logprob + }