Como especificar covariáveis em um modelo de regressão

O conjunto de dados que eu gostaria de analisar se parece com isso

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)

Agora eu gostaria de fazer uma regressão com variável dependentewin.frac e todas as outras variáveis (p1, ...,p49) como variáveis explicativas.

No entanto, com todas as abordagens que tentei, obtive o coeficiente dep49 como NA, com a mensagem "1 não definida devido a singularidades". eu tentei

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

Curiosamente, a regressão funciona se eu usar 48 variáveis explicativas. Isso pode (p2, ..., p49) ou não (p1, ..., p48) conter o p49, portanto, acho que isso não está relacionado à variável p49. Eu também tentei valores maiores den, com o mesmo resultado.

Eu também tenteibetareg debetareg pacote, desdewin.frac está restrito entre 0 e 1. A regressão neste caso também falha, com a mensagem de erro (traduzida aproximadamente) "erro no otim (...): valor não finito do otim especificado"

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

Agora estou preso. Como posso executar esta regressão? Existe um máximo de variáveis? Esse problema ocorre devido ao fato de as variáveis explicativas serem 0 ou 1?

Qualquer dica é muito apreciada!

questionAnswers(1)

yourAnswerToTheQuestion