T-Test auf stark verzerrten Daten


18

Ich habe einen Datensatz mit zehntausenden Beobachtungen von medizinischen Kostendaten. Diese Daten sind stark nach rechts verschoben und enthalten viele Nullen. Es sieht für zwei Personengruppen so aus (in diesem Fall zwei Altersgruppen mit jeweils> 3000 Beobachtungen):

 Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
 0.0      0.0      0.0   4536.0    302.6 395300.0 
Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
 0.0      0.0      0.0   4964.0    423.8 721700.0 

Wenn ich Welchs T-Test mit diesen Daten durchführe, erhalte ich ein Ergebnis zurück:

Welch Two Sample t-test

data:  x and y
t = -0.4777, df = 3366.488, p-value = 0.6329
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -2185.896  1329.358
sample estimates:
mean of x mean of y 
 4536.186  4964.455 

Ich weiß, dass es nicht richtig ist, einen T-Test für diese Daten zu verwenden, da es so schlecht nicht normal ist. Wenn ich jedoch einen Permutationstest für die Differenz der Mittelwerte verwende, erhalte ich fast immer den gleichen p-Wert (und er kommt mit mehr Iterationen näher).

Verwendung des perm-Pakets in R und permTS mit genauem Monte Carlo

    Exact Permutation Test Estimated by Monte Carlo

data:  x and y
p-value = 0.6188
alternative hypothesis: true mean x - mean y is not equal to 0
sample estimates:
mean x - mean y 
      -428.2691 

p-value estimated from 500 Monte Carlo replications
99 percent confidence interval on p-value:
 0.5117552 0.7277040 

Warum kommt die Permutationstest-Statistik dem t.test-Wert so nahe? Wenn ich die Daten protokolliere, erhalte ich einen t.test p-Wert von 0,28 und den gleichen vom Permutationstest. Ich dachte, die T-Test-Werte wären mehr Müll als das, was ich hier bekomme. Dies trifft auf viele andere Datensätze zu, die mir gefallen, und ich frage mich, warum der T-Test anscheinend funktioniert, wenn er nicht funktionieren sollte.

Ich mache mir hier Sorgen, dass die individuellen Kosten nicht gleich sind. Es gibt viele Untergruppen von Menschen mit sehr unterschiedlichen Kostenverteilungen (Frauen gegen Männer, chronische Erkrankungen usw.), die die iid-Anforderung für einen zentralen Grenzwertsatz in Frage zu stellen scheinen, oder sollte ich mir keine Sorgen machen über das?


Wie kommt es, dass sowohl der Minimalwert als auch der Median Ihrer Daten Null sind?
Alecos Papadopoulos

Mehr als die Hälfte der Werte ist Null, was darauf hinweist, dass die Hälfte der Menschen in diesem Jahr keine medizinische Versorgung hatte.
Chris

Und warum sollte der Permutationstest Ihrer Meinung nach anders sein? (wenn beide Gruppen eine ähnlich
ungewöhnliche

Beachten Sie, dass es sich bei iid um zwei separate Annahmen handelt. Der erste ist "unabhängig". Die zweite ist "identisch verteilt". Sie scheinen zu vermuten, dass die Beobachtungen nicht „identisch verteilt“ sind. Dies sollte die bisher gegebenen Antworten nicht beeinflussen, da wir immer noch davon ausgehen können, dass alle Beobachtungen aus einer großen Mischung von Verteilungen stammen. Wenn Sie jedoch der Meinung sind, dass die Beobachtungen nicht unabhängig voneinander sind, ist dies ein ganz anderes und möglicherweise schwierigeres Thema.
Zkurtz

Antworten:


29

Weder der t-Test noch der Permutationstest können einen Mittelwertunterschied zwischen zwei derart ungewöhnlich verzerrten Verteilungen feststellen. Somit geben beide anodyne p-Werte an, die überhaupt keine Bedeutung anzeigen. Es geht nicht darum, dass sie sich einig zu sein scheinen; es ist so, dass sie einfach nicht widersprechen können, weil es ihnen schwerfällt, überhaupt einen Unterschied festzustellen!


Überlegen Sie sich für eine gewisse Intuition, was passieren würde, wenn sich ein einzelner Wert in einem Datensatz ändern würde . Nehmen wir zum Beispiel an, dass das Maximum von 721.700 im zweiten Datensatz nicht vorgekommen ist. Der Mittelwert wäre um ungefähr 721700/3000 gefallen, was ungefähr 240 entspricht. Der Unterschied im Mittelwert beträgt jedoch nur 4964-4536 = 438, nicht einmal doppelt so groß. Dies legt nahe (obwohl es nicht beweist), dass ein Vergleich der Mittel den Unterschied nicht signifikant finden würde.

Wir können jedoch bestätigen, dass der T-Test nicht anwendbar ist. Generieren wir einige Datensätze mit denselben statistischen Merkmalen wie diesen. Zu diesem Zweck habe ich Mischungen erstellt, in denen

  • 5/8 der Daten sind in jedem Fall Nullen.
  • Die restlichen Daten haben eine logarithmische Normalverteilung.
  • Die Parameter dieser Verteilung sind so angeordnet, dass sie die beobachteten Mittelwerte und dritten Quartile wiedergeben.

In diesen Simulationen hat sich herausgestellt, dass die Maximalwerte auch nicht weit von den angegebenen Maxima entfernt sind.

Replizieren wir den ersten Datensatz 10.000 Mal und verfolgen den Mittelwert. (Die Ergebnisse werden fast gleich sein, wenn wir dies für den zweiten Datensatz tun.) Das Histogramm dieser Mittelwerte schätzt die Stichprobenverteilung des Mittelwerts. Der t-Test ist gültig, wenn diese Verteilung ungefähr normal ist. Das Ausmaß, in dem es von der Normalität abweicht, gibt an, inwieweit die Verteilung der Schüler fehlerhaft ist. Als Referenz habe ich auch die PDF-Datei der Normalverteilung (in Rot) gezeichnet, die zu diesen Ergebnissen passt.

Histogramm 1

Wir können nicht viele Details erkennen, da es einige erstaunliche große Ausreißer gibt. (Das ist eine Manifestation dieser Sensibilität der von mir erwähnten Mittel.) Es gibt 123 von ihnen - 1,23% - über 10.000. Konzentrieren wir uns auf den Rest, damit wir die Details sehen können und weil diese Ausreißer möglicherweise aus der angenommenen Lognormalität der Verteilung resultieren, was für den ursprünglichen Datensatz nicht unbedingt der Fall ist.

Histogramm 2

Das ist immer noch stark verzerrt und weicht sichtbar von der normalen Näherung ab, was eine ausreichende Erklärung für die in der Frage beschriebenen Phänomene liefert. Es gibt uns auch ein Gefühl dafür, wie groß ein Mittelwertunterschied bei einem Test sein könnte: Er müsste etwa 3000 oder mehr betragen, um signifikant zu erscheinen. Umgekehrt könnte die tatsächliche Differenz von 428 erkannt werden, vorausgesetzt, Sie hatten ungefähr mal so viele Daten (in jeder Gruppe). (3000/428)2=50 Angesichts der 50-fachen Datenmenge schätze ich, dass die Fähigkeit, diesen Unterschied bei einem Signifikanzniveau von 5% zu erkennen, bei 0,4 liegt (was nicht gut ist, aber Sie hätten zumindest eine Chance).


Hier ist der RCode, der diese Zahlen hervorgebracht hat.

#
# Generate positive random values with a median of 0, given Q3,
# and given mean. Make a proportion 1-e of them true zeros.
#
rskew <- function(n, x.mean, x.q3, e=3/8) {
  beta <- qnorm(1 - (1/4)/e)
  gamma <- 2*(log(x.q3) - log(x.mean/e))
  sigma <- sqrt(beta^2 - gamma) + beta
  mu <- log(x.mean/e) - sigma^2/2
  m <- floor(n * e)
  c(exp(rnorm(m, mu, sigma)), rep(0, n-m))
}
#
# See how closely the summary statistics are reproduced.
# (The quartiles will be close; the maxima not too far off;
# the means may differ a lot, though.)
#
set.seed(23)
x <- rskew(3300, 4536, 302.6)
y <- rskew(3400, 4964, 423.8)
summary(x)
summary(y)
#
# Estimate the sampling distribution of the mean.
#
set.seed(17)
sim.x <- replicate(10^4, mean(rskew(3367, 4536, 302.6)))
hist(sim.x, freq=FALSE, ylim=c(0, dnorm(0, sd=sd(sim.x))))
curve(dnorm(x, mean(sim.x), sd(sim.x)), add=TRUE, col="Red")
hist(sim.x[sim.x < 10000], xlab="x", freq=FALSE)
curve(dnorm(x, mean(sim.x), sd(sim.x)), add=TRUE, col="Red")
#
# Can a t-test detect a difference with more data?
#
set.seed(23)
n.factor <- 50
z <- replicate(10^3, {
  x <- rskew(3300*n.factor, 4536, 302.6)
  y <- rskew(3400*n.factor, 4964, 423.8)
  t.test(x,y)$p.value
})
hist(z)
mean(z < .05) # The estimated power at a 5% significance level

1
Ein Beispiel für einen stark verzerrten Datensatz, für den der T-Test dennoch gilt (aufgrund der großen Datenmenge), finden Sie unter stats.stackexchange.com/questions/110418/… . Diese beiden Fälle zusammen zeigen, dass es keine klare Antwort auf die Frage gibt: Sie müssen sowohl die Verteilung der Daten als auch die Datenmenge berücksichtigen, wenn Sie entscheiden, ob der t-Test aussagekräftig und genau sein wird.
Whuber

3
Ich habe diese Frage in der Hoffnung favorisiert, sie wiederfinden zu können, wenn Leute denken, dass n = 30 oder n = 300 ausreichen, um einfach davon auszugehen, dass die Stichprobenmittel normal verteilt sind (und so weiter). Ich habe gute simulierte Beispiele, aber es ist schön zu zeigen, dass dies auch ein Problem mit realen Daten ist.
Glen_b

1
+1, aber ich frage mich, was Ihre praktische Empfehlung in einer solchen Situation wäre. Sollte man versuchen, einen Permutationstest zu verwenden, der auf einer anderen Statistik anstelle des Mittelwerts basiert (vielleicht auf einem hohen Quantil)? Sollte man versuchen, eine Transformation anzuwenden, bevor Standardtests für die Mittel ausgeführt werden? Oder sollte man lieber die Hoffnung aufgeben, einen signifikanten Unterschied zwischen zwei Proben festzustellen?
Amöbe sagt Reinstate Monica

@amoeba Wenn es darum geht, Mittelwertunterschiede zu testen, hilft der Permutationstest nichts: Sie werden hier keinen signifikanten Unterschied feststellen. Wenn Sie eine andere Statistik testen, testen Sie nicht den Mittelwert (der für Kostendaten besonders relevant ist!). Ob dies also empfohlen werden kann, hängt von den Zielen ab.
whuber

4

Wenn n groß ist (wie 300, sogar weit unter 3000), ist der t-Test im Wesentlichen der gleiche wie der z-Test. Das heißt, der t-Test wird nichts anderes als eine Anwendung des zentralen Grenzwertsatzes, der besagt, dass die MEAN für jede Ihrer beiden Gruppen fast genau normalverteilt ist (auch wenn die Beobachtungen, die den beiden Mitteln zugrunde liegen, weit davon entfernt sind, normal zu sein verteilt!). Dies ist auch der Grund, warum Ihre typische T-Tabelle keine Werte für n größer als 1000 anzeigt (zum Beispiel diese T-Tabelle) . Daher wundere ich mich nicht, dass Sie so gute Ergebnisse erzielen.

Edit: Ich scheine das Ende der Schiefe und ihre Bedeutung unterschätzt zu haben. Während mein Punkt oben unter weniger extremen Umständen verdient ist , ist Whubers Antwort auf die Frage insgesamt viel besser.


2
Wenn die Schiefe extrem ist - wie die zitierten Statistiken belegen -, können wir nicht garantieren, dass die Stichprobenverteilung des Mittelwerts von 300 oder sogar 3000 Stichproben annähernd normal sein wird. Deshalb ist das OP überrascht. Sie begegnen dem, indem Sie sagen, dass Sie nicht überrascht sind, aber dies scheint auf die Intuition einer Person im Vergleich zu der einer anderen Person zurückzuführen zu sein. Welches objektive Argument können Sie für diese Daten liefern, um zu belegen, dass 300 (oder 3000) eine ausreichend große Stichprobe ist, damit der T-Test gut funktioniert?
Whuber

Großartiger Punkt. Ich gebe zu, wenn die Daten ausreichend verzerrt sind, schlägt mein Argument fehl. Die Frage für mich ist also, wie genau die Daten verzerrt sind und gibt es ein formales Ergebnis, das die Verzerrung mit der erforderlichen Stichprobengröße in Beziehung setzt.
Zkurtz

1
Ich habe eine Antwort auf diese Frage gepostet. Wir wissen (zumindest annähernd), wie stark die Daten aufgrund der in der Frage enthaltenen Zusammenfassungsstatistik verzerrt sind. Dieser Versatz ist so stark, dass weder 300 noch 3000 oder sogar 30.000 Beobachtungen pro Gruppe die Stichprobenverteilung des Mittelwerts "fast genau normal" machen. Sie brauchen wahrscheinlich ungefähr 300.000, bevor diese Behauptung plausibel wird. Deshalb müssen wir eine andere Erklärung suchen, warum die beiden Tests übereinstimmen. Meins ist, dass weder "gut benommen" ist, als dass beide gut benommen sind.
Whuber

0

Ich weiß, dass diese Antwort viel zu spät ist. Ich habe jedoch einen Doktortitel in Gesundheitsforschung, daher arbeite ich viel mit Gesundheitsdaten, einschließlich Kostendaten.

Ich weiß nicht, welche Daten das OP hatte. Wenn es sich um Querschnittsdaten handelte, war dies wahrscheinlich mit Recht eine IID. Unabhängigkeit bedeutet, dass jede Einheit, also jede Person, unabhängig ist. Das ist sehr wahrscheinlich zu rechtfertigen. In Bezug auf eine identische Verteilung können die Daten als alle Daten modelliert werden, die beispielsweise aus einer Gammaverteilung in einem verallgemeinerten linearen Modell mit einer Protokollverknüpfung stammen. Dies ist, was Menschen in der Praxis häufig tun. Oder wenn Sie Lust auf Phantasie haben, gibt es wahrscheinlich Hürdenmodelle (beliebt in der Ökonometrie), die sich mit den überschüssigen Nullen befassen. Was übrigens bei den Gesundheitsausgaben ziemlich häufig vorkommt. Das OP ist technisch korrekt, da die Daten nicht unbedingt identisch verteilt sind, dh der Mittelwert und die Varianz ändern sich mit dem Alter, aber es ist eine praktikable Annahme in mehreren Regressionsmodellen.

Wenn jede Person länger als ein Jahr im Datensatz wäre, wären die Daten nicht IID. Dafür stehen komplexere Modelle zur Verfügung. Eine relativ einfache davon wäre wahrscheinlich die verallgemeinerte Schätzung von Gleichungen, Gammaverteilung und logarithmischer Verknüpfung unter der Annahme einer austauschbaren Arbeitskorrelation. Wenn diese Daten aus öffentlich zugänglichen Umfragedaten stammen, ist die Wahrscheinlichkeit einer Stichprobe nicht gleich hoch. Bei vielen dieser Umfragen werden mehrere Personen in jedem Haushalt befragt. Außerdem wird die Bevölkerung geschichtet und einige Gruppen (z. B. ethnische Minderheiten) werden überstichprobenartig erfasst. Der Benutzer müsste das korrigieren.

Ich benutze keine T-Tests, besonders nicht für Beobachtungsdaten. Es gibt zu viele Störfaktoren, daher sollten Sie sie in einem (verallgemeinerten) linearen Modell anpassen. Daher kann ich die Fragen, die sich speziell auf T-Tests beziehen, nicht kommentieren.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.