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!