Main Content

chi2gof

카이제곱 적합도 검정

설명

예제

h = chi2gof(x)카이제곱 적합도 검정을 사용하여 '벡터 x의 데이터가 평균과 분산이 x에서 추정된 정규분포에서 추출된다'는 귀무가설에 대한 검정 결과를 반환합니다. 대립가설은 '데이터가 이러한 분포에서 추출되지 않는다'입니다. 검정이 5% 유의수준에서 귀무가설을 기각한 경우 결과 h1이고, 그렇지 않은 경우 0입니다.

예제

h = chi2gof(x,Name,Value)는 하나 이상의 이름-값 쌍의 인수로 지정된 추가 옵션을 사용하여 카이제곱 적합도 검정에 대한 검정 결과를 반환합니다. 예를 들어, 정규분포 이외의 분포에 대해 검정을 수행하거나 검정의 유의수준을 변경할 수 있습니다.

예제

[h,p] = chi2gof(___)는 위에 열거된 구문의 입력 인수 중 하나를 사용하여 가설검정의 p-값 p도 반환합니다.

예제

[h,p,stats] = chi2gof(___)는 검정 통계량에 대한 정보를 포함하는 구조체 stats도 반환합니다.

예제

모두 축소

표준 정규 확률 분포 객체를 만듭니다. 이 분포에서 난수를 사용하여 데이터 벡터 x를 생성합니다.

pd = makedist('Normal');
rng default;  % for reproducibility
x = random(pd,100,1);

'x의 데이터가 정규분포를 따르는 모집단에서 추출된다'는 귀무가설을 검정합니다.

h = chi2gof(x)
h = 0

반환된 값 h = 0chi2gof가 디폴트 5% 유의수준에서 귀무가설을 기각하지 않음을 나타냅니다.

표준 정규 확률 분포 객체를 만듭니다. 이 분포에서 난수를 사용하여 데이터 벡터 x를 생성합니다.

pd = makedist('Normal');
rng default;  % for reproducibility
x = random(pd,100,1);

'x의 데이터가 1% 유의수준에서 정규분포를 따르는 모집단에서 추출된다'는 귀무가설을 검정합니다.

[h,p] = chi2gof(x,'Alpha',0.01)
h = 0
p = 0.3775

반환된 값 h = 0chi2gof가 1% 유의수준에서 귀무가설을 기각하지 않음을 나타냅니다.

전구 수명 표본 데이터를 불러옵니다.

load lightbulb

전구의 시간 단위로 수명을 포함하는 데이터 행렬의 첫 번째 열에서 벡터를 만듭니다.

x = lightbulb(:,1);

'x의 데이터가 베이불 분포를 따르는 모집단에서 추출된다'는 귀무가설을 검정합니다. fitdist를 통해 데이터에서 추정된 A 파라미터와 B 파라미터를 사용하여 확률 분포 객체를 만듭니다.

pd = fitdist(x,'Weibull');
h = chi2gof(x,'CDF',pd)
h = 1

반환된 값 h = 1chi2gof가 디폴트 5% 유의수준에서 귀무가설을 기각함을 나타냅니다.

데이터 합동에 사용할 Bin 6개를 0~5로 번호를 지정하여 만듭니다.

bins = 0:5;

각 Bin의 관측된 도수를 포함하는 벡터를 만들고 총 관측값 개수를 계산합니다.

obsCounts = [6 16 10 12 4 2];
n = sum(obsCounts);

푸아송 확률 분포 객체를 데이터에 피팅하고 각 Bin에 대한 예상 도수를 계산합니다. 전치 연산자 .'를 사용하여 binsobsCounts를 행 벡터에서 열 벡터로 변환합니다.

pd = fitdist(bins','Poisson','Frequency',obsCounts');
expCounts = n * pdf(pd,bins);

'obsCounts의 데이터가 lambdaHat과 같은 람다 모수를 갖는 푸아송 분포에서 추출된다'는 귀무가설을 검정합니다.

[h,p,st] = chi2gof(bins,'Ctrs',bins,...
                        'Frequency',obsCounts, ...
                        'Expected',expCounts,...
                        'NParams',1)
h = 0
p = 0.4654
st = struct with fields:
    chi2stat: 2.5550
          df: 3
       edges: [-0.5000 0.5000 1.5000 2.5000 3.5000 5.5000]
           O: [6 16 10 12 6]
           E: [7.0429 13.8041 13.5280 8.8383 6.0284]

반환된 값 h = 0chi2gof가 디폴트 5% 유의수준에서 귀무가설을 기각하지 않음을 나타냅니다. 벡터 E는 귀무가설에서 각 Bin에 대한 예상 도수를 포함하고 O는 각 Bin에 대한 관측된 도수를 포함합니다.

카이제곱 적합도 검정(chi2gof)에서 함수 핸들로 확률 분포 함수 normcdf를 사용합니다.

'입력 벡터 x에 포함된 표본 데이터는 모수 µσ가 각각 표본 데이터의 평균(mean) 및 표준편차(std)와 동일한 정규분포에서 추출된다'는 귀무가설을 검정합니다.

rng('default') % For reproducibility
x = normrnd(50,5,100,1);
h = chi2gof(x,'cdf',{@normcdf,mean(x),std(x)})
h = 0

반환된 결과 h = 0chi2gof가 디폴트 5% 유의수준에서 귀무가설을 기각하지 않음을 나타냅니다.

입력 인수

모두 축소

가설검정에 대한 표본 데이터로, 벡터로 지정됩니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: 'NBins',8,'Alpha',0.01은 데이터를 8개 Bin으로 합동하고 1% 유의수준에서 가설검정을 수행합니다.

데이터 합동에 사용할 Bin 개수로, 'NBins'와 함께 양의 정수 값이 쉼표로 구분되어 지정됩니다. NBins에 값을 지정하는 경우 Ctrs 또는 Edges에 값을 지정하지 마십시오.

예: 'NBins',8

데이터형: single | double

Bin 중심값으로, 'Ctrs'와 함께 각 Bin에 대한 중심값으로 구성된 벡터가 쉼표로 구분되어 지정됩니다. Ctrs에 값을 지정하는 경우 NBins 또는 Edges에 값을 지정하지 마십시오.

예: 'Ctrs',[1 2 3 4 5]

데이터형: single | double

Bin 경계값으로, 'Edges'와 함께 각 Bin에 대한 경계값으로 구성된 벡터가 쉼표로 구분되어 지정됩니다. Edges에 값을 지정하는 경우 NBins 또는 Ctrs에 값을 지정하지 마십시오.

예: 'Edges',[-2.5 -1.5 -0.5 0.5 1.5 2.5]

데이터형: single | double

가정된 분포의 cdf로, 'CDF'와 함께 확률 분포 객체, 함수 핸들 또는 셀형 배열이 쉼표로 구분되어 지정됩니다.

  • CDF가 확률 분포 객체이면 자유도는 fitdist를 사용하여 모수를 추정하거나 makedist를 사용하여 모수를 지정할지를 고려하여 계산됩니다.

  • CDF가 함수 핸들이면 분포 함수는 오직 x만 인수로 취해야 합니다.

  • CDF가 셀형 배열이면 첫 번째 요소가 함수 핸들이어야 하고 나머지 요소는 파라미터 값으로, 셀당 하나씩 지정되어야 합니다. 이 함수는 x를 첫 번째 인수로 취하고 배열의 다른 파라미터를 그 이후의 인수로 취해야 합니다.

CDF에 값을 지정하는 경우 Expected에 값을 지정하지 마십시오.

예: 'CDF',pd_object

데이터형: single | double

각 Bin에 대한 예상 도수로, 'Expected'와 함께 음이 아닌 값으로 구성된 벡터가 쉼표로 구분되어 지정됩니다. Expected가 추정된 모수에 따라 달라지는 경우 NParams를 사용하여 chi2gof가 자유도를 올바르게 계산하도록 해야 합니다. Expected에 값을 지정하는 경우 CDF에 값을 지정하지 마십시오.

예: 'Expected',[19.1446 18.3789 12.3224 8.2432 4.1378]

데이터형: single | double

귀무분포를 설명하는 데 사용되는 추정된 모수의 개수로, 'NParams'와 함께 양의 정수 값이 쉼표로 구분되어 지정됩니다. 이 값은 cdf 또는 예상 도수를 계산하는 데 사용되는 추정된 모수의 개수에 따라 검정의 자유도를 조정합니다.

NParams의 디폴트 값은 어떻게 귀무분포를 지정하는지에 따라 달라집니다.

  • CDF를 확률 분포 객체로 지정할 경우 NParams는 객체를 만드는 데 사용된 추정된 모수 개수와 같습니다.

  • CDF를 함수 이름 또는 함수 핸들로 지정할 경우 NParams의 디폴트 값은 0입니다.

  • CDF를 셀형 배열로 지정할 경우 NParams의 디폴트 값은 배열에 포함된 모수 개수입니다.

  • Expected를 지정할 경우 NParams의 디폴트 값은 0입니다.

예: 'NParams',1

데이터형: single | double

Bin당 최소 예상 도수로, 'EMin'과 함께 음이 아닌 정수 값이 쉼표로 구분되어 지정됩니다. 꼬리의 끝에 있는 Bin이 EMin보다 작은 기대값을 갖는 경우 각 끝에 있는 Bin의 도수가 최소 5가 될 때까지 인접한 Bin과 결합됩니다. 끝에 있지 않은 내부의 Bin이 5보다 작은 도수를 갖는 경우 chi2gof는 경고를 표시하지만 다른 내부 Bin과 결합하지는 않습니다. 이 경우, 더 적은 수의 Bin을 사용하거나 Bin 중심값 또는 Bin 경계값을 제공하여 모든 Bin의 예상 도수를 더 늘려야 합니다. Bin이 결합되지 않도록 하려면 EMin0으로 지정하십시오.

예: 'EMin',0

데이터형: single | double

데이터 값의 도수로, 'Frequency'와 함께 벡터 x와 길이가 같은 음이 아닌 정수 값으로 이루어진 벡터가 쉼표로 구분되어 지정됩니다.

예: 'Frequency',[20 16 13 10 8]

데이터형: single | double

가설검정의 유의수준으로, 'Alpha'와 함께 (0,1) 범위의 스칼라 값이 쉼표로 구분되어 지정됩니다.

예: 'Alpha',0.01

데이터형: single | double

출력 인수

모두 축소

가설검정 결과로, 1 또는 0으로 반환됩니다.

  • h = 1이면 Alpha 유의수준에서 귀무가설이 기각됨을 나타냅니다.

  • h = 0이면 Alpha 유의수준에서 귀무가설이 기각되지 않음을 나타냅니다.

검정의 p-값으로, [0,1] 범위의 스칼라 값으로 반환됩니다. p는 귀무가설 하의 관측값과 같거나 그보다 더 극단적인 검정 통계량이 관측될 확률입니다. p의 값이 작을 경우 귀무가설의 타당성에 의문이 제기됩니다.

검정 통계량으로, 다음을 포함하는 구조체로 반환됩니다.

  • chi2stat — 검정 통계량의 값입니다.

  • df — 검정의 자유도입니다.

  • edges — 합동 후 Bin 경계값으로 구성된 벡터입니다.

  • O — 각 Bin의 관측된 도수로 구성된 벡터입니다.

  • E — 각 Bin의 예상 도수로 구성된 벡터입니다.

세부 정보

모두 축소

카이제곱 적합도 검정

카이제곱 적합도 검정은 데이터 표본이 지정된 확률 분포에서 추출되는지 여부를 데이터에서 추정된 모수를 사용하여 결정합니다.

이 검정에서는 데이터를 Bin으로 그룹화하고 이러한 Bin에 대해 관측된 도수와 예상 도수를 계산하고 카이제곱 검정 통계량을 계산합니다.

χ2=i=1N(OiEi)2/Ei,

여기서 Oi는 관측된 도수이고 Ei는 가정된 분포를 기반으로 한 예상 도수입니다. 도수가 충분히 큰 경우 검정 통계량은 근사 카이제곱 분포를 가집니다.

알고리즘

chi2gof는 검정 통계량의 값을 자유도가 nbins - 1 - nparams인 카이제곱 분포와 비교합니다. 여기서 nbins는 데이터 합동에 사용된 Bin 개수이고 nparams는 예상 도수를 확인하는 데 사용된 추정된 모수 개수입니다. 검정을 수행하기에 자유도가 충분하지 않을 경우 chi2gof는 p-값을 NaN으로 반환합니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

|

도움말 항목