모든 정규성 검정에서 귀무 가설을 기각하는 이유는 무엇입니까? W-Sq

Kolgomorov-Smirnov 검정, Shapiro 검정 등은 모두 분포가 정상이라는 가설을 기각합니다. 그러나 정규 Quantile과 막대 그래프를 그릴 때 데이터는 분명히 정상입니다. 아마도 시험의 힘이 높기 때문에?

표본 크기는 약 650입니다. 따라서 이러한 검정 중 하나 이상이 귀무 가설을 기각하지 않아야합니까?

결과 :

           Kolmogorov-Smirnov    D          0.05031          Pr > D       <0.010
           Cramer-von Mises      W-Sq       0.30003          Pr > W-Sq    <0.005
           Anderson-Darling      A-Sq       1.66965          Pr > A-Sq    <0.005
           Chi-Square            Chi-Sq  3250.43596     18   Pr > Chi-Sq  <0.001


답변

정규성 테스트는 시간 낭비이며 예제는 그 이유를 보여줍니다. 작은 표본의 경우 정규성 검정의 검정력이 낮으므로 사용할 통계 모델에 대한 결정은 사전 지식을 기반으로해야합니다 . 이러한 경우 널을 거부하지 못한다고 해서 모집단 수준에서 널이 거의 참 임을 증명하지는 않습니다 .

표본이 크면 정규성 검정이 엄청나게 강력 해지지 만 아직 알지 못한 것은 없습니다. 실제 수량은 정확히 정상적으로 분포 되지 않습니다 . 정규 분포는 수학적 추상화 일 뿐이며 많은 경우에 근사치입니다. 이것의 간단한 증거가 걸릴 수 있습니다 실제 수량 (내가 생각할 수있는 최소한 없음)이 없다는 것입니다 어떤 값으로 실수가. 예를 들어, 우주에는 너무 많은 분자가 있습니다. 돈 공급에는 너무 많은 달러가 있습니다. 빛의 속도는 유한합니다. 컴퓨터는 유한 크기의 숫자 만 저장할 수 있으므로, 모든 실수를 지원하는 것이라도 측정 할 수는 없습니다.

요점은 데이터가 정확하게 정규 분포되어 있지 않다는 것을 이미 알고 있었지만 정규성 테스트는 데이터의 비정규 상태에 대해서는 아무 것도 알려주지 않습니다. 정규성을 가정하는 통계적 추론 방법이 정답을 얻을 수 있도록 데이터가 대략 정규 분포 되어 있는지 여부에 대한 힌트는 전혀 없습니다 . 아이러니하게도, 정규성을 가정하는 일반적인 테스트 (예 : T- 검정 및 분산 분석)는 큰 표본 크기에서 비정규성에 대해 더 강력합니다.


답변

충분히 큰 표본 크기로 데이터 생성 분포가 실제로 (정확히) 정상이 아닌 한 좋은 테스트는 귀무 가설을 기각해야합니다.

가설 검정을 사용하면 일반적으로 “강력한”검정을 찾는 데 관심이 있습니다.이 검정은 가능한 적은 데이터로 귀무 가설에서 아주 작은 편차를 찾을 수있는 검정입니다.

크기 20, 50, 100, 200의 서브 샘플로 테스트를 실행하고 테스트가 거부하기 시작하는 크기를 확인하십시오. 히스토그램이 대칭적이고 일반적으로 종 모양인지 쉽게 알 수 있지만 분포의 꼬리는 눈으로 평가하기가 더 어렵습니다. 데이터에 특이 치가있어 테스트를 거부 할 수 있습니까? 있는 경우 제거 할 때 어떤 일이 발생하는지 확인하십시오.


답변

가능한 원인은 데이터가 약간 비정규 적이며 샘플 크기가이를 나타내기에 충분하기 때문입니다.

분포가 실제로 정상이면, 다음 중 하나의 테스트 만 통과하는 다음 R 예에서와 같이 일반적으로 이러한 테스트를 통과해야합니다.

> require(nortest)
>
> set.seed(1)
> dat <- rnorm(650,mean=100, sd=5)
>
> ad.test(dat)

        Anderson-Darling normality test

data:  dat
A = 0.439, p-value = 0.2924

> cvm.test(dat)

        Cramer-von Mises normality test

data:  dat
W = 0.0882, p-value = 0.1619

> lillie.test(dat)

        Lilliefors (Kolmogorov-Smirnov) normality test

data:  dat
D = 0.0334, p-value = 0.08196

> pearson.test(dat)

        Pearson chi-square normality test

data:  dat
P = 37.96, p-value = 0.035

> sf.test(dat)

        Shapiro-Francia normality test

data:  dat
W = 0.9978, p-value = 0.5186

> shapiro.test(dat)

        Shapiro-Wilk normality test

data:  dat
W = 0.9981, p-value = 0.675

당신은 qqplot을하고 싶을 수도 있고 이것이 직선에 가깝다면 그것을 당신의 목적을 위해 정상에 충분히 가깝게 취급하기로 결정할 수 있습니다. 오히려 그 목적이 무엇인지에 달려 있습니다.


답변

dsimcha의 답변에 동의하지 않겠습니다. “정상 성 테스트는 시간 낭비이며 예제는 그 이유를 보여줍니다.” 정규성 테스트는 시간 낭비가 아니며 항상 데이터를 통해 배울 수 있습니다. 또한, 분석을 수행하기 전에 테스트해야하는 조건 (예 : 분산 분석, 회귀 등)이 있습니다. 상대적으로 큰 샘플 크기는 플롯 (QQplot, 막대 그래프)으로 테스트하는 것이 좋습니다. 이러한 경우 시각화는 멀티 모달 동작 등에 대한 훨씬 더 많은 정보를 제공합니다.

분산 분석 및 회귀 분석은 큰 표본 크기를 처리 할 때 비정규성에 강하지 만 문제를 일으키는 주요 데이터 유형은 다중 모드 데이터 표본입니다.

작은 샘플 크기의 Kolgomorov-Smirnov 테스트는 주로 감도로 인해 최상의 옵션입니다.


답변

나는 지금까지 게시 된 다른 답변에 약간 동의하지 않을 것입니다. 정상성에 대한 이러한 테스트는 적어도 특정 종류의 편차에 대해 상대적으로 큰 표본 크기에서도 명목상의 힘이 거의 없습니다.

다음은 간단한 예입니다. 나는 평균이 sd로 분리 된 두 개의 법선의 혼합물을 생성했습니다.

set.seed(1)
reps = replicate(
  10000,
  shapiro.test(c(rnorm(325, mean = 0), rnorm(325, mean = 1)))$p.value
)
mean(reps < .05)
[1] 0.0525

그것이 실제로 정상이더라도 정상의 편차 5 %를 “검출”할 것이라는 점을 고려하면, 그것은 그리 인상적이지 않습니다.

또 다른 예는 다음과 같습니다. 두 가지 표준 편차의 크기 범위에 균일 한 노이즈를 추가합니다. 이것은 상당히 비정규 적입니다.

set.seed(1)
reps = replicate(
  10000,
  shapiro.test(rnorm(650) + 2 * runif(650))$p.value
)
mean(reps < .05)
[1] 0.0523

다시 말하지만, 정규성에서 꽤 큰 이탈을위한 극도로 낮은 전력.

qqplot을 올바르게 읽고 있습니까? 볼 수 있도록 업로드 해 주시겠습니까?

반면에 편집 은 회귀가 비정규성에 대해 상당히 강력하므로 육안 검사는 대부분의 목적에 충분할 것입니다.