Как указать ковариаты в регрессионной модели

Набор данных, который я хотел бы проанализировать, выглядит следующим образом

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)

Теперь я хотел бы выполнить регрессию с зависимой переменнойwin.frac и все остальные переменные (p1...,p49) в качестве объяснительных переменных.

Однако при всех подходах, которые я пробовал, я получаю коэффициент дляp49 как NA, с сообщением «1 не определено из-за особенностей». Я старался

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

Интересно, что регрессия работает, если я использую 48 объясняющих переменных. Это может (p2, ..., p49) или не может (p1, ..., p48) содержать p49, поэтому я думаю, что это не связано с самой переменной p49. Я также пробовал большие значенияnс тем же результатом.

Я тоже пробовалbetareg отbetareg пакет, так какwin.frac ограничено между 0 и 1. Регрессия в этом случае также завершается неудачно, с сообщением об ошибке (грубо переведено) «ошибка в optim (...): указано неконечное значение optim»

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

Теперь я застрял. Как я могу выполнить эту регрессию? Есть ли максимум переменных? Является ли эта проблема из-за того, что объясняющие переменные либо 0 или 1?

Любая подсказка очень ценится!

Ответы на вопрос(1)

Ваш ответ на вопрос