Chciałbym wymusić określone zmienne w regresjach glm bez pełnego określenia każdego z nich. Mój prawdziwy zestaw danych zawiera ~ 200 zmiennych. Nie udało mi się znaleźć próbek tego w moich internetowych poszukiwaniach.Określanie formuły w R z glm bez jawnej deklaracji każdej zmiennej dodatkowej
Na przykład (z zaledwie 3 zmienne):
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))))))
Jeśli chcę obejmują wszystkie główne warunki, to nie ma łatwego skrótu:
glm(Y~., family=binomial, data=samp)
Ale mówią, że chcą obejmować wszystkie główne warunki (W1, W2 i A) plus W2^2:
glm(Y~A+W1+W2+I(W2^2), family=binomial, data=samp)
Czy istnieje skrót do tego?
[edytuj własny przed opublikowaniem:] To działa! glm(formula = Y ~ . + I(W2^2), family = binomial, data = samp)
OK, więc co z tym!
Chcę pominąć jeden główny warunki zmienna i obejmują jedynie dwa główne warunki (A, W2) i W2^2 i W2^2::
glm(Y~A+W2+A*I(W2^2), family=binomial, data=samp)
Oczywiście za pomocą kilku zmiennych bez skrótu naprawdę potrzebne, ale pracuję z wysokimi danymi wymiarowymi. Aktualny zestaw danych zawiera "tylko" 200 zmiennych, ale niektóre inne mają tysiące i tysiące.
Oh wow, tak mi przykro, pojąłem też moje drugie pytanie! glm (Y ~.-W1 + A * I (W2^2), rodzina = dwumianowy, data = samp) Mam nadzieję, że to pomaga komuś innemu, więc nie jest źle mieć go tutaj. –