안녕,
저는 Mahalanobis Distance를 사용하여 다변수 이상값 분석을 위한 UCL을 가져오는 스크립트를 작성하는 것을 좋아합니다.
JMP 메뉴를 통해 UCL을 얻을 수 있지만 어쨌든 UCL을 가져와 스크립트에서 변수 이름으로 설정할 수 있습니다.
당신의 도움에 감사드립니다. 감사.
도움을 주셔서 대단히 감사합니다. 카메론. 이것은 매우 도움이 됩니다.
안녕 @에 ,
보고서에서 이 값을 가져오는 것이 약간 까다로워 보이지만 "이상값 거리 저장" 작업을 스크립팅한 다음 열 속성 "Mahal. 가치"는 그 행동의 결과입니다.열 속성 값을 변수로 저장하는 것은 그리 어렵지 않습니다.다음은 두께 샘플 데이터 세트를 사용하는 예입니다.
dt = Open("$SAMPLE_DATA/Quality Control/Thickness.jmp");
multi = dt << Multivariate(
Y(
:Thickness 01,
:Thickness 02,
:Thickness 03,
:Thickness 04,
:Thickness 05,
:Thickness 06,
:Thickness 07,
:Thickness 08,
:Thickness 09,
:Thickness 10,
:Thickness 11,
:Thickness 12
),
Estimation Method( "Row-wise" )
);
multi << Mahalanobis Distances( 1 , Save Outlier Distances);
mahal_ucl = Column("Mahal. Distances") << Get Property("Mahal. Value");그러나 이 제한은 실제로 함수에서 계산하기가 정말 쉽습니다.Hotelling의 T^2 차트에서 UCL의 제곱근일 뿐입니다.
Mahal_UCL = function({p,m},
sqrt(((m-1)^2)/m*beta quantile(0.95,p/2,(m-p-1)/2));
);공식은 도움말 메뉴의 49페이지 다변량 방법 책에도 나와 있습니다(도움말 > 책 > 다변수 방법).
다음은 두께 데이터를 사용하는 예입니다.Mahalanobis 통제 한계는 4.36입니다. 이전에 제공된 함수를 사용하여 m=50 데이터 포인트 및 p=12 변수에 대한 마할라노비스 거리 UCL을 계산할 수 있습니다.다음은 일치하는 제어 한계를 보여주는 로그 출력입니다.
Mahal_UCL(12,50);
/*:
4.36283881449635
Mahal_UCL 함수는 alpha = 0.05로 하드 코드를 작성했습니다. 다음과 같이 alpha를 세 번째 매개변수로 만들 수 있습니다.
Mahal_UCL = function({p, m, alpha},
sqrt( ( ( m-1 )^2 )/m*beta quantile( 1-alpha, p/2, ( m-p-1 )/2 ) );
);