Welchen Test wähle ich

Fragen, die sich auf kein spezielles Verfahren beziehen.

Welchen Test wähle ich

Beitragvon Fledermaus » Do 15. Mär 2018, 16:05

Hallo,
ich arbeite gerade an der Statistik meiner Masterarbeit. In dieser wollte ich herausfinden, ob Fledermäuse durch die Begehung des Winterquartiers wach werden. Während des Winterschlafs befinden sich die Tiere im Torpor und haben eine sehr niedrige Körpertemperatur und wenn sie aktiv werden heizen sie hoch. Dafür habe ich Temperaturmessungen gemacht und die Temperatur der Fledermäuse am Anfang gemessen und nach 45 Minuten nochmal und wollte nun herausfinden ob die Tiere bei der zweiten Messung wärmer sind.

Ob sie nun aufwachen oder nicht würde ich entweder mit einem gepaarten Wilcox machen

wilcox.test(Te$Temp_A, Te$Temp_B, paired=TRUE, ra.rm=T)

# Wilcoxon signed rank test with continuity correction

#data: Te$Temp_A and Te$Temp_B
#V = 1963300, p-value = 3.53e-06
#alternative hypothesis: true location shift is not equal to 0

oder mit einem Binomial Test (Eines der 3000 gemessenen Tiere war am Anfang schon wach, also p=1/3000 und 14 waren (das eine Tier welches am Anfang wach war ausgenommen) bei der zweiten Messung wach)

> binom.test(14, 3000, p = 0.000333, alternative = c("two.sided"), conf.level = 0.95)

# Exact binomial test

#data: 14 and 3000
#number of successes = 14, number of trials = 3000, p-value = 4.346e-12
#alternative hypothesis: true probability of success is not equal to 0.000333
#95 percent confidence interval:
# 0.002553587 0.007817490
#sample estimates:
#probability of success
# 0.004666667

Welchen soll ich nehmen?
Und nun zur eigentlich Problematik

Ich möchte gerne ein Model machen um auch auf andere Effekte zu prüfen.
Dafür möchte ich gerne die Temperaturdifferenz gegen Temperatur draußen, die Temperatur im Bunker (alles metrische Werte), gegen unterschiede zwischen den verschiedenen Fledermausarten testen.

Die Differenzwerte der Temperaturmessungen sind nicht normal verteilt. Außerdem sind dort negativwerte dabei.
Ich habe die Differenzwerte auch schon logarythmiert, war das richtig? wenn ich ein lm nehme müssen sie ja normalverteilt sein oder soll ich ein glm nehmen und die Abhängige Variable (Differenz) nicht logarythmieren?
oder brauche ich gar ein glmm oder etwas ganz anderes? :shock:

Ich hoffe es kann mir jemand helfen. :cry: Vielen Dank
Fledermaus
Grünschnabel
Grünschnabel
 
Beiträge: 9
Registriert: Do 15. Mär 2018, 15:44
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Welchen Test wähle ich

Beitragvon bele » Do 15. Mär 2018, 16:44

Hi!

Fledermaus hat geschrieben:Welchen soll ich nehmen?


Beides nicht so der Bringer. Besser: Der Vorzeichenrangtest. Der entspricht der Natur verbundener Stichproben. Allerdings testet er Temperaturen und nicht Wachheit. Wenn alle schlafenden Fledermäuse 1/10 Grad wärmer sind, wird der hochsignifikant.

Deine Anwendung des Binomialtests ist falsch. Du prüfst auf die Wahrscheinlichkeit p = 0.000333 so als ob das eine Naturkonstante und nicht eine aus einer fehlerbehafteten Beobachtung geschätzte "wahre Wahrscheinlichkeit" wäre. Wenn Du einen p-Wert für den Vergleich von 1/3000 mit 14/3000 brauchst, hilft Dir die Funktion prop.test:

> prop.test(c(1,14), n=c(3000,3000))

2-sample test for equality of proportions with continuity
correction

data: c(1, 14) out of c(3000, 3000)
X-squared = 9.6241, df = 1, p-value = 0.00192
alternative hypothesis: two.sided
95 percent confidence interval:
-0.007191425 -0.001475242
sample estimates:
prop 1 prop 2
0.0003333333 0.0046666667


und schon stecken wir in einer ganz anderen Größenordnung mit dem p-Wert.

Wenn Du wach/nicht-wach für verbundene Stichproben vergleichen möchtest, würde sich ein McNemar-Test anbieten. In R mit mcnemar.test().



wenn ich ein lm nehme müssen sie ja normalverteilt sein oder soll ich ein glm nehmen und die Abhängige Variable (Differenz) nicht logarythmieren?


Für ein einfaches lineares Modell müssen die Daten nicht normalverteilt sein, sondern die Residuen sollten annähernd normalverteilt sein. Bei n=3000 darf man auch das eher locker sehen. Also rechne erstmal das lm-Modell und schau, was für Residuen raus kommen. Wenn die Zielvariable wach/nicht-wach ist, dann bietet sich eine logistische Regression mit glm an. Warum Du welche Deiner Werte logarithmieren willst, habe ich noch nicht verstanden. Das ist erstmal keine Frage der Normalverteilung sondern die Frage, ob ein Wert eher additiv oder eher multiplikativ in ein Modell eingehen soll. Das lässt sich aber besser besprechen, wenn ein konkretes Modell vorgeschlagen wird.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5920
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 16
Danke bekommen: 1401 mal in 1387 Posts

Re: Welchen Test wähle ich

Beitragvon Fledermaus » Fr 16. Mär 2018, 10:41

Hallo,
vielen Dank für die hilfreiche Antwort. Beim betrachten der Collinearität mit einer Verteilungsmatrix ist mir aufgefallen, dass ich drei erklärende Variablen habe die zusammenhängen/ miteinander korrelieren(Außentemperatur, Temperatur im Bunker und Anfangstemperatur der Fledermäuse). Muss ich zwei davon rausschmeißen oder muss ich nun ein glmm machen?
Meine abhängige Variable sind Messwerte, also die Differenz zwischen Temperatur A und Temperatur B der Fledermäuse und leider sind manche davon negativ.

Wenn ich ein lm mache und es mit dem ACI bestmöglich optimiere kommt das hier raus

lm(formula = Temp_Difference ~ Temp_Bunker + Temp_outside + Species +
Temp_A + Temp_Bunker:Temp_outside, data = Dataset2)

Residuals:
Min 1Q Median 3Q Max
-3.0244 -0.5133 -0.1108 0.2675 25.3526

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.321926 0.757951 -0.425 0.671068
Temp_Bunker 0.420829 0.049507 8.500 < 2e-16 ***
Temp_outside 0.062393 0.018807 3.317 0.000921 ***
Species[T.E._ser.] -0.448371 0.903520 -0.496 0.619761
Species[T.M._dau.] -0.593527 0.989531 -0.600 0.548689
Species[T.M._myo.] -0.465843 1.126180 -0.414 0.679166
Species[T.M._nat.] 0.199494 0.758212 0.263 0.792486
Species[T.P._aur.] -0.894328 0.747051 -1.197 0.231361
Species[T.Pipistrellus_spec.] -0.636471 0.738783 -0.862 0.389037
Temp_A -0.345388 0.041152 -8.393 < 2e-16 ***
Temp_Bunker:Temp_outside -0.010262 0.004541 -2.260 0.023923 *
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 1.474 on 2557 degrees of freedom
(11091 observations deleted due to missingness)
Multiple R-squared: 0.04258, Adjusted R-squared: 0.03884
F-statistic: 11.37 on 10 and 2557 DF, p-value: < 2.2e-16

Ist es eigentlich besser sich an den AIC oder den R-squared Wert zu halten beim optimieren des Models?

Außerdem habe ich noch bei einem zweiten Model den Lambda Wert korrigiert mit der boxcox Funktion.
Dafür musste ich aber, weil ich negativwerte in meiner abhängigen Variable hatte um 4+ korrigieren

Dataset2$Temp_Difference<-(4+Dataset2$Temp_Difference)

Ist das legitim? Jedenfalls habe ich mit dem selben Model aber korrigiertem Lambda einen viel besseren R-squared Wert

lm(formula = Temp_Difference^-(1/2) ~ Temp_Bunker + Temp_outside +
Temp_A + Temp_Bunker:Temp_outside, data = Dataset2)

Residuals:
Min 1Q Median 3Q Max
-0.46758 -0.02597 -0.00078 0.02437 0.51483

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.5818235 0.0046878 124.114 < 2e-16 ***
Temp_Bunker -0.0328334 0.0016663 -19.704 < 2e-16 ***
Temp_outside -0.0032767 0.0006360 -5.152 0.000000278 ***
Temp_A 0.0283355 0.0013897 20.389 < 2e-16 ***
Temp_Bunker:Temp_outside 0.0004844 0.0001535 3.156 0.00162 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.0499 on 2563 degrees of freedom
(11091 observations deleted due to missingness)
Multiple R-squared: 0.1463, Adjusted R-squared: 0.145
F-statistic: 109.8 on 4 and 2563 DF, p-value: < 2.2e-16

Nun weiß ich nicht ob alles was ich gemacht habe quatsch ist, weil ich wegen meinen miteinander
korrelierenden erklärenden Variablen sowieso ein glmm machen muss oder ob ich da etwas sinnvolles gemacht habe.

Vielen Dank,
LG
Bianca
Fledermaus
Grünschnabel
Grünschnabel
 
Beiträge: 9
Registriert: Do 15. Mär 2018, 15:44
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Welchen Test wähle ich

Beitragvon Fledermaus » Fr 16. Mär 2018, 11:15

Hier die Korrelationen von meinen erklärenden Variablen. In der Literatur findet man unterschiedliche Angaben wann man es ignorieren und wann man etwas machen muss. Wenn ich z.B. Temp_Bunker raus schmeiße, wird mein R-squared Wert kleiner (also schlechter).
> vif(LM1)
Temp_Bunker Temp_outside Temp_A Temp_Bunker:Temp_outside
9.169248 5.036107 8.960270 6.672640

> round(cov2cor(vcov(LM1)), 3) # Correlations of parameter estimates
(Intercept) Temp_Bunker Temp_outside Temp_A Temp_Bunker:Temp_outside
(Intercept) 1.000 -0.912 -0.257 0.675 0.303
Temp_Bunker -0.912 1.000 0.200 -0.897 -0.219
Temp_outside -0.257 0.200 1.000 -0.028 -0.876
Temp_A 0.675 -0.897 -0.028 1.000 -0.052
Temp_Bunker:Temp_outside 0.303 -0.219 -0.876 -0.052 1.000
Fledermaus
Grünschnabel
Grünschnabel
 
Beiträge: 9
Registriert: Do 15. Mär 2018, 15:44
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Allgemeine Fragen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 Gäste