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&nbsp;y todas las demás variables (p1, ...,p49) como variables explicativas.

Sin embargo, con todos los enfoques que probé, obtengo el coeficiente parap49&nbsp;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&nbsp;desde elbetareg&nbsp;paquete, ya quewin.frac&nbsp;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!