Julia1.0에서 배우는 수리 통계학(②정규 분포와, 묘화...)

5741 단어 Julia

Julia의 표준 정규 분포



이번에는 통계학의 기본 키의 정규 분포 관계. 선인의 엔트리에 배워 담담하게 해 간다. 가능한 한, julia다움을 살린 쓰는 법을 추구하고 싶다.
- 참고 mWsoft의 표준 정규 분포 등 #3년 반 정도 전의 julia 엔트리

표준 정규 분포는 교과서적으로
① f(x) = \frac {1} { \sqrt {2 \pi} } \exp(- \frac {x^2} {2})

일 것이다.

이번에는 줄리아에서 쓰기 쉽도록
② f(x) = \frac {exp(- \frac {x^2} {2})} { \sqrt {2 \pi} } 

그리고 변형하여,
또한,
③ \left\{
\begin{array}{ll}
fo(x) = - \frac   {x^2} {2} \\
f(x) = \frac {exp(fo(x))} { \sqrt {2 \pi} }
\end{array}
\right.

와 분리해, 도중의 수치를 확인할 수 있도록 해 둔다.

julia에서 ③을 쓰면
#標準正規分布
fo(x) = -x^2 / 2
f(x) = exp(fo(x)) / (2π)

라고 쓸 수 있다.

julia 연산 순위에서
julia> (2π) < 2π
true

라는 점에 주의하자. 연산 순위가 자명하지 않을 때는 괄호를 붙여 둔다.

이제 fo, f의 각 값을 확인해 봅시다.

std1.jl
#標準正規分布の函数fを定義
fo(x) = -x^2 / 2
f(x) = exp(fo(x)) / (2π)

#プリント関数(副作用あり)
P(g,n) = let 
    println("函数名:" , g)
    result = [g(x) for x in -n:n] # 内包表記
    println(result)
end

P(fo, 4)
P(f, 4)

...올레올레 julia 용어로 죄송하지만, 부작용이 없는 수학적 function을 함수, 부작용 있는 FUNCTION을 함수라고 부르기로 한다. 또한 파이썬과 거의 동일한 목록 내포 표기를 사용합니다.

실행 결과:

julia.exe std.jl
함수명:fo
[-8.0, -4.5, -2.0, -0.5, 0.0, -0.5, -2.0, -4.5, -8.0]
함수명:f
[0.00013383, 0.00443185, 0.053991, 0.241971, 0.398942, 0.241971, 0.053991, 0.00443185, 0.00013383

0일 때가 최대치를 취해, y축에 선대칭인 표준 정규 분포가 표현되고 있는 것 같다.
함수명을 그대로 print 할 수 있는 것이 좋다.

그래프 그리기



왠지 REPL에서만 움직였다.
도입한 버키지에의 패스를 끊을 수 없는 것일까.
묘화 관계는 환경 의존일 것이며, 마음이 향하면 조사하기로 하고 싶다.

Pkg.add("Plots")
로 설치. 그 후,
Pkg.add("GR")
한다.
julia> using Plots

julia> gr()
Plots.GRBackend()

julia> plot(f)

그리기 결과:



windows 환경에 Qt 주위의 환경이 구축되는 것 같다.

『현대수리통계학의 기초』의 세계로



이 상태에서 다양한 확률 분포를 julia로 쓰고 싶다.
나침반으로 하는 것은 새로운 교과서인 『현대수리통계학의 기초』(공립출판, 2017).

서적중의 연습 문제와 회답을 이하에 공개해 주는 것 같기 때문에, 연습 문제 주위를 중시로.
htps : // / s. 오, ぇ. 코 m / 해 / k 타츠야 77 / 아안다이

좋은 웹페이지 즐겨찾기