test t sur des données très biaisées

18

J'ai un ensemble de données avec des dizaines de milliers d'observations de données sur les coûts médicaux. Ces données sont fortement asymétriques vers la droite et comportent de nombreux zéros. Il ressemble à ceci pour deux ensembles de personnes (dans ce cas, deux tranches d'âge avec> 3000 obs chacune):

 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 

Si j'effectue le test t de Welch sur ces données, j'obtiens un résultat:

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 

Je sais que ce n'est pas correct d'utiliser un test t sur ces données car c'est tellement anormal. Cependant, si j'utilise un test de permutation pour la différence des moyennes, j'obtiens presque toujours la même valeur de p (et cela se rapproche avec plus d'itérations).

Utilisation du package de perm dans R et permTS avec Monte Carlo exact

    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 

Pourquoi la statistique du test de permutation est-elle si proche de la valeur t.test? Si je prends des journaux des données, j'obtiens une valeur p de t.test de 0,28 et la même chose du test de permutation. Je pensais que les valeurs du test t seraient plus détraquées que ce que j'obtiens ici. Cela est vrai pour de nombreux autres ensembles de données que j'ai comme ça et je me demande pourquoi le test t semble fonctionner alors qu'il ne devrait pas.

Ma préoccupation ici est que les coûts individuels ne sont pas iid Il existe de nombreux sous-groupes de personnes avec des distributions de coûts très différentes (femmes vs hommes, maladies chroniques, etc.) qui semblent annihiler l'exigence iid pour le théorème de la limite centrale, ou devrais-je ne pas m'inquiéter à propos de ça?

Chris
la source
Comment se fait-il que la valeur minimale et la médiane de vos données soient nulles?
Alecos Papadopoulos
Plus de la moitié des valeurs sont nulles, ce qui indique que la moitié des personnes n'ont reçu aucun soin médical cette année-là.
Chris
Et pourquoi pensez-vous que le test de permutation devrait être différent? (si les deux groupes ont une distribution similaire non normale)
FairMiles
Gardez à l'esprit que iid est deux hypothèses distinctes. Le premier est «indépendant». Le second est «distribué de manière identique». Vous semblez suggérer que les observations ne sont pas «distribuées de manière identique». Cela ne devrait pas affecter les réponses fournies jusqu'à présent, car nous pouvons encore supposer que toutes les observations proviennent d'un seul grand mélange de distributions. Mais si vous pensez que les observations ne sont pas indépendantes, c'est une question très différente et potentiellement plus difficile.
zkurtz

Réponses:

29

Ni le test t ni le test de permutation n'ont beaucoup de pouvoir pour identifier une différence de moyenne entre deux de ces distributions extraordinairement asymétriques. Ainsi, ils donnent tous les deux des valeurs p anodines indiquant aucune signification du tout. Le problème n'est pas qu'ils semblent être d'accord; c'est parce qu'ils ont du mal à détecter la moindre différence, ils ne peuvent tout simplement pas être en désaccord!


Pour une certaine intuition, considérez ce qui se passerait si un changement dans une seule valeur se produisait dans un ensemble de données. Supposons que le maximum de 721 700 ne se soit pas produit dans le deuxième ensemble de données, par exemple. La moyenne aurait chuté d'environ 721700/3000, soit environ 240. Pourtant, la différence dans les moyennes n'est que de 4964 à 4536 = 438, pas même deux fois plus. Cela suggère (bien que cela ne prouve pas) que toute comparaison des moyennes ne trouverait pas la différence significative.

Nous pouvons cependant vérifier que le test t n'est pas applicable. Générons quelques jeux de données avec les mêmes caractéristiques statistiques que ceux-ci. Pour ce faire, j'ai créé des mélanges dans lesquels

  • 5/8
  • Les données restantes ont une distribution log-normale.
  • Les paramètres de cette distribution sont arrangés pour reproduire les moyennes observées et les troisièmes quartiles.

Il s'avère dans ces simulations que les valeurs maximales ne sont pas loin non plus des maxima rapportés.

Répliquons 10 000 fois le premier ensemble de données et suivons sa moyenne. (Les résultats seront presque les mêmes lorsque nous le ferons pour le deuxième ensemble de données.) L'histogramme de ces moyennes estime la distribution d'échantillonnage de la moyenne. Le test t est valide lorsque cette distribution est approximativement normale; la mesure dans laquelle elle s'écarte de la normalité indique dans quelle mesure la distribution de Student t se trompera. Donc, pour référence, j'ai également dessiné (en rouge) le PDF de la distribution normale adapté à ces résultats.

Histogramme 1

Nous ne pouvons pas voir beaucoup de détails car il y a de grandes valeurs aberrantes. (C'est une manifestation de cette sensibilité des moyens que j'ai mentionnés.) Il y en a 123 - 1,23% - au-dessus de 10 000. Concentrons-nous sur le reste afin que nous puissions voir le détail et parce que ces valeurs aberrantes peuvent résulter de la lognormalité supposée de la distribution, ce qui n'est pas nécessairement le cas pour l'ensemble de données d'origine.

Histogramme 2

(3000/428)2=50


Voici le Rcode qui a produit ces chiffres.

#
# 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
whuber
la source
1
Pour un exemple d'un ensemble de données très asymétrique où le test t est néanmoins applicable (en raison de la grande quantité de données), veuillez consulter stats.stackexchange.com/questions/110418/… . Ensemble, ces deux cas montrent qu'il n'y a pas de réponse simplifiée à la question: vous devez tenir compte à la fois de la distribution des données et de la quantité de données lorsque vous décidez si le test t sera significatif et précis.
whuber
3
J'ai favorisé cette question dans l'espoir de pouvoir la retrouver face à des gens qui pensent que n = 30 ou n = 300 est suffisant pour aller de l'avant et supposer que les moyennes des échantillons sont normalement distribuées (et ainsi de suite). J'ai de bons exemples simulés, mais il est agréable de montrer que c'est également un problème avec les données réelles.
Glen_b -Reinstate Monica
1
+1, mais je me demande quelle serait votre recommandation pratique dans une telle situation. Doit-on essayer d'utiliser un test de permutation basé sur une autre statistique au lieu de la moyenne (peut-être un quantile élevé)? Faut-il essayer d'appliquer une transformation avant d'exécuter des tests standard sur les moyens? Ou faut-il plutôt abandonner tout espoir de détecter une différence significative entre deux échantillons?
amibe dit Réintégrer Monica
@amoeba Si le souci est de tester les différences de moyennes, alors le test de permutation ne sera d'aucune utilité: vous n'allez pas trouver de différence significative ici. Si vous testez une autre statistique, vous ne testez pas la moyenne (ce qui est particulièrement pertinent pour les données sur les coûts!), Donc si cela peut être recommandé dépend des objectifs.
whuber
4

Lorsque n est grand (comme 300, voire bien moins que 3000), le test t est essentiellement le même que le test z. Autrement dit, le test t devient rien de plus qu'une application du théorème de la limite centrale, qui dit que la moyenne pour chacun de vos deux groupes est presque exactement normalement distribuée (même si les observations sous-jacentes aux deux moyennes sont très loin d'être normalement distribué!). C'est aussi la raison pour laquelle votre table t typique ne prend pas la peine d'afficher des valeurs pour n supérieures à 1000 (par exemple, cette table t) . Ainsi, je ne suis pas surpris de voir que vous obtenez des résultats aussi sages.

Edit: Il me semble avoir sous-estimé l'extrémité de l'asymétrie et son importance. Bien que mon point de vue ci-dessus soit valable dans des circonstances moins extrêmes, la réponse de Whuber à la question est globalement bien meilleure.

zkurtz
la source
2
Lorsque l'asymétrie est extrême - comme l'attestent les statistiques citées - nous n'avons aucune assurance que la distribution d'échantillonnage de la moyenne de 300 ou même 3000 échantillons sera n'importe où près de la normale. C'est pourquoi le PO est surpris. Vous répondez à cela en disant que vous n'êtes pas surpris, mais cela semble se résumer à l'intuition d'une personne par rapport à celle d'une autre. Quel argument objectif pouvez-vous fournir pour ces données démontrant que 300 (ou 3000) est un échantillon suffisamment grand pour que le test t fonctionne correctement?
whuber
Bon point. J'avoue, si les données sont suffisamment biaisées, mon argument échoue. Donc, la question pour moi est de savoir exactement à quel point les données sont asymétriques, et y a-t-il un résultat officiel qui relie l'asymétrie à la taille d'échantillon requise.
zkurtz
1
J'ai posté une réponse à cette question. Nous savons (au moins approximativement) à quel point les données sont biaisées sur la base des statistiques sommaires de la question. Cette asymétrie est si forte que ni 300, ni 3 000, ni même 30 000 observations par groupe ne rendront la distribution d'échantillonnage de la moyenne «presque exactement normale». Vous avez probablement besoin d'environ 300 000 environ avant que cette affirmation ne devienne plausible. Nous devons donc chercher une explication différente pour expliquer pourquoi les deux tests s'accordent. Le mien est que ni l'un ni l'autre n'est "bien élevé" plutôt que les deux sont bien élevés.
whuber
0

Je sais que cette réponse est bien en retard. Cependant, je reçois un doctorat en recherche sur les services de santé, donc je travaille beaucoup avec les données sur les soins de santé, y compris les données sur les coûts.

Je ne sais pas quelles données le PO possédait. S'il s'agissait de données transversales, il est probable qu'il s'agissait à juste titre d'IID. L'indépendance signifie que chaque unité, donc chaque personne, est indépendante. C'est très probablement justifiable. En ce qui concerne la distribution identique, les données peuvent être modélisées comme provenant toutes, disons, d'une distribution gamma dans un modèle linéaire généralisé avec un lien logarithmique. C'est ce que les gens font couramment dans la pratique. Ou si vous voulez devenir fantaisiste, il existe probablement des modèles d'obstacles (populaires en économétrie) qui traitent les excès de 0. Qui, soit dit en passant, sont assez courants dans les dépenses de santé. L'OP est techniquement correct que les données ne sont pas nécessairement distribuées de manière identique, par exemple la moyenne et la variance changeront avec l'âge, mais c'est une hypothèse réalisable dans les modèles de régression multiple.

Si chaque personne faisait partie de l'ensemble de données depuis plus d'un an, les données ne seraient pas des IDI. Il existe des modèles plus complexes disponibles pour cela. Une équation relativement simple serait probablement les équations d'estimation généralisées, la distribution gamma et la liaison logarithmique, en supposant une corrélation de travail échangeable. Ou, si ces données proviennent de données d'enquêtes accessibles au public, il n'y a PAS une probabilité égale d'être échantillonnées - bon nombre de ces enquêtes interrogent plusieurs personnes dans chaque ménage, et elles stratifient également la population et suréchantillonnent certains groupes (par exemple, les minorités raciales). L'utilisateur devrait corriger cela.

Je n'utilise pas de tests t, surtout pas pour les données d'observation. Il y a trop de facteurs de confusion, vous devriez donc les ajuster dans un modèle linéaire (généralisé). Je ne peux donc pas commenter les questions liées spécifiquement aux tests t.

Weiwen Ng
la source