Julia 0.5を使用する。与えられた:行列上のジュリアで簡単な共分散を作成する方法
Supertech = [-.2 .1 .3 .5];
Slowpoke = [.05 .2 -.12 .09];
どのように私は共分散を得ることができます。 Excelでは、私はちょうど
=covariance.p(Supertech,Slowpoke)
を言うと、それは、私はこれは私が「StatsBase.cov()
を使用して動作するように取得する方法を見つけ出すことができない私には私の人生のために-0.004875
の正しい答えを与えます
012:私の素敵なを与えるX = [Supertech; Slowpoke]'
:のようなマトリックスにこれを入れてみましたVEの
4×2 Array{Float64,2}:
-0.2 0.05
0.1 0.2
0.3 -0.12
0.5 0.09
しかし、私はこの単純なことを動作させることはできません。 WeightedVectorタイプを使用しようとすると、次元のミスマッチが発生します。
ありがとうございます!今度は...ベクトル化された方法でこれを行う方法はありますか?A = nベクトルの行列を与えれば、私は 'cov(A、false)'と言うだけで、ベクトルまたは1次元配列を得ることができます。共分散のすべて? – bauhaus9
はい、それは[共分散行列](https://en.wikipedia.org/wiki/Covariance_matrix)を返します。たとえば、3列の行列の場合、3x3行列を返します。ここで、 '(i、j)'の要素は列 'i'と' j'の共分散です。 –
私はまだ混乱しています。上のコードを修正したものですが、今回は共分散を計算するためのループを使っています: 'StatsBaseを使う Supertech = [-.2; .1; .3; .5]; Slowpoke = [.05; .2; -12。 .09]; X =変形([SUPERTECH、はぐれた人]、4,2) MLEN =サイズ(X)[1] 手段= mean_and_cov(X)[1] covtmp =もの(MLEN) 手段[1] 用(x [i、j] - は[j]を意味する); covtmp [i] = covtmp [i] *(X [i、j] end end mycov = sum(covtmp)/ mlen; println( "行列Xの共分散を補正する"、mycov) println( "cov(X)="、cov(X)) ' – bauhaus9