특이 치를 제거하기에 좋은 형태?


12

소프트웨어 빌드 통계를 작성 중입니다. 통과 / 실패 및 경과 시간에 대한 각 빌드에 대한 데이터가 있으며 주당 ~ 200 개를 생성합니다.

성공률은 집계하기 쉽습니다. 45 %가 특정 주에 통과했다고 말할 수 있습니다. 그러나 경과 시간도 집계하고 싶습니다. 데이터를 너무 잘못 표시하지 않도록하고 싶습니다. 나는 프로에게 더 잘 물어 볼 것이라고 생각했다 :-)

지속 시간이 10이라고 가정하십시오. 합격 및 불합격 사례를 모두 나타냅니다. 일부 빌드는 즉시 실패하므로 기간이 비정상적으로 짧아집니다. 일부는 테스트 도중 중단되고 결국 시간이 초과되어 매우 오랜 시간이 걸립니다. 우리는 다양한 제품을 제작하므로 성공적인 구축에도 90 초에서 4 시간이 걸립니다.

다음과 같은 세트를 얻을 수 있습니다.

[50, 7812, 3014, 13400, 21011, 155, 60, 8993, 8378, 9100]

내 첫 번째 방법은 집합을 정렬하고 중간 값을 선택하여 중간 시간을 얻는 것입니다.이 경우 7812 (짝수 집합의 산술 평균을 신경 쓰지 않았습니다.)

불행히도 주어진 값 하나만 선택하기 때문에 많은 변형이 발생하는 것 같습니다. 따라서이 값을 추세로 계산하면 중간에있는 빌드에 따라 5000-10000 초 사이에서 튀어 오릅니다.

그래서 이것을 부드럽게하기 위해 다른 접근법을 시도했습니다. 이상 치를 제거하고 나머지 값에 대한 평균을 계산하십시오. 나는 그것을 tertiles로 나누고 중간에서만 작동하기로 결정했습니다.

[50, 60, 155, 3014, 7812, 8378, 8993, 9100, 13400, 21011] ->
[50, 60, 155], [3014, 7812, 8378, 8993], [9100, 13400, 21011] ->
[3014, 7812, 8378, 8993]

이것이 나에게 더 좋아 보이는 이유는 두 가지입니다.

  • 우리는 더 빠른 빌드에 대한 조치를 원하지 않습니다. 벌써 괜찮습니다.
  • 가장 긴 빌드는 시간 초과로 인해 발생할 수 있으며 항상 있습니다. 우리는 그것들을 감지하는 다른 메커니즘을 가지고 있습니다

그래서 이것이 내가 찾고있는 데이터 인 것 같지만 사실을 제거하여 매끄러움을 얻었 을까 걱정됩니다.

논쟁의 여지가 있습니까? 방법은 제정신입니까?

감사!


당신은 당신이 경과 시간을 측정하고 싶어 하는지 말하지 않았습니다 . 지불하는 총 기계 시간을 추정해야합니까? 커피 머신으로 얼마나 많은 여행을했는지 추정해야합니까? 시대를 알면 취할 행동은 무엇입니까?
StasK

또한 빌드 한 이기종 제품이있는 경우 수신 거부가 자연 스럽기 때문에 제거하지 않아야합니다. 주어진 프로젝트 (파일 수, 코드 라인 수, 루틴 수 등)의 복잡성에 대한 측정 값이있는 경우 복잡성으로 정규화 된 경과 시간에 관심이있을 수 있습니다. 시간이 지남에 따라 실제로 안정적이고 평평하게 만들고 싶다면 행동을 취해야 할 때 배울 수 없습니다.
StasK

@ StasK : 귀하의 의견에 감사드립니다, 이것은 귀중한 입력입니다. 이 작업은 이미 알려져 있습니다. 이러한 빌드 중 많은 시간이 너무 오래 걸리므로 더 빠르게 만들기 위해 노력해야합니다. 집계 척도를 사용하여 상황이 나아지고 있는지 확인하고 싶습니다.
Kim Gräsman

그리고 예, 이상적으로는 제품 별로이 작업을 수행하지만 소스 데이터는 해당 정보를 유지 관리하지 않으므로 배포에 대해 알고있는 것을 기반으로 사기를 수행합니다. 물론 이것은 시간이 지남에 따라 변할 수 있으며 다시 생각해야 할 수도 있습니다.
Kim Gräsman

데이터에 세 그룹이있는 것으로 보입니다. (i) 해당 빌드를 빌드합니다. (ii) 실패한 빌드 (그리고 당신은 오히려 빨리 실패하는 경향이 있다고 말합니다), (iii) 끊어진 빌드 (또는 거의)-그리고 당신이 조치를 취하려는 유일한 그룹이 아니라면 아마도 주된 것일 것입니다. 시간의 총계는별로 유용하지 않을 수 있습니다. 그러나 10 번째로 긴 빌드 또는 빌드 시간 분포의 10 번째로 높은 백분위 수는 관심있는 배포의 극단에있는 것을 더 잘 측정 할 수 있습니다. 그것은 EPA가 오염 모니터링에 사용하는 대략적인 것입니다.
StasK

답변:


8

당신의 접근 방식은 당신의 목표를 고려하여 나에게 의미가 있습니다. 간단하고 간단하며 작업이 완료되며 과학 논문을 작성하고 싶지 않을 수도 있습니다.

특이 치를 처리 할 때 항상 해야하는 한 가지는 이를 이해 하는 것입니다. 이미 이에 대해 훌륭한 일을하고 있습니다. 접근 방식을 개선하는 가능한 방법은 다음과 같습니다. 어떤 빌드에 걸려있는 정보를 사용할 수 있습니까? 당신은 당신이 "그것을 탐지하는 다른 메커니즘"을 가지고 있다고 언급했습니다. 당신은 그것들을 탐지 한 다음 샘플에서 그것들 만 제거 할 수 있습니까?

그렇지 않으면, 더 많은 데이터를 가지고 있다면, 비옥 한 것이 아니라 5 분위를 제거하는 것에 대해 생각할 수 있습니다. 그러나 어느 시점에서 이것은 큰 차이를 만들지 않을 것입니다.


"기타"메커니즘이라고 할 때이 데이터 세트와 완전히 다른 의미 이므로 여기서는이를 기반으로 결정을 내릴 수 없습니다. 우리는 매일 데이터를 집계하고 있으며 하루에 ~ 50 건의 빌드 만 얻으므로 5 분의 1은 너무 적은 데이터를 생성 할 수 있다고 생각하지만 제안 해 주셔서 감사합니다. 실험 해 볼 수 있습니다!
Kim Gräsman

13

당신이하고있는 것을 다듬은 평균이라고 합니다.

이전과 마찬가지로 각면에서 동일한 비율 (트리밍 비율)을 트리밍하는 것이 일반적입니다.

0 % (보통 평균)에서 최대 (거의) 50 % (중앙값까지) 사이의 모든 항목을 트리밍 할 수 있습니다. 귀하의 예는 각 끝에서 30 %가 잘 렸습니다.

참조 이 대답 하고 관련 위키 백과 문서를 .

[편집 : 이 주제에 대한 Nick Cox의 훌륭한 토론 을 참조하십시오 .]

상당히 합리적이고 다소 견고한 위치 추정기입니다. 일반적으로 비대칭 분포보다 근대 분포에 더 적합한 것으로 간주되지만 목적에 맞으면 사용할 수 없습니다. 가장 잘 다듬는 정도는 가지고있는 분포의 종류와 원하는 속성에 따라 다릅니다.

* 당신이 여기에서 무엇을 추정하고 싶은지는 명확하지 않습니다.

분포의 '중심'을 요약하는 다른 많은 강력한 접근법이 있으며, 그 중 일부는 유용 할 수도 있습니다. (예 : M- 추정자는 아마도 당신을 위해 일부를 사용할 수 있습니다)

[ 정확한 평균을 사용하기 위해 해당하는 변동성 측정 값이 필요한 경우, Winsorized 표준 편차가 유용 할 수 있습니다 ( 실제로 sd를 계산할 때 잘라낼 때 잘라낸 값을 가장 극단적 인 값으로 대체하십시오) 자르지 않았습니다).]


실제로 배포판의 일반적인 모양을 확인하지는 않았지만 사람들이 변경하는 위치에 따라 주마다 달라집니다. 실제로 비뚤어 질 수 있습니다.
Kim Gräsman

해킹에 이름을 줘서 고마워, btw 그것은 자신감 :-) 고무
김 Gräsman

2

또 다른 방법은 모든 페어 단위 평균의 중앙값을 계산하거나 부트 스트랩을 수행하는 것입니다.

최신 정보:

모든 쌍별 평균의 중앙값을 Hodges–Lehmann 추정기 라고합니다 . 이 추정기는 일반적으로 효율이 높습니다. Scott L. Hershberger 의이 백과 사전 항목 은 다음과 같이 말합니다.

중앙값과 Hodges-Lehmann 추정값이 모두 비대칭 분포의 표본 평균보다 바람직하지만 Hodges-Lehmann 추정값은 중앙값보다 평균에 비해 점근 비교 효율이 더 큽니다.

부트 스트랩은 관련성이 낮고 계산 집약적 일 수 있지만 대체로 작은 무작위 데이터 샘플을 가져 와서 해당 서브 샘플의 평균을 계산하고 여러 번 수행하고 모든 평균의 중앙값을 계산할 수 있습니다.

두 경우 모두 더 이상 데이터의 값 중에서 값을 선택할 필요가 없지만 (일반적인 중앙값을 계산할 때) 대신 데이터의 하위 집합에서 많은 평균 중에서 선택합니다.


2
이러한 방법의 장단점을 설명 할 수 있습니까? 단선 답변은 충분하지 않습니다.
StasK

1
나는 더 많은 설명과 함께 업데이 트 만들기 위해 노력했다
핀 ARUP 닐슨

쌍별 평균과 부트 스트랩은 전체 데이터 세트에 대해 여러 가지 재 계산을 포함하는 것으로 보입니다. 표본은 일반적으로 매우 작으며 (<500 값) 아마도 문제가 아니지만 더 복잡해 보입니다. 잘린 평균이 너무 무딘 것으로 판명되면 실험에 더 많은 접근 방법이 있다는 것을 아는 것이 좋습니다. 감사!
Kim Gräsman

1

당신이하고있는 일이 합리적으로 보입니다 : 단지 정보를 위해서 나는 비슷한 과정을 위해 다음과 같은 과정을 자주 사용합니다.

최소, Q1, 중앙값, Q3, 최대 다섯 숫자 요약을 계산합니다. 사 분위수 범위 계산 : Q3-Q1. Q1-IQR * X 및 Q3 + IQR * X에서 특이 치 '울타리'를 설정하십시오. 여기서 'X'의 합리적인 값은 1.5입니다.

위의 Excel과 그림을 사용하면 ( 'X'**에 1.5 사용) 하나의 상위 특이 치가 생성됩니다.

MIN 50
Q1  3014
MEDIAN  8095
Q3  9073.25
MAX 21011
IQR 6059.25
UPPER FENCE 18162.125
LOWER FENCE -6074.875

따라서 아래쪽 울타리는 실제로 귀하의 예에 유용하지 않거나 현실적이지 않습니다. 이는 특정 데이터의 의미를 이해하는 중요성에 대한 다른 게시물의 요점을 뒷받침합니다.

(** '1.5'규칙에 대한 인용문이 하나 있습니다. 저는 그것이 정식이라고 말하지는 않지만 저에게 합리적인 출발점 인 것 같습니다. http://statistics.about.com/od/Descriptive-Statistics/a/ What-Is-The-Interquartile-Range-Rule.htm )

IQR 자체에 해당하는 데이터 포인트 만 사용하기로 결정할 수도 있습니다. 이는 합리적인 결과를 산출하는 것으로 보입니다 (메서드의 멤버쉽이 매우 유사 함).

동일한 데이터를 사용하면 다음과 같은 데이터 포인트가 '관심 영역'에 배치됩니다.

7812
3014
13400
21011
8993
8378
9100

Boxplot에서 :이 점들은 모두 다이어그램의 상자 부분 (whiskers 부분이 아닌) 내에 있습니다.

이 목록에는 원래 목록에없는 일부 항목 (더 오래 실행 된 빌드)이 포함되어 있습니다. 하나의 목록이 어떤 식 으로든 더 정확한지 말할 수 없습니다. (다시 말해서 데이터 세트를 이해하는 데 도움이 됨).


고마워, 이것은 원칙적으로 내가 이미하고있는 것에 매우 가깝습니다. 이 방법이 데이터 세트를 분할하는 것보다 어떤 방법으로 더 좋을까요?
Kim Gräsman

1
나는 어느 쪽의 방법이 더 나은지 아닌지를 실제로 말할 수 없다 : 나는 통계 서적 / 사이트에서 읽은 것을 기반으로 이것을 제안했다. 이 방법이 추가하는 것 중 하나는 '울타리'를 자신이 적절하다고 생각하는 것 (1.5 인자 조정)으로 조정할 수 있다는 것입니다. 중간 3 분의 1을 차지하는 것이 잠재적으로 높은 특이 치를 포함하는 데 더 취약 할 수 있습니다 (울타리 외부에서 더 잘 분류 될 수 있음) .....하지만 말할 수는 없습니다. Quartiles 사용에 대한 또 다른 사항은 5 숫자 요약이 잘 이해되고 일반적으로 사용된다는 것입니다.
monojohnny

추가 된 세부 사항에 감사드립니다! 파이썬 에서이 작업을 수행하므로 이미 데이터 세트를 N 부분으로 분할 한 다음 중간 부분을 꺼내는 함수가 있습니다. 대신 5 개 또는 7 개의 파티션을 만들기 위해 한 문자로 변경되었습니다. 그러나 귀하의 요점은 잘 이해 되었으므로이 문제에 접근하는 또 다른 일반적인 방법을 보는 것이 좋습니다. 다시 감사합니다.
Kim Gräsman

나에게 소리의 벌금 : - : 나는 분위와 (오히려 변수 파티션을하는 것보다) 울타리를 사용하는 방법에 대한 강조하기 위해 한 가지 더 추가 할 것입니다 그들은 바로 상자 그림에 매핑하는 것입니다 en.wikipedia.org/wiki/Box_plot (다른 것들 사이에) 허용 다른 분포를 그래픽으로 비교하는 표준 방법.
monojohnny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.