Julia求概率分布
Distributions库
1、使用库
julia> using Distributions
2、生成正太分布模型n1
julia> n1 = Normal(20, 2.0)
Normal{Float64}(μ=20.0, σ=2.0)
julia> params(n1) # 查看参数
(20.0, 2.0)
julia> fieldnames(typeof(n1))
(:μ, :σ)
3、生成满足n1模型的随机数
julia> rand(n1,100)
100-element Array{Float64,1}:
22.998779735973336
⋮
18.929294779535354
18.0287056146861
4、分析随机数Normal分布的参数值
julia> fit(Normal, rand(10))
Normal{Float64}(μ=0.6388383569051563, σ=0.32661323339809056)
5、二项分布
julia> rand(b, 1000)
1000-element Array{Int64,1}:
16
⋮
15
18
6、概率密度
julia> n = Normal()
Normal{Float64}(μ=0.0, σ=1.0)
julia> pdf(n, 0.4)
0.36827014030332333
julia> pdf(n, 0) # 标准正太分布在x=0处的概率密度为0.398...
0.3989422804014327
7、分布函数
julia> cdf(n, 0.4)
0.6554217416103242
8、分位数
julia> quantile.(n, [0.25, 0.5, 0.95])
3-element Array{Float64,1}:
-0.6744897501960818
0.0
1.6448536269514717
StatsBase库
1、使用库
julia> using StatsBase
2、按顺序对比,计算不相等的元素个数
julia> a = collect(1:6)
6-element Array{Int64,1}:
1
2
3
4
5
6
julia> b = collect(4:9)
6-element Array{Int64,1}:
4
5
6
7
8
9
julia> countne(a,b)
6
3、按顺序对比,计算相等的元素个数
julia> counteq(a,b)
0
4、L1距离和L2距离
julia> L1dist(a,b) # abs(a[1]-b[1])+...+abs(a[n]-b[n])
18.0
julia> L2dist(a,b) # sqrt((a[1]-b[1])^2)+...+sqrt((a[n]-b[n])^2)
7.3484692283495345
julia> meanad(a,b) # L1dist(a,b) / n
3.0
5、采样数据
julia> sample(a) # 采样一次
2
julia> sample(a, 3) # 采样三次
3-element Array{Int64,1}:
6
5
2
julia> a1 = [1, 10, 20, 30]
julia> a2 = [100.0, 200.0, 300.0]
julia> sample!(a1, a2) # 按a2的类型,从a1中取出length(a2)次数据
3-element Array{Float64,1}:
20.0
1.0
30.0
6、其他函数
julia> x = [1.0, 2.0, 3.0, 4.0]
julia> autocov(x)
4-element Array{Float64,1}:
1.25
0.3125
-0.375
-0.5625
julia> autocor(x)
4-element Array{Float64,1}:
1.0
0.25
-0.3
-0.45
版权声明:本文为weixin_44035880原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。