Binom2.or {VGAM} | R Documentation |
Density and random generation for a bivariate binary regression model using an odds ratio as the measure of dependency.
rbinom2.or(n, mu1, mu2=if(exchangeable) mu1 else stop("'mu2' not specified"), oratio=1, exchangeable=FALSE, tol=0.001, twoCols=TRUE, colnames=if(twoCols) c("y1","y2") else c("00", "01", "10", "11"), ErrorCheck=TRUE) dbinom2.or(mu1, mu2=if(exchangeable) mu1 else stop("'mu2' not specified"), oratio=1, exchangeable=FALSE, tol=0.001, colnames=c("00", "01", "10", "11"), ErrorCheck=TRUE)
n |
number of observations. Must be a single positive integer.
The arguments mu1 , mu2 , oratio are recycled to
length n .
|
mu1, mu2 |
The marginal probabilities.
Only mu1 is needed if exchangeable=TRUE .
Values should be between 0 and 1.
|
oratio |
Odds ratio. Must be numeric and positive.
The default value of unity means the responses are statistically
independent.
|
exchangeable |
Logical. If TRUE , the two marginal probabilities are constrained
to be equal.
|
twoCols |
Logical.
If TRUE , then a n * 2 matrix of 1s
and 0s is returned.
If FALSE , then a n * 4 matrix of 1s
and 0s is returned.
|
colnames |
The dimnames argument of
matrix is assigned list(NULL, colnames) .
|
tol |
Tolerance for testing independence. Should be some
small positive numerical value.
|
ErrorCheck |
Logical. Do some error checking of the input parameters?
|
The function rbinom2.or
generates data coming from a bivariate
binary response model.
The data might be fitted with the VGAM family function
binom2.or
.
The function dbinom2.or
does not really compute the density
(because that does not make sense here) but rather returns the
four joint probabilities.
The function rbinom2.or
returns
either a 2 or 4 column matrix of 1s and 0s, depending on the argument
twoCols
.
The function dbinom2.or
returns
a 4 column matrix of joint probabilities; each row adds up to unity.
T. W. Yee
# Example 1 nn = 2000 ymat = rbinom2.or(n=nn, mu1=0.8, oratio=exp(2), exch=TRUE) (mytab = table(ymat[,1], ymat[,2])) (myor = mytab["0","0"] * mytab["1","1"] / (mytab["1","0"] * mytab["0","1"])) fit = vglm(ymat ~ 1, binom2.or(exch=TRUE)) coef(fit, matrix=TRUE) # Example 2 x = sort(runif(nn)) mu1 = logit(-2+4*x, inv=TRUE) mu2 = logit(-1+3*x, inv=TRUE) dmat = dbinom2.or(mu1=mu1, mu2=mu2, oratio=exp(2)) ymat = rbinom2.or(n=nn, mu1=mu1, mu2=mu2, oratio=exp(2)) fit2 = vglm(ymat ~ x, binom2.or) coef(fit2, matrix=TRUE) ## Not run: matplot(x, dmat, lty=1:4, col=1:4, type="l", main="Joint probabilities", ylim=0:1, lwd=2) legend(x=0, y=0.5, lty=1:4, col=1:4, lwd=2, legend=c("1 = (y1=0, y2=0)", "2 = (y1=0, y2=1)", "3 = (y1=1, y2=0)", "4 = (y1=1, y2=1)")) ## End(Not run)