biprobit | R Documentation |
Bivariate Probit model
biprobit( x, data, id, rho = ~1, num = NULL, strata = NULL, eqmarg = TRUE, indep = FALSE, weights = NULL, weights.fun = function(x) ifelse(any(x <= 0), 0, max(x)), randomeffect = FALSE, vcov = "robust", pairs.only = FALSE, allmarg = !is.null(weights), control = list(trace = 0), messages = 1, constrain = NULL, table = pairs.only, p = NULL, ... )
x |
formula (or vector) |
data |
data.frame |
id |
The name of the column in the dataset containing the cluster id-variable. |
rho |
Formula specifying the regression model for the dependence parameter |
num |
Optional name of order variable |
strata |
Strata |
eqmarg |
If TRUE same marginals are assumed (exchangeable) |
indep |
Independence |
weights |
Weights |
weights.fun |
Function defining the bivariate weight in each cluster |
randomeffect |
If TRUE a random effect model is used (otherwise correlation parameter is estimated allowing for both negative and positive dependence) |
vcov |
Type of standard errors to be calculated |
pairs.only |
Include complete pairs only? |
allmarg |
Should all marginal terms be included |
control |
Control argument parsed on to the optimization routine. Starting values may be parsed as ' |
messages |
Control amount of messages shown |
constrain |
Vector of parameter constraints (NA where free). Use this to set an offset. |
table |
Type of estimation procedure |
p |
Parameter vector p in which to evaluate log-Likelihood and score function |
... |
Optional arguments |
data(prt) prt0 <- subset(prt,country=="Denmark") a <- biprobit(cancer~1+zyg, ~1+zyg, data=prt0, id="id") b <- biprobit(cancer~1+zyg, ~1+zyg, data=prt0, id="id",pairs.only=TRUE) predict(b,newdata=lava::Expand(prt,zyg=c("MZ"))) predict(b,newdata=lava::Expand(prt,zyg=c("MZ","DZ"))) ## Reduce Ex.Timings n <- 2e3 x <- sort(runif(n, -1, 1)) y <- rmvn(n, c(0,0), rho=cbind(tanh(x)))>0 d <- data.frame(y1=y[,1], y2=y[,2], x=x) dd <- fast.reshape(d) a <- biprobit(y~1+x,rho=~1+x,data=dd,id="id") summary(a, mean.contrast=c(1,.5), cor.contrast=c(1,.5)) with(predict(a,data.frame(x=seq(-1,1,by=.1))), plot(p00~x,type="l")) pp <- predict(a,data.frame(x=seq(-1,1,by=.1)),which=c(1)) plot(pp[,1]~pp$x, type="l", xlab="x", ylab="Concordance", lwd=2, xaxs="i") lava::confband(pp$x,pp[,2],pp[,3],polygon=TRUE,lty=0,col=lava::Col(1)) pp <- predict(a,data.frame(x=seq(-1,1,by=.1)),which=c(9)) ## rho plot(pp[,1]~pp$x, type="l", xlab="x", ylab="Correlation", lwd=2, xaxs="i") lava::confband(pp$x,pp[,2],pp[,3],polygon=TRUE,lty=0,col=lava::Col(1)) with(pp, lines(x,tanh(-x),lwd=2,lty=2)) xp <- seq(-1,1,length.out=6); delta <- mean(diff(xp)) a2 <- biprobit(y~1+x,rho=~1+I(cut(x,breaks=xp)),data=dd,id="id") pp2 <- predict(a2,data.frame(x=xp[-1]-delta/2),which=c(9)) ## rho lava::confband(pp2$x,pp2[,2],pp2[,3],center=pp2[,1]) ## Time ## Not run: a <- biprobit.time(cancer~1, rho=~1+zyg, id="id", data=prt, eqmarg=TRUE, cens.formula=Surv(time,status==0)~1, breaks=seq(75,100,by=3),fix.censweights=TRUE) a <- biprobit.time2(cancer~1+zyg, rho=~1+zyg, id="id", data=prt0, eqmarg=TRUE, cens.formula=Surv(time,status==0)~zyg, breaks=100) #a1 <- biprobit.time2(cancer~1, rho=~1, id="id", data=subset(prt0,zyg=="MZ"), eqmarg=TRUE, # cens.formula=Surv(time,status==0)~1, # breaks=100,pairs.only=TRUE) #a2 <- biprobit.time2(cancer~1, rho=~1, id="id", data=subset(prt0,zyg=="DZ"), eqmarg=TRUE, # cens.formula=Surv(time,status==0)~1, # breaks=100,pairs.only=TRUE) ## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.