Hier ist ein kleiner Hintergrund zu meiner Situation: Meine Daten beziehen sich auf die Anzahl der Beutetiere, die ein Raubtier erfolgreich gefressen hat. Da die Anzahl der Beutetiere in jedem Versuch begrenzt ist (25 verfügbar), hatte ich eine Spalte "Stichprobe", die die Anzahl der verfügbaren Beutetiere darstellt (also 25 in jedem Versuch), und eine andere Spalte namens "Anzahl", die die Anzahl der Erfolge war ( Wie viele Beute wurden gefressen? Ich habe meine Analyse auf das Beispiel aus dem R-Book für Anteilsdaten (Seite 578) gestützt. Die erklärenden Variablen sind Temperatur (4 Ebenen, die ich als Faktor behandelt habe) und Geschlecht des Raubtiers (offensichtlich männlich oder weiblich). So lande ich mit diesem Modell:
model <- glm(y ~ Temperature+Sex+Temperature*Sex data=predator, family=quasibinomial)
Nach dem Abrufen der Abweichungsanalyse-Tabelle hat sich herausgestellt, dass Temperatur und Geschlecht (jedoch nicht die Interaktion) einen signifikanten Einfluss auf den Beutekonsum haben. Nun mein Problem: Ich muss wissen, welche Temperaturen unterschiedlich sind, dh ich muss die 4 Temperaturen miteinander vergleichen. Wenn ich ein lineares Modell hätte, würde ich die TukeyHSD-Funktion verwenden, aber da ich ein GLM verwende, kann ich nicht. Ich habe das Paket MASS durchgesehen und versucht, eine Kontrastmatrix einzurichten, aber aus irgendeinem Grund funktioniert es nicht. Anregungen oder Hinweise?
Hier ist die Zusammenfassung, die ich von meinem Modell bekomme, wenn das hilft, es klarer zu machen ...
y <- cbind(data$Count, data$Sample-data$Count)
model <- glm(y ~ Temperature+Sex+Temperature*Sex data=predator, family=quasibinomial)
> summary(model)
# Call:
# glm(formula = y ~ Temperature + Sex + Temperature * Sex, family=quasibinomial, data=data)
# Deviance Residuals:
# Min 1Q Median 3Q Max
# -3.7926 -1.4308 -0.3098 0.9438 3.6831
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) -1.6094 0.2672 -6.024 3.86e-08 ***
# Temperature8 0.3438 0.3594 0.957 0.3414
# Temperature11 -1.0296 0.4803 -2.144 0.0348 *
# Temperature15 -1.2669 0.5174 -2.449 0.0163 *
# SexMale 0.3822 0.3577 1.069 0.2882
# Temperature8:SexMale -0.2152 0.4884 -0.441 0.6606
# Temperature11:SexMale 0.4136 0.6093 0.679 0.4990
# Temperature15:SexMale 0.4370 0.6503 0.672 0.5033
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# (Dispersion parameter for quasibinomial family taken to be 2.97372)
# Null deviance: 384.54 on 95 degrees of freedom
# Residual deviance: 289.45 on 88 degrees of freedom
# AIC: NA
# Number of Fisher Scoring iterations: 5
glht
multcomp
glht(my.glm, mcp(Temperature="Tukey"))
model<-glm(y ~ Temperature*Sex data=predator, family=quasibinomial)
Temperature
als Faktor modelliert ? Haben Sie nicht die tatsächlichen Zahlenwerte? Ich würde sie als stetige Variable verwenden und dann ist das ganze Thema umstritten.Antworten:
Anne, ich werde kurz erklären, wie solche mehrfachen Vergleiche im Allgemeinen durchgeführt werden. Warum dies in Ihrem speziellen Fall nicht funktioniert, weiß ich nicht; Es tut mir Leid.
Normalerweise können Sie dies jedoch mit dem
multcomp
Paket und der Funktion tunglht
. Hier ist ein Beispiel:Wenn Sie die paarweisen Vergleiche zwischen der
rank
Verwendung von Tukeys HSD berechnen möchten, können Sie dies folgendermaßen tun:Hinweis: Wie in den Kommentaren unter @gung vermerkt, sollten Sie die Temperatur möglichst als stetige und nicht als kategoriale Variable angeben. In Bezug auf die Interaktion: Sie können einen Likelihood-Ratio-Test durchführen, um zu überprüfen, ob der Interaktionsterm die Modellanpassung signifikant verbessert. In Ihrem Fall würde der Code ungefähr so aussehen:
Wenn dieser Test nicht signifikant ist, können Sie die Interaktion aus Ihrem Modell entfernen. Vielleicht klappt
glht
das dann?quelle