我该如何衡量波动率?

时间:2009-08-26 19:01:28

标签: math statistics formula measure volatility

我正试图确定排名的波动性。

更具体地说,在X数据点上排名可以是1到16(数据点的数量最多变化为30)。

我希望能够衡量这种波动性,然后以某种方式将其映射到百分比。

我不是一个数学极客,所以请不要向我吐出复杂的公式:)

我只想以最简单的方式对此进行编码。

5 个答案:

答案 0 :(得分:3)

我认为最简单的第一遍是标准偏差超过X数据点。

答案 1 :(得分:2)

我认为Standard Deviation正是您所寻找的。有一些公式需要处理,但计算起来并不难。

答案 2 :(得分:2)

此链接可能有助于解释如何以简单的术语计算标准偏差:How To Calculate Standard Deviation

答案 3 :(得分: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可以作为“衰减时间”或某些东西:

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(在这种情况下,排名的绝对差异)。

答案 4 :(得分:1)

鉴于你有一个小样本集(你说最多30个数据点)并且标准偏差很容易受到异常值的影响,我建议使用interquartile range作为波动率的度量。这是一个微不足道的计算,可以对您的小样本集上的数据进行有意义的表示。