이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

ecdf

경험적 누적 분포 함수

설명

예제

[f,x] = ecdf(y)는 벡터 y의 데이터를 사용하여 x의 점에서 계산된 경험적 누적 분포 함수(cdf) f를 반환합니다.

생존 및 신뢰도 분석에서는 이 경험적 cdf를 카플란-마이어 추정값(Kaplan-Meier Estimate)이라고 합니다. 데이터는 생존 시간 또는 고장 시간에 대응될 수 있습니다.

예제

[f,x] = ecdf(y,Name,Value)는 하나 이상의 Name,Value 쌍 인수로 지정된 추가 옵션을 사용하여 x의 점에서 계산된 경험적 함수 값 f를 반환합니다.

예를 들어, 계산할 함수 유형을 지정하거나 어떤 데이터를 중도절단할지 지정할 수 있습니다.

예제

[f,x,flo,fup] = ecdf(___)는 계산된 함수 값에 대한 95% 신뢰 하한과 신뢰 상한도 반환합니다. 위에 열거된 구문의 모든 입력 인수와 사용할 수 있습니다.

ecdf그린우드의 공식(Greenwood's Formula)을 사용하여 신뢰한계를 계산합니다. 이는 동시 신뢰한계가 아닙니다.

예제

ecdf(___)는 계산된 함수에 대해 stairs 함수를 사용하여 계단 그래프를 그립니다. 그래프에 신뢰한계를 포함시키려면 'Bounds','on'을 지정하십시오.

ecdf(ax,___)는 현재 좌표축(gca) 대신 ax로 지정된 좌표축에 플로팅합니다.

예제

모두 축소

시뮬레이션된 생존 데이터에 대한 누적 분포 함수(cdf)의 카플란-마이어 추정값(Kaplan-Meier Estimate)을 계산합니다.

모수 3과 1을 사용하여 베이불 분포에서 생존 데이터를 생성합니다.

rng('default')  % for reproducibility
failuretime = random('wbl',3,1,15,1);

생존 데이터에 대한 cdf의 카플란-마이어 추정값을 계산합니다.

[f,x] = ecdf(failuretime);
[f,x]
ans = 16×2

         0    0.0895
    0.0667    0.0895
    0.1333    0.1072
    0.2000    0.1303
    0.2667    0.1313
    0.3333    0.2718
    0.4000    0.2968
    0.4667    0.6147
    0.5333    0.6684
    0.6000    1.3749
      ⋮

추정된 cdf를 플로팅합니다.

ecdf(failuretime)

시뮬레이션된 우측 중도절단된 생존 데이터의 위험 함수를 계산하고 플로팅합니다.

번바움-손더스(Birnbaum-Saunders) 분포에서 고장 시간을 생성합니다.

rng('default')  % For reproducibility
failuretime = random('birnbaumsaunders',0.3,1,100,1);

연구가 시간 0.9에서 끝난다는 가정 하에, 0.9보다 큰 시뮬레이션된 고장 시간을 중도절단된 데이터로 나타내는 논리형 배열을 생성하고 이 정보를 벡터로 저장합니다.

T = 0.9;
cens = (failuretime>T);

데이터에 대한 경험적 위험 함수를 플로팅합니다.

ecdf(failuretime,'Function','cumulative hazard', ...
    'Censoring',cens,'Bounds','on');

우측 중도절단된 데이터를 생성하고 경험적 누적 분포 함수(cdf)를 알려진 cdf와 비교합니다.

평균 고장 시간이 15인 지수 분포에서 고장 시간을 생성합니다.

rng('default')  % For reproducibility
y = exprnd(15,75,1);

평균 고장 시간이 30인 지수 분포에서 중도탈락 시간을 생성합니다.

d = exprnd(30,75,1);

관측된 고장 시간을 생성합니다. 이는 생성된 고장 시간과 중도탈락 시간의 최솟값입니다.

t = min(y,d);

생성된 고장 시간이 중도탈락 시간보다 긴 시간임을 나타내는 논리형 배열을 생성합니다. 위의 명제가 참인 데이터는 중도절단됩니다.

censored = (y>d);

경험적 cdf와 신뢰한계를 계산합니다.

[f,x,flo,fup] = ecdf(t,'Censoring',censored);

cdf와 신뢰한계를 플로팅합니다.

figure()
ecdf(t,'Censoring',censored,'Bounds','on');
hold on

알려진 모집단 cdf의 플롯을 겹쳐 놓습니다.

xx = 0:.1:max(t);
yy = 1-exp(-xx/15);
plot(xx,yy,'g-','LineWidth',2)
axis([0 50 0 1])
legend('Empirical','LCB','UCB','Population', ...
    'Location','southeast')
hold off

생존 데이터를 생성하고 99% 신뢰한계를 갖는 경험적 생존 함수를 플로팅합니다.

모수 100과 2를 사용하여 베이불 분포에서 수명 데이터를 생성합니다.

rng('default')  % For reproducibility
R = wblrnd(100,2,100,1);

99% 신뢰한계를 갖는 데이터에 대한 생존 함수를 플로팅합니다.

ecdf(R,'Function','survivor','Alpha',0.01,'Bounds','on')
hold on

베이불 생존 함수를 피팅합니다.

x = 1:1:250;
wblsurv = 1-cdf('weibull',x,100,2);
plot(x,wblsurv,'g-','LineWidth',2)
legend('Empirical','LCB','UCB','Population', ...
    'Location','northeast')

실제 분포를 기반으로 한 생존 함수는 신뢰한계 내에 있습니다.

입력 인수

모두 축소

입력 데이터로, 벡터로 지정됩니다. 예를 들어, 생존 분석이나 신뢰도 분석에서 데이터는 각 대상 또는 개체의 생존 시간이나 고장 시간일 수 있습니다.

ecdfy에 포함된 NaN 값을 무시합니다. 또한, 중도절단 벡터('Censoring')나 도수 벡터('Frequency')에 NaN 값이 포함되어 있을 경우 ecdfy에서 이에 대응하는 값을 무시합니다.

데이터형: single | double

ecdf가 플로팅할 Figure에 대한 axes 핸들로, 핸들로 지정됩니다.

예를 들어, h가 Figure에 대한 핸들이면 ecdf는 다음과 같이 해당 Figure에 플로팅할 수 있습니다.

예: ecdf(h,x)

이름-값 쌍의 인수

선택적으로 Name,Value 인수가 쉼표로 구분되어 지정할 수 있습니다. 여기서 Name은 인수 이름이고 Value는 이에 대응하는 값입니다. Name은 따옴표로 묶어야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍의 인수를 원하는 순서로 지정할 수 있습니다.

예: 'Censoring',c,'Function','cumulative hazard','Alpha',0.025,'Bounds','on'ecdf가 누적 위험 함수를 반환하고 벡터 c로 지정된 중도절단된 데이터를 고려하여 97.5% 신뢰한계를 플로팅함을 지정합니다.

중도절단된 데이터 표시자로, 'Censoring'과 함께 x와 같은 크기의 부울형 배열이 쉼표로 구분되어 지정됩니다. 우측 중도절단된 관측값에 대해서는 1을 입력하고 완전히 관측된 관측값에 대해서는 0을 입력합니다. 디폴트 값은 모든 관측값이 완전히 관측된 것입니다.

ecdf는 이러한 중도절단 벡터에 포함된 NaN 값을 모두 무시합니다. 또한, y 또는 도수 벡터('Frequency')에 NaN 값이 하나라도 포함되어 있으면 ecdf가 중도절단 벡터에서 이에 대응되는 값을 무시합니다.

예: 벡터 cdata가 중도절단된 데이터 정보를 저장하는 경우 'Censoring',cdata를 입력합니다.

데이터형: logical

관측값의 도수로, 'Frequency'와 함께 음이 아닌 정수 도수를 포함하는 벡터가 쉼표로 구분되어 지정됩니다. 이 벡터는 벡터 x와 크기가 같습니다. 이 벡터의 j번째 요소는 xj번째 요소가 관측된 횟수를 알려줍니다. 디폴트 값은 x의 요소당 하나의 관측값이 있는 것입니다.

ecdf는 이러한 도수 벡터에 포함된 NaN 값을 모두 무시합니다. 또한, y 또는 중도절단 벡터('Censoring')에 NaN 값이 하나라도 포함되어 있으면 ecdf가 도수 벡터에서 이에 대응되는 값을 무시합니다.

예: failurefreq가 도수로 구성된 벡터인 경우 'Frequency',failurefreq를 입력합니다.

데이터형: single | double

계산된 함수의 신뢰구간에 대한 유의수준으로, 'Alpha'와 함께 (0,1) 범위의 스칼라 값이 쉼표로 구분되어 지정됩니다. 디폴트 값은 95% 신뢰구간에 대해 0.05입니다. 주어진 값 alpha에 대해 신뢰수준은 100(1-alpha)%입니다.

예를 들어, 99% 신뢰구간에 대해서는 다음과 같이 알파 값을 지정할 수 있습니다.

예: 'Alpha',0.01

데이터형: single | double

ecdf가 계산하고 반환하는 함수의 유형으로, 'Function'과 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

'cdf'디폴트 값. 누적 분포 함수.
'survivor'생존 함수.
'cumulative hazard'누적 위험 함수.

예: 'Function','cumulative hazard'

신뢰 한계의 포함 여부를 나타내는 표시자로, 'Bounds'와 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

'off'디폴트 값. 신뢰 한계를 생략하려면 이를 지정하십시오.
'on' 신뢰 한계를 포함하려면 이를 지정하십시오.

참고

이 이름-값 인수는 플로팅 목적으로만 사용됩니다.

예: 'Bounds','on'

출력 인수

모두 축소

x의 점에서 계산되는 함수 값으로, 열 벡터로 반환됩니다.

데이터 벡터 y의 정렬된 관측 점으로, 열 벡터로 반환됩니다.

ecdfy를 정렬하고, 정렬된 y에서 중복된 값을 제거하고, 결과를 출력값 x에 저장합니다. 출력값 xy의 최솟값을 처음 두 개의 값으로 포함시킵니다. 이 두 값은 stairs 함수를 사용하여 ecdf의 출력값을 플로팅하는 데 유용합니다.

계산된 함수의 신뢰 하한으로, 열 벡터로 반환됩니다. ecdf그린우드의 공식(Greenwood's Formula)을 사용하여 신뢰한계를 계산합니다. 이는 동시 신뢰한계가 아닙니다.

계산된 함수의 신뢰 상한으로, 열 벡터로 반환됩니다. ecdf그린우드의 공식을 사용하여 신뢰한계를 계산합니다. 이는 동시 신뢰한계가 아닙니다.

세부 정보

모두 축소

그린우드의 공식(Greenwood’s Formula)

카플란-마이어 추정량의 분산에 대한 근삿값입니다.

분산 추정값은 다음과 같이 지정됩니다.

V(S(t))=S2(t)ti<Tdiri(ridi),

여기서 ri는 ti 시점에서 생존 수이고, di는 ti 시점에서의 고장 수입니다.

참고 문헌

[1] Cox, D. R., and D. Oakes. Analysis of Survival Data. London: Chapman & Hall, 1984.

[2] Lawless, J. F. Statistical Models and Methods for Lifetime Data. 2nd ed., Hoboken, NJ: John Wiley & Sons, Inc., 2003.

확장 기능

R2006a 이전에 개발됨