# Example 1
bdata = data.frame(N = 10, mu = 0.5, rho = 0.8)
bdata = transform(bdata,
y = rbetabinom(n=100, size = N, prob = mu, rho = rho))
fit = vglm(cbind(y, N-y) ~ 1, betabinomial, bdata, trace = TRUE)
coef(fit, matrix = TRUE)
Coef(fit)
head(cbind(fit@y, weights(fit, type = "prior")))
# Example 2
fit = vglm(cbind(R, N-R) ~ 1, betabinomial, lirat,
trace = TRUE, subset = N > 1)
coef(fit, matrix = TRUE)
Coef(fit)
t(fitted(fit))
t(fit@y)
t(weights(fit, type = "prior"))
# Example 3, which is more complicated
lirat = transform(lirat, fgrp = factor(grp))
summary(lirat) # Only 5 litters in group 3
fit2 = vglm(cbind(R, N-R) ~ fgrp + hb, betabinomial(zero = 2),
data = lirat, trace = TRUE, subset = N > 1)
coef(fit2, matrix = TRUE)
with(lirat, plot(hb[N > 1], fit2@misc$rho,
xlab = "Hemoglobin", ylab = "Estimated rho",
pch = as.character(grp[N > 1]), col = grp[N > 1]))
# cf. Figure 3 of Moore and Tsiatis (1991)
with(lirat, plot(hb, R / N, pch = as.character(grp), col = grp, las = 1,
xlab = "Hemoglobin level", ylab = "Proportion Dead",
main = "Fitted values (lines)"))
smalldf = with(lirat, lirat[N > 1, ])
for(gp in 1:4) {
xx = with(smalldf, hb[grp == gp])
yy = with(smalldf, fitted(fit2)[grp == gp])
ooo = order(xx)
lines(xx[ooo], yy[ooo], col = gp) }
Run the code above in your browser using DataLab