Cómo especificar covariables en un modelo de regresión

El conjunto de datos que me gustaría analizar se ve así

n <- 4000
tmp <- t(replicate(n, sample(49,6)))
dat <- matrix(0, nrow=n, ncol=49)
colnames(dat) <- paste("p", 1:49, sep="")
dat <- as.data.frame(dat)
dat[, "win.frac"] <- rnorm(n, mean=0.0176504, sd=0.002)
for (i in 1:nrow(dat)) 
  for (j in 1:6) dat[i, paste("p", tmp[i, j], sep="")] <- 1
str(dat)

Ahora me gustaría realizar una regresión con variable dependientewin.frac y todas las demás variables (p1, ...,p49) como variables explicativas.

Sin embargo, con todos los enfoques que probé, obtengo el coeficiente parap49 como NA, con el mensaje "1 no definido por singularidades". Lo intenté

modspec <- paste("win.frac ~", paste("p", 1:49, sep="", collapse=" + "))
fit1 <- lm(as.formula(modspec), data=dat)
fit2 <- lm(win.frac ~ ., data=dat)

Curiosamente, la regresión funciona si uso 48 variables explicativas. Esto puede (p2, ..., p49) o no (p1, ..., p48) contener el p49, por lo tanto, creo que esto no está relacionado con la variable p49 en sí. También probé valores más grandes den, con el mismo resultado.

También intentébetareg desde elbetareg paquete, ya quewin.frac está restringido entre 0 y 1. La regresión en este caso también falla, con el mensaje de error (traducido aproximadamente) "error en optim (...): valor no finito de optim especificado"

library(betareg)
fit3 <- betareg(as.formula(modspec), data=dat, link="log")

Ahora estoy atascado. ¿Cómo puedo realizar esta regresión? ¿Hay un máximo de variables? ¿Se debe este problema al hecho de que las variables explicativas son 0 o 1?

Cualquier pista es muy apreciada!

Respuestas a la pregunta(1)

Su respuesta a la pregunta