相関係数の計算
2つの株価の相関係数を求めるために作成した、相関係数の関数についてのメモ。
static float corr()
{
float[] x = new float[3];
float[] y = new float[3];
x[0] = 2;
x[1] = 3;
x[2] = 1;y[0] = 4;
y[1] = 9;
y[2] = 2;//平均
float c = x[0]+x[1]+x[2];
float d = y[0]+y[1]+y[2];
c /= x.Length;
d /= y.Length;//分散
float bun_x = (x[0]-c)*(x[0]-c)+(x[1]-c)*(x[1]-c)+(x[2]-c)*(x[2]-c);
float bun_y = (y[0]-d)*(y[0]-d)+(y[1]-d)*(y[1]-d)+(y[2]-d)*(y[2]-d);
bun_x /= x.Length;
bun_y /= y.Length;//標準偏差
float hen_x = (float)Math.Sqrt(bun_x);
float hen_y = (float)Math.Sqrt(bun_y);//共分散
float cov = (x[0]-c)*(y[0]-d)+(x[1]-c)*(y[1]-d)+(x[2]-c)*(y[2]-d);
cov /= x.Length;//相関係数
float corr = cov/(hen_x*hen_y);return corr;
}
単純に平均値→分散→標準偏差→共分散→相関係数 といった流れで計算。日経平均とある銘柄の株価の相関係数を計算し、相関関係を考えるには前日比を配列として格納してあげればいいと思う。
| 固定リンク | コメント (0) | トラックバック (1)












最近のコメント