R/logl_probit.R

Defines functions logl_probit

Documented in logl_probit

#' Loglikelihood used by ui_probit 
#'
#' This function derives the Loglikelihood for \code{\link{ui_probit}}. 
#' @param par Coeficient values the logliklihood should be drived at.
#'@param rho The value of the sensitivity parameter.
#'@param Xz covariate matrix for missingness mechanism
#'@param Xy covariate matrix for the outcome regression
#'@param z indicator of wether y is missing or not
#'@param y outcome vector
#'@import mvtnorm
#'@importFrom stats pnorm dnorm
#' @export
logl_probit<-function(par,rho,Xz = Xz, Xy = Xy, y = y, z = z){
d<-dim(Xy)[2]
beta<-par[1:d]
delta<-par[(d+1):length(par)]

q <- 2*y - 1
w1<-(q*tcrossprod(beta,Xy))[z==1]
dx<-tcrossprod(delta,Xz)
dx1<-dx[z==1]
Rhos<-(q[z==1]*rho)

n1<-sum(z==1)
Phi2<-vector(length=n1)
for(i in 1:n1){
	Phi2[i]<-pmvnorm(lower=-Inf,upper=c(w1[i],dx1[i]), 
				mean=c(0,0),corr=rbind(c(1,Rhos[i]),c(Rhos[i],1)))
}
	
logl<-sum((1-z)*log(1-pnorm(dx))) + sum(log(Phi2))
return(logl)
}

Try the ui package in your browser

Any scripts or data that you put into this service are public.

ui documentation built on June 25, 2026, 5:09 p.m.