#julia
Вопрос:
У меня есть следующий массив, который мне нужен, чтобы определить его дисперсию:
julia> a = [5, 6, 7, 8, 10, 12, 12, 17, 67, 68, 69, 72, 74, 74, 92, 93, 100, 105, 110, 120, 124]
21-element Vector{Int64}:
5
6
7
8
10
12
12
17
67
68
⋮
74
74
92
93
100
105
110
120
124
Как я могу сделать это в Джулии?
Ответ №1:
Джулия имеет var
функцию, встроенную в стандартный Statistics
модуль. Так что вы можете просто сделать:
using Statistics
var(a)
Пакет StatsBase.jl не экспортирует var
функцию, поэтому ваш код не будет работать при использовании в новом сеансе Julia. Вместо этого вам придется написать StatsBase.var(a)
(или добавить using Statistics
).
Что добавляет StatsBase.jl к var
функции, так это то, что она определяет дополнительные методы, позволяющие вычислять взвешенную дисперсию. Так, например, следующее работает с StatsBase.jl (но в настоящее время не работало бы без него):
julia> using Statistics
julia> using StatsBase
julia> var([1,2,3], Weights([1,2,3]))
0.5555555555555555
Ответ №2:
Если кто-то хочет рассчитать отклонение от первых принципов, вы можете сделать это:
function my_variance(x)
n = length(x)
μ = sum(x) / n
sum((x .- μ) .^ 2) / (n - 1)
end
Но, пожалуйста, просто используйте StatsBase.var
!