- R

2016-03-22 22 views
1

ı aşağıdaki özelliklere sahip diyelim:- R

glm(death ~ age + black + hisp + other + rich + middle, family = binomial("probit"), data=data) 

"etnisite grubu" arasındaki tüm iki yönlü etkileşimleri eklemek için basit bir yolu var mı (siyah, hisp ve diğer) ve "gelir grubu" (zengin, orta). Dolayısıyla, etkileşimler siyah zengin, siyah orta, hisp * zengin ve benzerleri olacaktır.

+1

'interaction' veya': ' – alistaire

+0

Yukarıda açıklanan gibi "gruplandırılmış" permütasyon için bunlardan biri nasıl kullanılacağını bana net değil. Etkileşim, tüm 2 yönlü etkileşimleri hesaplar. Irk değişkenleri arasındaki etkileşimleri istemiyorum, sadece bu iki set arasında. – Parseltongue

+0

Verilerinizi "etnik köken" ve "gelir" faktör sütunlarına dönüştürmeniz gerekir. Ben glm ile nasıl oynandığından tam olarak emin değilim, ama daha önce çalıştım: '' ile formüller gördüm. – alistaire

cevap

2

Formül arabirimi, (ethnicity + incgrp)^2 tarafından iki faktör değişkeninden tüm 2 yönlü etkileşimleri oluşturabileceğiniz ancak yalnızca R faktörü kurallarını kullandığınızda geçerli olan ^ -operator ile bunu kolayca yapmanızı sağlar. Görünüşe göre, SAS stili kukla değişken oluşturma yerine, formül ve faktörlerin doğru kullanımını atlatmaya çalışıyorsunuz. durumunuza için, deneyebilirsiniz:

glm(death ~ age + (black + hisp + other)*(rich + middle), family = binomial("probit"), data=data) 

formula yorumlama etkileşimleri oluşturmak için hem ^ ve * kullanır. Geleneksel matematiksel anlamlarını kaybederler. ?formula

2

formülü içindeki tüm kombinasyonları yapıştırarak düşünün Bkz:

vars1 <- c('black', 'hisp', 'other') 
vars2 <- c('rich', 'middle') 
interactions <- outer(vars1, vars2, function(x,y){paste0(x,'*',y)}) 
intjoin <- paste(interactions, collapse=" + ") 
#[1] "black*rich + hisp*rich + other*rich + black*middle + hisp*middle + other*middle" 

model <- glm(paste0('death ~ age + black + hisp + other + rich + middle + ', intjoin), 
      family = binomial("probit"), data=data) 
+0

macunun çok öğretici kullanımı. teşekkür ederim! – Parseltongue