2013-09-04 1 views
0

J'ai un ensemble de donnéesComment faire GLM où la réponse dépend de la réponse du même groupe?

y x1 x2 x3 
1 91 21 A1 
0 54 87 A1 
1 88 54 B1 
1 67 42 B1 
0 32 83 B1 
....... 

Je veux d'abord faire une GLM y ~ x1 + x2 sur le sous-ensemble où x2> 50 (je peux le faire avec subsetting),

mdl1 <- glm(y~x1+x2, family=binomial, data=subset(df, x2>50)) 

je vouloir faire un deuxième glm y ~ x1 + x2 + y (de x2> 50 et x3 est le même). Par exemple, la deuxième ligne a x2 = 87 et x3 = A1, alors y = 0 aura un effet sur la modélisation de y pour la première ligne qui est dans le même x3 = A1, et a x2 < 50 De même, y à partir des lignes 3 et 5 aura un effet sur la ligne 4.

Je ne sais pas comment inclure ceci sur le modèle.

mdl2 <- glm(y~x1+x2+???, family=binomial, data=subset(df, x2<=50)) 

Je suspecte y lorsque x2 < 50 dépend d'autres de la même y de x3.

+0

Quelle est votre question? – Thomas

+0

@Thomas, en écrivant le modèle et le code pour le second glm. – user2745630

+0

Pourquoi ne montrez-vous pas le code que vous avez déjà trouvé dans votre question et ensuite développez, car ce que vous voulez n'est pas vraiment clair. – Thomas

Répondre

0

Je pense que vous pourriez adapter à un GLM combiné qui capture l'idée que "y lorsque x2 < 50 dépend d'autres de y de la même x3":

mdl <- glm(y ~ x1 + x2 + x3:as.numeric(x2 < 50), family=binomial) 

Pour x2> = 50, as.numeric(x2 < 50) est égal à zéro , donc le modèle est juste y ~ x1 + x2. Pour x2 < 50, as.numeric(x2 < 50) est un, donc le modèle devient y ~ x1 + x2 + x3.

avec cette approche, les coefficients pour x1 et x2 sont basées sur toutes les données, mais les effets de x3 sont basées uniquement sur les données avec x2 < 50.

Questions connexes