如何在矩阵上的 Julia 中创建简单协方差

  • 本文关键字:创建 简单 方差 Julia julia
  • 更新时间 :
  • 英文 :


使用 Julia 0.5. 鉴于:

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 

但我无法让这个简单的事情工作。 当我尝试使用加权矢量类型时,我不断提出维度不匹配。

语法

[-.2 .1 .3 .5]不创建向量,而是创建单行矩阵。cov函数实际上是在基 Julia 中定义的,但它需要向量。所以你只需要首先使用带逗号的语法来创建向量([-.2, .1, .3, .5]),或者你可以使用 vec 函数将矩阵重塑为一维向量。默认情况下,它还使用"更正的"协方差,而 Excel 使用"未更正的"协方差。 可以使用第三个参数指定不需要此更正。

julia> cov(vec(Supertech), vec(Slowpoke))
-0.0065
julia> cov(vec(Supertech), vec(Slowpoke), false)
-0.004875