치우친 데이터에 대한 t- 검정


18

의료 비용 데이터를 수만 번 관찰 한 데이터 세트가 있습니다. 이 데이터는 오른쪽으로 치우 치며 0이 많이 있습니다. 두 세트의 사람들에 대해 다음과 같이 보입니다 (이 경우 각각> 3000 obs를 갖는 두 개의 나이 밴드).

 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 

이 데이터에 대해 Welch의 t-test를 수행하면 결과가 다시 나타납니다.

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 

비정규 적이 지 않기 때문에이 데이터에 t 테스트를 사용하는 것이 옳지 않다는 것을 알고 있습니다. 그러나 평균의 차이에 대해 순열 테스트를 사용하면 항상 거의 동일한 p- 값을 얻습니다 (더 많은 반복으로 더 가까워집니다).

정확한 Monte Carlo와 함께 R 및 permTS에서 perm 패키지 사용

    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 

순열 검정 통계량이 t.test 값에 너무 가까운 이유는 무엇입니까? 데이터 로그를 가져 오면 순열 테스트에서 t.test p- 값 0.28을 얻습니다. 나는 t-test 값이 내가 여기 오는 것보다 더 쓰레기라고 생각했습니다. 이것은 내가 좋아하는 다른 많은 데이터 세트에 해당하며 t- 테스트가 작동하지 않아야하는 이유가 궁금합니다.

여기에 내 관심사는 개별 비용이 iid가 아니라는 것입니다. 중앙 한계 정리에 대한 iid 요구 사항을 위반하는 것처럼 보이는 매우 다른 비용 분포 (여성 대 남성, 만성 조건 등)를 가진 사람들의 하위 그룹이 많이 있습니다. 그것에 대해?


데이터 의 최소값 중앙값 이 모두 0 인 경우 어떻게됩니까?
Alecos Papadopoulos

그 값의 절반 이상이 0으로, 그 해에 절반의 사람들이 치료를받지 않았다는 것을 나타냅니다.
Chris

그리고 왜 순열 테스트가 달라야한다고 생각합니까? (두 그룹 모두 비슷하게 비정규 분포를 갖는 경우)
FairMiles

iid는 두 가지 별도의 가정입니다. 첫 번째는 '독립적'입니다. 두 번째는 '동일하게 분배 된'것입니다. 관측치가 '동일하게 분배되지'않았다고 제안하는 것 같습니다. 모든 관측 값이 하나의 큰 분포 혼합에서 나온 것으로 가정 할 수 있으므로 지금까지 제공된 답변에는 영향을 미치지 않습니다. 그러나 관측치가 독립적이지 않다고 생각하면 훨씬 다르고 잠재적으로 더 어려운 문제입니다.
zkurtz

답변:


29

t- 검정이나 순열 검정은 이처럼 비대칭 적으로 분포 된 두 분포 간의 평균 차이를 식별하는 데 큰 힘을 갖지 않습니다. 따라서 둘 다 의미가 없음을 나타내는 이질 p- 값을 제공합니다. 문제는 그들이 동의하는 것처럼 보이지 않는다. 차이를 전혀 감지하기가 어렵 기 때문에 동의하지 않을 수 없습니다!


일부 직관의 경우 단일 데이터 집합에서 단일 값이 변경되면 어떻게 될지 고려하십시오 . 예를 들어 두 번째 데이터 세트에서 최대 721,700이 발생하지 않았다고 가정하십시오. 평균은 약 721700/3000 (약 240) 감소했을 것입니다. 그러나 평균의 차이는 4964-4536 = 438에 불과하며 두 배는 크지 않습니다. (이 증명하지 않지만) 그 제안 어떤 수단의 비교 차이가 큰 찾을 것입니다.

그러나 t- 테스트가 적용되지 않는지 확인할 수 있습니다. 이와 동일한 통계적 특성을 가진 일부 데이터 세트를 생성 해 봅시다. 그렇게하기 위해 나는 혼합물을 만들었습니다.

  • 5/8
  • 나머지 데이터에는 로그 정규 분포가 있습니다.
  • 이 분포의 매개 변수는 관측 된 평균과 3 분위를 재현하도록 배열됩니다.

이 시뮬레이션에서 최대 값도보고 된 최대 값과 멀지 않은 것으로 나타났습니다.

첫 번째 데이터 세트를 10,000 번 복제하고 평균을 추적합시다. (두 번째 데이터 세트에 대해이 작업을 수행하면 결과는 거의 동일합니다.)이 평균의 히스토그램은 평균의 샘플링 분포를 추정합니다. t- 검정은이 분포가 대략 정규일 때 유효합니다. 정규성에서 벗어난 정도는 스튜던트 t 분포가 잘못 될 정도를 나타냅니다. 참고로,이 결과에 맞는 정규 분포의 PDF를 빨간색으로 그렸습니다.

히스토그램 1

엄청나게 큰 특이 치가 있기 때문에 세부 사항을 볼 수 없습니다. (이것은 내가 언급 한 수단에 대한 이러한 민감도를 나타냅니다.) 그 중 123 개 (-1.23 %)가 10,000 개가 넘습니다. 나머지에 집중하여 세부 사항을 볼 수 있으며 이러한 특이 치가 분포의 로그 정규성으로 인해 발생할 수 있으므로 원래 데이터 세트의 경우는 아닙니다.

히스토그램 2

(3000/428)2=50


다음은 R이러한 수치를 생성 한 코드입니다.

#
# 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
그럼에도 불구하고 t- 테스트 적용 가능한 고도로 치우친 데이터 세트의 예는 (대량의 데이터 때문에) stats.stackexchange.com/questions/110418/…을 참조하십시오 . 이 두 경우는 문제에 대한 끊임없는 답변이 없음을 보여줍니다. t- 검정이 의미 있고 정확한지 여부를 결정할 때는 데이터 분포와 데이터 양을 모두 고려해야합니다.
whuber

3
n = 30 또는 n = 300이면 계속 진행하기에 충분하고 표본 평균이 정상적으로 분포되어 있다고 가정하는 사람들과 직면 할 때 다시 찾을 수 있기를 희망 하면서이 질문을 좋아했습니다. 나는 좋은 시뮬레이션 예제를 가지고 있지만 이것이 실제 데이터의 문제라는 것을 보여주는 것이 좋습니다.
Glen_b-복지 주 모니카

1
+1, 그러나 당신의 실제 권장 사항이 그런 상황에 어떤 것인지 궁금합니다. 평균 (아마도 높은 양자화) 대신 다른 통계를 기반으로 순열 테스트를 사용해야합니까? 수단에 대한 표준 테스트를 실행하기 전에 약간의 변환을 적용해야합니까? 아니면 두 표본 사이의 유의미한 차이를 감지하려는 희망을 포기해야합니까?
amoeba는

@amoeba 평균의 차이를 테스트하는 것이 문제라면 순열 테스트는 도움이되지 않습니다. 여기서 중요한 차이를 찾지는 못할 것입니다. 다른 통계를 테스트하는 경우 평균 (특히 비용 데이터와 관련이있는)을 테스트하지 않으므로 권장 할 수 있는지 여부는 목표에 따라 다릅니다.
whuber

4

n이 크면 (300과 같이 3000보다 훨씬 작음) t- 검정은 본질적으로 z- 검정과 동일합니다. 즉, t- 검정은 중앙 한계 정리의 적용에 지나지 않습니다. 이는 두 그룹 각각에 대한 MEAN이 거의 정확하게 정규 분포되어 있음을 의미합니다 (두 평균의 관측치가 정규 분포와 매우 거리가 멀어도) 배포!). 이는 일반적인 t-table이 1000보다 큰 n의 값을 표시하지 않는 이유이기도합니다 (예 :이 t-table) . 따라서, 나는 당신이 그렇게 잘 행동 한 결과를 얻고 있다는 것을 알고 놀랍지 않습니다.

편집 : 왜곡의 끝과 중요성을 과소 평가 한 것 같습니다. 위의 요점은 덜 극단적 인 상황에서 장점이 있지만 질문에 대한 whuber 의 대답은 전반적으로 훨씬 좋습니다.


2
인용 통계가 입증 된 것처럼 왜도가 극단 일 때 평균 300 또는 3000 샘플의 샘플링 분포가 보통 근처에있을 것이라는 보장이 없습니다. 그것이 OP가 놀라는 이유입니다. 당신은 당신이 놀라지 않는다고 말함으로써 반대하지만, 그것은 다른 사람에 비해 한 사람의 직관으로 내려온 것으로 보입니다. 이 데이터에 대해 어떤 객관적인 주장을 제공 할 수 있습니까? 300 (또는 3000)이 t- 검정이 제대로 작동하기에 충분한 표본이라는 것을 보여줍니다.
whuber

좋은 지적입니다. 데이터가 충분히 왜곡되면 내 주장이 실패한다는 것을 인정합니다. 따라서 나에게 질문은 데이터가 얼마나 왜곡되어 있는지, 그리고 왜도를 필요한 샘플 크기와 관련시키는 공식적인 결과가 있습니까?
zkurtz

1
그 질문에 대한 답변을 게시했습니다. 우리는 (적어도 대략) 질문의 요약 통계를 기반으로 데이터가 어떻게 왜곡되었는지 알고 있습니다. 이 차이는 너무 강해서 그룹당 300, 3000 또는 30,000 개의 관측치가 평균의 샘플링 분포를 "거의 정확히 정상"으로 만들 수 없습니다. 그 주장이 그럴듯 해지기 전에 약 300,000 정도가 필요할 것입니다. 따라서 두 테스트가 동의하는 이유에 대해 다른 설명을 찾아야합니다. 내 것은 둘 다 잘 행동하는 것보다는 "잘 행동하는 것"이 ​​아니라는 것입니다.
whuber

0

이 답변이 늦다는 것을 알고 있습니다. 그러나 의료 서비스 연구에서 박사 학위를 받고 있으므로 비용 데이터를 포함하여 의료 데이터를 많이 다루고 있습니다.

OP에 어떤 데이터가 있는지 모르겠습니다. 단면 데이터 인 경우 IID 일 가능성이 높습니다. 독립이란 각 개인과 개인이 독립적이라는 것을 의미합니다. 그것은 정당화 될 가능성이 높습니다. 동일하게 분포 된 것과 같이, 데이터는 로그 링크를 갖는 일반화 된 선형 모델에서 감마 분포로부터 오는 것으로 모델링 될 수 있습니다. 이것이 사람들이 실제로하는 일입니다. 또는 화려하고 싶다면 초과 0을 처리하는 허들 모델 (생태 측정법으로 인기가 있음)이있을 수 있습니다. 그건 그렇고, 의료 지출에서 꽤 일반적입니다. OP는 기술적으로 데이터가 반드시 동일하게 분포되어 있지는 않습니다. 예를 들어 평균과 분산이 연령에 따라 변하지 만 다중 회귀 모델에서 실행 가능한 가정입니다.

각 개인이 1 년 이상 데이터 세트에 있었다면 데이터는 IID가 아닙니다. 이를 위해 더 복잡한 모델이 있습니다. 이들 중 비교적 간단한 것은 아마도 일반화 된 추정 방정식, 감마 분포 및 로그 링크가 교환 가능한 작업 상관 관계를 가정하는 것일 수 있습니다. 또는 이러한 데이터가 공개적으로 사용 가능한 설문 조사 데이터에서 가져온 경우 샘플링 될 가능성이 동일하지 않습니다. 이러한 설문 조사의 대부분은 각 가정의 여러 사람을 인터뷰하고 인구를 계층화하고 일부 그룹 (예 : 소수 민족)을 과도하게 샘플링합니다. 사용자는이를 수정해야합니다.

t- 검정을 사용하지 않으며, 특히 관측 데이터에는 사용하지 않습니다. 혼란스러운 사람들이 너무 많아서 (일반화 된) 선형 모델로 조정하려고합니다. 그래서 나는 t-tests와 관련된 질문에 대해서는 언급 할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.