Me gustaría forzar variables específicas en regresiones glm sin especificar completamente cada una. Mi conjunto de datos real tiene ~ 200 variables. No he podido encontrar muestras de esto en mi búsqueda en línea hasta el momento.Especificando fórmula en R con glm sin declaración explícita de cada covariable
Por ejemplo (con sólo 3 variables):
n=200
set.seed(39)
samp = data.frame(W1 = runif(n, min = 0, max = 1), W2=runif(n, min = 0, max = 5))
samp = transform(samp, # add A
A = rbinom(n, 1, 1/(1+exp(-(W1^2-4*W1+1)))))
samp = transform(samp, # add Y
Y = rbinom(n, 1,1/(1+exp(-(A-sin(W1^2)+sin(W2^2)*A+10*log(W1)*A+15*log(W2)-1+rnorm(1,mean=0,sd=.25))))))
Si quiero incluir todos los términos principales, esto tiene un atajo fácil:
glm(Y~., family=binomial, data=samp)
Pero decir que quiero incluir toda principal términos (W1, W2, y a) más W2^2:
glm(Y~A+W1+W2+I(W2^2), family=binomial, data=samp)
¿hay un atajo para esto?
[autoedición antes de la publicación:] ¡Esto funciona! glm(formula = Y ~ . + I(W2^2), family = binomial, data = samp)
Bien, entonces ¿qué hay de este?
quiero omitir uno términos principales variables e incluyen sólo dos términos principales (A, W2) y W2^2 y W2^2: A:
glm(Y~A+W2+A*I(W2^2), family=binomial, data=samp)
Obviamente, con sólo unas pocas variables sin acceso directo se realmente es necesario, pero trabajo con datos de alta dimensión. El conjunto de datos actual tiene "solo" 200 variables, pero algunas otras tienen miles y miles.
Oh wow, lo siento mucho, ¡también descubrí mi segunda pregunta! glm (Y ~.-W1 + A * I (W2^2), familia = binomial, data = samp) Ojalá esto ayude a otra persona, por lo que no está mal tenerlo aquí –