teste t em dados altamente assimétricos


18

Eu tenho um conjunto de dados com dezenas de milhares de observações de dados de custos médicos. Esses dados são altamente inclinados para a direita e possuem muitos zeros. Parece assim para dois grupos de pessoas (neste caso, duas faixas etárias com> 3000 obs cada):

 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 

Se eu executar o teste t de Welch nesses dados, obtive um resultado de volta:

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 

Eu sei que não é correto usar um teste t nesses dados, pois é muito normal. No entanto, se eu usar um teste de permutação para a diferença das médias, obtenho quase o mesmo valor p o tempo todo (e ele se aproxima com mais iterações).

Usando o pacote perm em R e permTS com Monte Carlo exato

    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 

Por que a estatística do teste de permutação está tão próxima do valor t.test? Se eu fizer registros dos dados, recebo um valor p de teste t de 0,28 e o mesmo no teste de permutação. Eu pensei que os valores do teste t seriam mais lixo do que o que estou recebendo aqui. Isso é verdade para muitos outros conjuntos de dados que tenho assim e estou me perguntando por que o teste t parece estar funcionando quando não deveria.

Minha preocupação aqui é que os custos individuais não são iid. Existem muitos subgrupos de pessoas com distribuições de custos muito diferentes (mulheres versus homens, condições crônicas etc.) que parecem anular o requisito iid para o teorema do limite central, ou não devo me preocupar sobre isso?


Como acontece que o valor mínimo e a mediana dos seus dados são zero?
Alecos Papadopoulos

Mais da metade dos valores é zero, indicando que metade das pessoas não teve assistência médica naquele ano.
Chris

E por que você acha que o teste de permutação deve ser diferente? (se ambos os grupos tiverem uma distribuição igualmente normal)
FairMiles

Lembre-se de que iid são duas suposições separadas. O primeiro é 'independente'. O segundo é 'distribuído identicamente'. Você parece sugerir que as observações não são 'distribuídas de forma idêntica'. Isso não deve afetar as respostas fornecidas até o momento, pois ainda podemos assumir que todas as observações são de uma grande mistura de distribuições. Mas se você acha que as observações não são independentes, essa é uma questão muito diferente e potencialmente mais difícil.
Zkurtz

Respostas:


29

Nem o teste t nem o teste de permutação têm muito poder para identificar uma diferença de médias entre duas dessas distribuições extraordinariamente distorcidas. Assim, ambos fornecem valores p de anodino, indicando nenhuma significância. A questão não é que eles parecem concordar; é que, por terem dificuldade em detectar qualquer diferença, simplesmente não podem discordar!


Para alguma intuição, considere o que aconteceria se uma alteração em um único valor ocorresse em um conjunto de dados. Suponha que o máximo de 721.700 não tenha ocorrido no segundo conjunto de dados, por exemplo. A média teria caído em aproximadamente 721700/3000, ou seja, cerca de 240. No entanto, a diferença entre as médias é de apenas 4964-4536 = 438, nem duas vezes maior. Isso sugere (embora não prove) que qualquer comparação dos meios não acharia a diferença significativa.

Podemos verificar, porém, que o teste t não é aplicável. Vamos gerar alguns conjuntos de dados com as mesmas características estatísticas que estes. Para isso, criei misturas nas quais

  • 5/8
  • Os dados restantes têm uma distribuição lognormal.
  • Os parâmetros dessa distribuição estão dispostos para reproduzir os meios observados e o terceiro quartil.

Acontece nessas simulações que os valores máximos também não estão longe dos máximos relatados.

Vamos replicar o primeiro conjunto de dados 10.000 vezes e rastrear sua média. (Os resultados serão quase os mesmos quando o fizermos para o segundo conjunto de dados.) O histograma dessas médias estima a distribuição amostral da média. O teste t é válido quando essa distribuição é aproximadamente normal; a extensão em que ela se desvia da Normalidade indica até que ponto a distribuição do aluno t irá errar. Portanto, para referência, também desenhei (em vermelho) o PDF da distribuição Normal adequado a esses resultados.

Histograma 1

Não podemos ver muitos detalhes porque existem alguns grandes outliers. (Essa é uma manifestação dessa sensibilidade dos meios que mencionei.) Existem 123 deles - 1,23% - acima de 10.000. Vamos nos concentrar no restante para que possamos ver os detalhes e porque esses valores discrepantes podem resultar da normalidade de log assumida da distribuição, o que não é necessariamente o caso do conjunto de dados original.

Histograma 2

(3000/428)2=50.


Aqui está o Rcódigo que produziu esses números.

#
# 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
Para um exemplo de um conjunto de dados altamente inclinado, no qual o teste t é aplicável (devido à grande quantidade de dados), consulte stats.stackexchange.com/questions/110418/… . Esses dois casos juntos mostram que não há resposta detalhada para a pergunta: você deve considerar a distribuição dos dados e a quantidade de dados ao decidir se o teste t será significativo e preciso.
whuber

3
Favori essa questão na esperança de encontrá-la novamente quando confrontada com pessoas que pensam que n = 30 ou n = 300 é suficiente para seguir em frente e assumir que os meios de amostra são normalmente distribuídos (e assim por diante). Tenho bons exemplos simulados, mas é bom mostrar que também é um problema com dados reais.
Glen_b -Reinstate Monica

1
+1, mas me pergunto qual seria sua recomendação prática em uma situação como essa. Deve-se tentar usar um teste de permutação baseado em alguma outra estatística em vez da média (talvez algum quantil alto)? Deve-se tentar aplicar alguma transformação antes de executar testes padrão por meios? Ou deveria desistir de qualquer esperança de detectar uma diferença significativa entre duas amostras?
Ameba diz Reinstate Monica

@amoeba Se a preocupação é testar diferenças de meios, o teste de permutação não ajuda em nada: você não encontrará uma diferença significativa aqui. Se você testar alguma outra estatística, não estará testando a média (o que é particularmente relevante para dados de custo!). Portanto, se isso pode ser recomendado depende dos objetivos.
whuber

4

Quando n é grande (como 300, muito menos que 3000), o teste t é essencialmente o mesmo que o teste z. Ou seja, o teste t se torna nada mais do que uma aplicação do teorema do limite central, que diz que o MEAN para cada um dos seus dois grupos é quase exatamente normalmente distribuído (mesmo que as observações subjacentes aos dois meios estejam muito longe de serem normalmente normais). distribuído!). Esse também é o motivo pelo qual sua tabela t típica não se preocupa em mostrar valores para n maiores que 1000 (por exemplo, esta tabela t) . Portanto, não estou surpreso ao ver que você está obtendo resultados tão bem-comportados.

Edit: Eu pareço ter subestimado a extremidade do skewness e sua importância. Embora meu argumento acima tenha mérito em circunstâncias menos extremas, a resposta da whuber à pergunta é muito melhor em geral.


2
Quando a distorção é extrema - como atestam as estatísticas citadas -, não temos garantia de que a distribuição amostral da média de 300 ou até 3000 amostras esteja em qualquer lugar próximo do normal. É por isso que o OP está surpreso. Você contraria isso dizendo que não está surpreso, mas isso parece se resumir à intuição de uma pessoa em comparação à de outra. Que argumento objetivo você pode fornecer para esses dados, demonstrando que 300 (ou 3000) é uma amostra grande o suficiente para que o teste t funcione bem?
whuber

Ótimo ponto. Admito que, se os dados estiverem suficientemente distorcidos, meu argumento falha. Portanto, a pergunta para mim é exatamente como os dados estão distorcidos e existe um resultado formal por aí que relaciona a distorção ao tamanho de amostra necessário.
Zkurtz 13/09/2013

1
Eu postei uma resposta para essa pergunta. Sabemos (pelo menos aproximadamente) como os dados estão distorcidos com base nas estatísticas resumidas da pergunta. Essa inclinação é tão forte que nem 300, nem 3000, nem mesmo 30.000 observações por grupo tornarão a distribuição amostral da média "quase exatamente normal". Você provavelmente precisará de cerca de 300.000 ou mais antes que essa reivindicação se torne plausível. Portanto, devemos procurar uma explicação diferente para o porquê dos dois testes concordarem. O meu é que nenhum deles é "bem-comportado", e não que ambos sejam bem-comportados.
whuber

0

Eu sei que esta resposta está muito atrasada. No entanto, estou fazendo doutorado em pesquisa em serviços de saúde, por isso trabalho muito com dados de saúde, incluindo dados de custo.

Não sei quais dados o OP tinha. Se fossem dados de seção transversal, as chances são de que fosse justificadamente o DII. Independência significa que cada unidade, portanto cada pessoa, é independente. Isso é provavelmente justificável. Quanto à distribuição idêntica, os dados podem ser modelados como todos provenientes, digamos, de uma distribuição gama em um modelo linear generalizado com um link de log. É o que as pessoas costumam fazer na prática. Ou, se você quiser ser chique, provavelmente existem modelos de obstáculos (populares em econometria) que lidam com o excesso de zero. Que, a propósito, são bastante comuns nos gastos com saúde. O OP está tecnicamente correto que os dados não são necessariamente distribuídos de forma idêntica, por exemplo, a média e a variação mudarão com a idade, mas é uma suposição viável em vários modelos de regressão.

Se cada pessoa estivesse no conjunto de dados por mais de um ano, os dados não seriam IID. Existem modelos mais complexos disponíveis para isso. Uma delas relativamente simples seria provavelmente equações de estimativa generalizada, distribuição gama e link de log novamente, assumindo uma correlação de trabalho permutável. Ou, se esses dados são de dados de pesquisa disponíveis ao público, NÃO existe uma probabilidade igual de ser amostrada - muitas dessas pesquisas entrevistam várias pessoas em cada domicílio, e também estratificam a população e superamplificam alguns grupos (por exemplo, minorias raciais). O usuário teria que corrigir isso.

Eu não uso testes t, especialmente não para dados observacionais. Existem muitos fatores de confusão, então você deseja ajustá-los em um modelo linear (generalizado). Portanto, não posso comentar sobre questões relacionadas especificamente aos testes t.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.