2009-08-26 5 views
1

나는 순위의 변동성을 결정하려고 노력 중이다.어떻게 변동성을 측정 할 수 있습니까?

보다 구체적으로, 순위는 X 데이터 포인트에 대해 1에서 16까지입니다 (데이터 포인트의 수는 최대 30 개까지 다양합니다).

나는이 변동성을 측정하고 어떻게 든 백분율로 매핑 할 수 있기를 바랍니다.

나는 나를 너무 복잡한 수식을 뱉어하지 마십시오 수학 괴짜 아니에요 :)

난 그냥 가능한 간단한 방법으로이 문제를 코딩합니다.

+0

주어진 답변에 빠진 것이 있습니까? –

답변

2

이 링크는 간단한 용어 표준 편차를 계산하는 방법을 설명하는 데 도움이 될 수 있습니다 : 당신이 정말 간단 무언가를 원하는 경우에 How To Calculate Standard Deviation

+0

완벽하게 작업하고 와우 - 코딩하기도 쉬웠습니다 :) – GeoffreyF67

3

가장 쉬운 첫 번째 단계는 X 데이터 점에 대한 표준 편차가 될 것이라고 생각합니다.

2

나는 Standard Deviation이 당신이 찾고 있다고 생각합니다. 처리 할 수식이 있지만 계산하기가 어렵지 않습니다.

1

당신이 변동성 연속 계급 사이의 절대 차이의 평균 걸릴 수 있습니다. 이것은 재귀 적으로 보너스가 추가되었습니다. 초기화에 대한 소개이 :

double sum=0; 
for (int i=1; i<N; i++) 
{ 
    sum += abs(ranks[i]-ranks[i-1]); 
} 
double volatility = sum/N; 

그런 다음 시간 N + 1의 새로운 순위를 사용할 수있는 경우 변동성을 업데이트하는 당신은 K 귀하의 변동성 측정 변동성의 변화에 ​​적응하는 속도를 결정하는 매개 변수 K를 소개합니다. 높은 K는 K가 생각 될 수 있으므로, 느린 적응을 의미는 "디케이 시간"또는 somesuch로서 :

double K=14 //higher = slower change in volatility over time. 
double newvolatility; 
newvolatility = (oldvolatility * (K-1) + abs(rank[N+1] - rank[N]))/K; 

이도 (이 경우 순위의 차이 절대 값)은 moving average로 알려져있다.

1

작은 샘플 세트 (최대 30 개의 데이터 포인트라고 함)와 표준 편차가 이상치의 영향을 쉽게 받는다는 것을 감안할 때 휘발성의 척도로 interquartile range을 사용하는 것이 좋습니다. 그것은 사소한 계산이고 작은 샘플 세트에 퍼져있는 데이터의 의미있는 표현을 제공합니다.