2016-12-21 4 views
1

Ich versuche, die Koeffizienten von zwei linearen Regressionen mit den gleichen Variablen zu vergleichen, aber für verschiedene Untergruppen laufen. Ich möchte überprüfen, ob die Koeffizienten in meinem Modell 1 gleich meinen Koeffizienten in meinem Modell 2 sind. Ich muss für jeden Koeffizienten wissen.Vergleichen Koeffizienten über verschiedene Regressionen

Meine reproduzierbare Daten:

Data <- data.frame(
gender = sample (c("men", "women"), 2000, replace = TRUE), 
var1 = sample (c("value1", "value2"), 2000, replace = TRUE), 
var2 = sample (c("valueA", "valueB"), 2000, replace = TRUE), 
y = sample(0:10, 2000, replace = TRUE) 
) 

Ich betreibe die beiden Regressionen:

men <- subset(Data, gender =="men") 
women <- subset(Data, gender =="women") 

lm.men <- lm(y~var1+var2, data = men) 
summary(lm.men) 
lm.women <- lm(y~var1+var2, data = women) 
summary(lm.women) 

Grundsätzlich möchte ich testen, ob:

  • Koeffizient var1 in lm.men = Koeffizient var1 in lm.women
  • Koeffizient var2 in lm.men = Koeffizient var2 in lm.women

kann ich die anova() Funktion nicht, weil meine zwei Proben unterscheiden. Ich denke, ich sollte einen F-Test anwenden, aber ich kann keine Funktion für diesen Test finden.

Kann jemand mein Problem lösen?

+2

Dies ist eher eine „kreuzvalidierte“ Frage, und eine, die [bereits eine Antwort hat] (http://stats.stackexchange.com/questions/13112/what Es ist der richtige Weg, um signifikante Unterschiede zwischen uns zu testen en-Koeffizienten) – Barker

+0

oops. zumindest gibt meine Antwort R-kodierende Details, die nicht in den CV-Antworten enthalten sind. –

Antwort

2

Wie @Barker in Kommentaren betont, ist der statistische Teil dieser Frage already answered on CrossValidated; Ich werde hier einige R-coding Details hinzufügen.

Um diese Fragen ("tun die Auswirkungen von var1 und var2 unterscheiden sich deutlich zwischen Männern und Frauen?) Zu beantworten, muss ein Modell mit variablem von geschlechtlichen Interaktionen und testen Sie die Interaktion Bedingungen.

Data <- data.frame(
    gender = sample (c("men", "women"), 2000, replace = TRUE), 
    var1 = sample (c("value1", "value2"), 2000, replace = TRUE), 
    var2 = sample (c("valueA", "valueB"), 2000, replace = TRUE), 
    y = sample(0:10, 2000, replace = TRUE) 
) 
mm <- lm(y~(var1+var2)*gender,Data) 

Hier sind die Interaktionsbedingungen:

interax <- c("var1value2:genderwomen","var2valueB:genderwomen") 
printCoefmat(coef(summary(mm))[interax,]) 
##      Estimate Std. Error t value Pr(>|t|) 
## var1value2:genderwomen 0.20144 0.28241 0.7133 0.4758 
## var2valueB:genderwomen -0.15423 0.28266 -0.5456 0.5854 
+0

Vielen Dank @Ben! Könnten Sie mir einfach helfen, die Ergebnisse richtig zu interpretieren? Sollte ich in Ihrer Stichprobe zu dem Schluss kommen, dass sich die var1 signifikant zwischen Männern und Frauen unterscheidet, weil das Pr (> | t |) 'größer als 0,10 ist? –

+0

Dies sind Standard-p-Werte für den Test der Nullhypothese, dass es keine Interaktion gibt (d. H. Dass die Auswirkungen der Variablen für beide Geschlechter gleich sind). Große p-Werte bedeuten, dass die Nullhypothese nicht zurückgewiesen werden kann (wenn Ihnen das nicht vertraut ist, sollten Sie Ihr statistisches Grundwissen unbedingt verbessern/auffrischen, bevor Sie Daten analysieren ...) –

+1

Auch würde ich sicherlich hoffen, dass der Unterschied zwischen den Geschlechtern kam wieder als unbedeutend in diesem Beispiel, da alle Werte nur stichprobenweise abgetastet wurden. – Barker

Verwandte Themen