使用 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