0
使用Julia 0.5。鑑於:如何在矩陣中創建Julia的簡單協方差
Supertech = [-.2 .1 .3 .5];
Slowpoke = [.05 .2 -.12 .09];
如何在世界上我可以得到一個協變。在Excel中我只說
=covariance.p(Supertech,Slowpoke)
,這讓我的-0.004875
正確答案對我的生活中,我無法弄清楚如何得到這個使用工作StatsBase.cov()
我已經試過投入矩陣此類似:
X = [Supertech; Slowpoke]'
,給了我一個很好的:
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)'並且得到一個向量或一維數組所有的協方差? – bauhaus9
是的,但它會返回[協方差矩陣](https://en.wikipedia.org/wiki/Covariance_matrix)。例如,使用三列矩陣,它將返回一個3x3矩陣,其中'(i,j)'處的元素是列「i」和「j」之間的協方差。 –
好的,我還是很困惑。這裏是上面的代碼的修改版本,這次用循環的努力來計算協方差的工作:'使用StatsBase Supertech = [-.2; 0.1; 0.3; 0.5]; Slowpoke = [.05; 0.2; -.12; 0.09]; X =重塑([SUPERTECH; SLOWPOKE],4,2) MLEN =尺寸(X)[1] 手段= mean_and_cov(X)[1] covtmp =酮(MLEN) 手段[1] 爲(x) covtmp [i] = covtmp [i] *(X [i,j] - 平均值[j]); i = 1:mlen 對於j = 1:rank 結束 結束 mycov = sum(covtmp)/ mlen;println(「矩陣的正確協方差X =」,mycov) println(「鑑於cov(X)=」,cov(X))' – bauhaus9