Main Content

probplot

설명

예제

probplot(y)y에 있는 데이터의 분포를 정규분포와 비교하는 정규 확률 플롯을 생성합니다.

probplot은 마커 기호를 사용하여 y의 각 데이터 점을 플로팅하고 이론적 분포를 나타내는 기준선을 그립니다. 표본 데이터가 정규분포를 가지는 경우 데이터 점이 기준선을 따라 표시됩니다. 기준선은 데이터의 제1사분위수와 제3사분위수를 연결하고 데이터의 끝까지 확장됩니다. 정규분포가 아닌 분포는 데이터 플롯에 곡률을 도입합니다.

probplot(y,cens)cens의 중도절단 데이터를 사용하여 확률 플롯을 생성합니다.

예제

probplot(y,cens,freq)cens의 중도절단 데이터와 freq의 도수 데이터를 사용하여 확률 플롯을 생성합니다.

예제

probplot(dist,___)는 위에 열거된 구문에 나와 있는 입력 인수를 사용하여 dist로 지정된 분포에 대한 확률 플롯을 생성합니다.

probplot(ax,___)는 위에 열거된 구문에 나와 있는 입력 인수를 사용하여 ax로 지정된 기존 확률 플롯 좌표축에 확률 플롯을 추가합니다.

probplot(ax,pd)는 확률 분포 pd를 나타내기 위해 ax로 지정된 기존 확률 플롯 좌표축에 피팅된 선을 추가합니다.

예제

probplot(ax,fun,params)는 모수가 params인 함수 fun을 나타내기 위해 ax로 지정된 기존 확률 플롯 좌표축에 피팅된 선을 추가합니다.

probplot(___,'noref')는 플롯에서 기준선을 생략합니다.

예제

h = probplot(___)은 플로팅된 선에 해당하는 그래픽스 핸들을 반환합니다.

예제

모두 축소

표본 데이터를 생성하고 확률 플롯을 만듭니다.

표본 데이터를 생성합니다. 표본 x1은 스케일 모수가 A = 3이고 형태 모수가 B = 3인 베이불 분포의 난수 500개를 포함합니다. 표본 x2는 스케일 모수가 B = 3인 레일리(Rayleigh) 분포의 난수 500개를 포함합니다.

rng('default');  % For reproducibility
x1 = wblrnd(3,3,[500,1]);
x2 = raylrnd(3,[500,1]);

확률 플롯을 생성하여 x1x2의 데이터가 베이불 분포에서 추출되는지 여부를 평가합니다.

figure
probplot('weibull',[x1 x2])
legend('Weibull Sample','Rayleigh Sample','Location','best')

Figure contains an axes object. The axes object with title Probability plot for Weibull distribution, xlabel Data, ylabel Probability contains 4 objects of type functionline, line. One or more of the lines displays its values using only markers These objects represent Weibull Sample, Rayleigh Sample.

확률 플롯은 x1의 데이터는 베이불 분포에서 추출되지만 x2의 데이터는 그렇지 않다는 것을 보여줍니다.

또는, wblplot을 사용하여 베이불 확률 플롯을 만들 수 있습니다.

동일한 Figure에 확률 플롯과 추가적으로 피팅된 선을 만듭니다.

꼬리에 약 20%의 이상값이 포함된 표본 데이터를 생성합니다. 표본 데이터의 왼쪽 꼬리는 모수가 mu = 1인 지수 분포에서 무작위로 생성된 10개의 값을 포함합니다. 오른쪽 꼬리는 모수가 mu = 5인 지수 분포에서 무작위로 생성된 10개의 값을 포함합니다. 표본 데이터의 중심은 표준 정규분포에서 무작위로 생성된 80개의 값을 포함합니다.

rng('default')  % For reproducibility
left_tail = -exprnd(1,10,1);
right_tail = exprnd(5,10,1);
center = randn(80,1);
data = [left_tail;center;right_tail];

확률 플롯을 생성하여 표본 데이터가 정규분포에서 추출되는지 여부를 평가합니다.

probplot(data)

동일한 Figure에 t 위치-척도 곡선을 플로팅하여 data와 비교합니다.

p = mle(data,'distribution','tLocationScale');
t = @(data,mu,sig,df)cdf('tLocationScale',data,mu,sig,df);
h = probplot(gca,t,p);
h.Color = 'r';
h.LineStyle = '-';
title('{\bf Probability Plot}')
legend('Normal','Data','t','Location','NW')

Figure contains an axes object. The axes object with title blank Probability blank Plot, xlabel Data, ylabel Probability contains 3 objects of type functionline, line. One or more of the lines displays its values using only markers These objects represent Normal, Data, t.

이 플롯에서는 이상값 때문에 정규 직선과 t 위치-척도 곡선 모두 꼬리에 잘 피팅되지 않음을 알 수 있습니다.

화학 제조 공정에서 유량에 영향을 미칠 수 있는 인자를 연구하기 위한 실험에서 유의미한 효과를 식별하기 위해 절반 정규 확률 분포 플롯을 만듭니다. 4개의 인자는 반응 물질 A, B, C, D입니다. 각 인자는 2개의 수준(고농도 및 저농도)으로 존재합니다. 이 실험은 각 인자수준에 하나의 반복 실험만 포함합니다.

표본 데이터를 불러옵니다.

load flowrate

테이블 flowrate의 처음 4개 열은 인자와 그 상호 작용에 대한 설계 행렬을 포함합니다. 설계 행렬은 높은 인자수준에 대해 1을 사용하고 낮은 인자수준에 대해 -1을 사용하도록 코딩됩니다. flowrate의 다섯 번째 열은 측정된 유량을 포함합니다.

rate를 응답 변수로 사용하여 선형 회귀 모델을 피팅합니다. 예측 변수 A, B, C, D와 모든 상호 작용 항을 사용합니다.

mdl = fitlm(flowrate,'rate ~ A*B*C*D');

인자 효과 추정값의 절댓값을 계산하고 저장합니다. 인자 효과 추정값을 구하기 위해 모델 피팅 중에 얻은 계수 추정값에 2를 곱합니다. 회귀 계수가 y의 평균에서 x의 한 단위 변화에 따른 효과를 측정하기 때문에 이 단계가 필요합니다. 그러나 효과 추정값은 -1과 1의 설계 행렬 코딩으로 인해 x의 두 단위 변화를 측정합니다. 기준 측정값은 제외하십시오. mdl의 인자 순서는 원래 설계 행렬의 순서와 다를 수 있습니다.

effects = abs(mdl.Coefficients{2:end,1}*2);

기준을 제외한 효과 추정값의 절댓값을 사용하여 절반 정규 확률 플롯을 만듭니다.

figure
h = probplot('halfnormal',effects);

Figure contains an axes object. The axes object with title Probability plot for Half Normal distribution, xlabel Data, ylabel Probability contains 2 objects of type functionline, line. One or more of the lines displays its values using only markers

점에 레이블을 지정하고 플롯의 형식을 지정합니다. 먼저, 오름차순으로 정렬한 효과 추정값에 대한 인덱스 값을 반환합니다. 그런 다음 이 인덱스 값을 사용하여 그래픽 핸들(h(1).YData)에 저장된 확률 값을 정렬합니다.

[b,i] = sort(effects);
prob(i) = h(1).YData;

각 점에서 플롯에 텍스트 레이블을 추가합니다. 각 점의 x값은 효과 추정값이고 y값은 해당 확률입니다.

text(effects,prob,mdl.CoefficientNames(2:end),'FontSize',8,...
    'VerticalAlignment','top')
h(1).Color = 'r';

Figure contains an axes object. The axes object with title Probability plot for Half Normal distribution, xlabel Data, ylabel Probability contains 17 objects of type functionline, line, text. One or more of the lines displays its values using only markers

기준선에서 멀리 떨어진 점은 유의미한 효과를 나타냅니다.

시뮬레이션된 도수 데이터를 생성합니다.

y = 1:10;
freq = [2 4 6 7 9 8 7 7 6 5];

도수 데이터를 사용하여 정규 확률 플롯을 만듭니다.

probplot(y,[],freq)

Figure contains an axes object. The axes object with title Probability plot for Normal distribution, xlabel Data, ylabel Probability contains 2 objects of type functionline, line. One or more of the lines displays its values using only markers

이 정규 확률 플롯은 데이터가 정규분포를 따르지 않음을 나타냅니다.

입력 인수

모두 축소

표본 데이터로, 숫자형 벡터나 숫자형 행렬로 지정됩니다. probplot'x''o' 등의 마커 기호를 사용하여 y의 각 값을 표시합니다. y가 행렬인 경우, probploty의 각 열에 대해 별개의 선을 표시합니다.

모든 분포가 모든 데이터 세트에 적합한 것은 아닙니다. 데이터 세트가 지정된 분포에 적합하지 않은 경우 probplot에서 오류가 발생합니다. 각 분포에 대한 적절한 데이터 범위는 dist를 참조하십시오.

확률 플롯에 사용할 분포로, 확률 분포 객체 또는 다음 분포 이름 중 하나로 지정됩니다.

이름플롯 유형데이터 범위
'normal'정규 확률 플롯모든 값
'exponential'지수 확률 플롯음이 아닌 값
'extreme value'극값 확률 플롯모든 값
'half normal'절반 정규 확률 플롯모든 값
'lognormal'로그정규 확률 플롯양의 값
'logistic'로지스틱 확률 플롯모든 값
'loglogistic'로그-로지스틱 확률 플롯양의 값
'rayleigh'레일리 확률 플롯양의 값
'weibull'베이불 확률 플롯양의 값

새 Figure에서 확률 플롯을 생성하는 경우 디폴트 값은 'normal'입니다. ax 입력 인수를 사용하여 이미 확률 플롯이 포함된 Figure에 확률 플롯을 추가하는 경우 디폴트 값은 기존 확률 플롯의 플롯 유형입니다.

makedist로 모수 값을 지정하여 확률 분포 객체를 만들 수 있습니다. 또는, fitdist를 사용하여 확률 분포 객체를 표본 데이터에 피팅합니다. 확률 분포 객체에 대한 자세한 내용은 확률 분포 사용하기 항목을 참조하십시오.

y축 스케일은 선택한 분포를 기반으로 합니다. x축에는 베이불(Weibull), 로그-로지스틱, 로그정규분포에 대한 로그 스케일과 나머지에 대한 선형 스케일이 있습니다.

모든 분포가 모든 데이터 세트에 적합한 것은 아닙니다. 데이터 세트가 지정된 분포에 적합하지 않은 경우 probplot에서 오류가 발생합니다.

예: 'weibull'

중도절단 데이터로, 숫자형 벡터로 지정됩니다. censy와 길이가 같아야 하며 우측 중도절단된 관측값에 대한 1 값과 정확히 측정된 관측값에 대한 0 값을 포함해야 합니다.

데이터형: single | double

도수 데이터로, 정수 값으로 구성된 벡터로 지정됩니다. freqy와 길이가 같아야 합니다. freqy의 대응되는 요소에 대한 정수 도수를 포함합니다.

중도절단 데이터가 아닌 도수 데이터를 사용하여 확률 플롯을 생성하려면 cens에 대해 빈 괄호([])를 지정합니다.

데이터형: single | double

대상 좌표축으로, Axes 객체 또는 UIAxes 객체로 지정됩니다. probplot 함수는 ax로 지정된 좌표축에 플롯을 추가합니다. 자세한 내용은 Axes 속성UIAxes 속성 항목을 참조하십시오.

현재 Figure의 현재 좌표축을 반환하려면 gca를 사용하십시오.

기준선의 확률 분포로, 확률 분포 객체로 지정됩니다. probplotpd로 지정된 확률 분포를 나타내기 위해 ax로 지정된 좌표축에 피팅된 선을 추가합니다.

makedist로 모수 값을 지정하여 확률 분포 객체를 만듭니다. 또는, fitdist를 사용하여 확률 분포 객체를 표본 데이터에 피팅합니다. 확률 분포 객체에 대한 자세한 내용은 확률 분포 사용하기 항목을 참조하십시오.

기준선에 대한 함수로, 함수 핸들로 지정됩니다. probplotfun으로 지정된 함수를 나타내기 위해 ax로 지정된 좌표축에 피팅된 선을 추가하며 params로 지정된 모수에서 계산됩니다.

fun은 cdf 함수에 대한 함수 핸들로, 함수 핸들 연산자 @을 사용하여 지정됩니다. 이 함수는 입력값으로 구성된 벡터를 첫 번째 인수로 받아야 하며, 각 입력값에서 계산된 cdf가 포함된 벡터를 반환합니다. params 인수를 사용하여 fun을 계산하는 데 필요한 모수 값을 지정합니다. 함수 핸들에 대한 자세한 내용은 함수 핸들 생성하기 항목을 참조하십시오.

예: @wblpdf

데이터형: function_handle

기준선 함수 파라미터로, 숫자형 값으로 구성된 벡터 또는 셀형 배열로 지정됩니다. probplotfun으로 지정된 함수를 나타내기 위해 ax로 지정된 좌표축에 피팅된 선을 추가하며, params로 지정된 모수에서 계산됩니다.

fun은 cdf 함수에 대한 함수 핸들로, 함수 핸들 연산자 @을 사용하여 지정됩니다. 이 함수는 값의 벡터를 첫 번째 인수로 받아야 하며, 각 값에서 계산된 cdf 값의 벡터를 반환합니다. params 인수를 사용하여 fun을 계산하는 데 필요한 모수 값을 지정합니다. 함수 핸들에 대한 자세한 내용은 함수 핸들 생성하기 항목을 참조하십시오.

출력 인수

모두 축소

line 객체의 그래픽 핸들로, line 그래픽 핸들로 구성된 벡터로 반환됩니다. 그래픽 핸들은 플롯에서 특정 선의 속성을 쿼리하고 수정하는 데 사용할 수 있는 고유 식별자입니다. y의 각 열에 대해 probplot은 다음 2개의 핸들을 반환합니다.

  • 데이터 점을 나타내는 선. probplot은 마커 기호(예: '+''o')를 사용하여 y의 각 데이터 점을 나타냅니다.

  • 확률 플롯의 이론적 분포를 보여주는 선으로, 파선으로 표시됩니다.

line 객체의 속성을 보고 설정하려면 점 표기법을 사용하십시오. 점 표기법 사용에 대한 자세한 내용은 속성값 액세스 항목을 참조하십시오. 설정할 수 있는 Line 속성에 대한 자세한 내용은 Line 속성 항목을 참조하십시오.

알고리즘

probplot은 표본 데이터의 분위수를 주어진 확률 분포의 분위수와 일치시킵니다. 표본 데이터는 dist의 선택에 따라 정렬되고 스케일링되어 x축에 플로팅됩니다. dist'lognormal', 'loglogistic' 또는 'weibull'인 경우 스케일링은 로그입니다. 그렇지 않은 경우, 스케일링은 선형입니다. y축은 확률 값으로 변환된, dist에 지정된 분포의 분위수를 나타냅니다. 스케일링은 주어진 분포에 따라 달라지며 선형이 아닙니다.

x축 값이, 크기가 N인 표본에서 i번째로 정렬된 값인 경우, y축 값은 데이터의 경험적 누적 분포 함수의 계산 지점 사이에 있는 중간점입니다. 중도절단되지 않은 데이터의 경우 중간점은 (i0.5)N와 동일합니다.

probplot은 플롯의 선형성을 평가하기 위해 기준선을 중첩합니다. 데이터가 중도절단되지 않은 경우, 선은 데이터의 제1사분위수와 제3사분위수를 지나갑니다. 데이터가 중도절단된 경우, 선은 그에 따라 이동합니다. 데이터가 중도절단되지 않고 dist'half normal'인 경우, probplot은 대신 제0사분위수와 제2사분위수를 사용합니다.

버전 내역

R2006a 이전에 개발됨