########################################################## #This function takes data set and marker positions(pos) #Deltahat is obtained by sum(LI)/sum(I). #After fixing delta = deltahat, lambdahat is set to be the value #which maximizes log-likelihood. (nlminb is used for maximization) #It returns deltahat, lambdahat, #phat (proportion of informative markers) and log-likelihood evaluated at #deltahat, and lambdahat simple.est.null<-function(data,pos){ LI<-apply(data,2,function(x){sum(x==1)}) I<-apply(data,2,function(x){sum(x!=-1)}) deltahat<- sum(LI)/sum(I) phat<-sum(I)/nrow(data)/length(pos) # proportion of informative markers profile<-nlminb(start=0,mloglik.null,delta=deltahat,data=data,pos=pos, lower=-Inf,upper=Inf) message<-profile$message lambdahat<-1/exp(profile$parameters) loglik.null<-(-profile$objective) return(list(deltahat=deltahat,lambdahat=lambdahat,phat=phat, loglik.null=loglik.null,message=message)) } ######## Example ###################################### pro<-dget("pro.data") thy<-dget("thy.data") fjp<-dget("fjp.data") pro.simple.est.null<-simple.est.null(data=pro$data, pos=pro$pos) thy.simple.est.null<-simple.est.null(data=thy$data, pos=thy$pos) fjp.simple.est.null<-simple.est.null(data=fjp$data, pos=fjp$pos) ########################################################