Julia で統計解析 第 1 章 Julia の実行環境¶
Version()
最新バージョン 2024-07-18 11:37
Julia は,R や Python と同じスクリプト言語であるが,C や Fortran などのコンパイラ言語に匹敵する計算速度を持ち,高度な数値計算やデータ解析にも最適である。
必要なファイルをダウンロードする¶
ブラウザで以下のページを表示する。
The Juilia Programming Language
https://julialang.org/
Download ボタンをクリックして表示されるページの中程に,図のような部分がある。
Windows, macOS, Linux, FreeBSD から自分の OS に合ったものを選択する。
x86, ARM の2種類ある場合には,いわゆる M1/M2 チップが入っているマシンでは ARM を選ぶほうがよい(x86のほうでも動くが最適ではない)。
最新版は,数ヶ月ごとのバージョンアップがあるので,ときどきチェックするとよい。
下の方には,ちょっと前の(枯れた)版 (2022/07/19 にリリースされた v1.6.7 版)がリストアップされている。最新版で一部動かないパッケージがある要な場合にはこれらを選べばよい(複数のバージョンを同時にインストールすることもできる)。
Julia のインストール¶
ダウンロードされたファイルを対象として,各 OS ごとの手順(他のアプリケーションをインストールするのと同じ手順)にしたがえばよい。
たとえば,macOS の場合は,ダウンロードしたファイルをダブルクリックして出てくるフォルダ中の Julia-x.x.app
をアプリケーションフォルダにコピーする。
macOS の場合は,アプリケーションフォルダを開き,Julia-x.x.app
をドックに入れておくと,ドックのアイコンをクリックするだけで,Julia が起動される。
Windows の場合はダウンロード進行状況ウインドウにあるダウンロードファイルをクリックするだけでインストールでき,デスクトップとタスクバーに Julia のアイコンが配置される。アイコンをクリックすれば,Julia が起動される。
Julia を起動し終了する¶
Julia-x.x.app
をクリックすることにより,Julia が起動する。
これは R での「R コンソール」と同じで,プロンプトにしたがって計算式などを入力すれば,入力に対する出力が表示される。Julia では REPL; Read-Eval-PrintLoop と呼ぶ。
終了するときには,プロンプトが出ているときに,control-D
を押す(control
キーを押しながら D
キーを押す)。
作業ディレクトリを変える¶
現在の作業ディレクトリを表示するには,pwd() を使う。
julia> pwd()
"/Users/foo/"
作業ディレクトリを変更するときには,cd() を使う。
julia> cd("/Users/foo/Desktop/Julia")
正しく変更できたかどうかは pwd() で確かめることができる。
julia> pwd()
"/Users/foo/Desktop/Julia"
Julia の環境設定をする¶
たとえば,前節の作業ディレクトリの変更の場合,毎回同じ作業ディレクトリを設定したいような場合には,~/.julia/config ディレクトリにある startup.jl ファイルに設定事項を記載しておけばよい。
startup.jl ファイルがあるかを確認¶
Mac の場合は「ターミナル」,Windows の場合は「Windows PowerShell」で以下を実行する(プロンプトはそれぞれ違うが、以下では % と表記しておく)。
% cd ~/.julia
% ls -l
表示されるファイル名の中に config
というのがない場合には 1.5.3. へ進む。
config
がない場合には以下のようにして新しいディレクトリを作成後、1.5.2. へ進む。
% mkdir config
config がなかった場合¶
以下のように入力する(青字の部分をコピー・ペーストすればよい)。
% echo 'cd("/Users/foo/Julia")' > config/startup.jl
% cat config/startup.jl
2 行目を入力後
cd("/Users/foo/Julia")
が表示されれば設定完了である。
設定を追加する場合には次の 1.5.3. へ進む。
startup.jl がある場合¶
ls -l
で以下のように startup.jl
がある場合には
total 8
-rw-r--r-- 1 foo staff 109 1 15 13:06 startup.jl
% open config/startup.jl
により startup.jl
が(あなたがよく使っているエディタで)開くので,追加書きして保存する。コマンドラインでの操作に慣れている場合は vi
などのエディタで編集してもよい。
変更内容の確認¶
新しく startup.jl
を作った場合や,追加書きした場合は cat startup.jl
でファイルの内容を確認しておこう。
% cat ~/.julia/config/startup.jl
cd("/Users/foo/Julia/")
オンラインヘルプを使う¶
Julia の 対話モード(REPL) で,?
を押せば,プロンプトが >julia
から help?>
に変わる。オンラインヘルプを求めたい関数名などを入力すれば,説明が得られる。
たとえば,exit
関数は,対話モードで exit()
と入力するのは,^D
を入力するのと同じで,Julia を終了するという説明が得られる。
help?> exit
search: exit atexit textwidth process_exited indexin nextind IndexLinear TextDisplay istextmime Exception
exit(code=0)
Stop the program with an exit code. The default exit code is zero, indicating that the program completed successfully. In an interactive session, exit() can be called with the keyboard shortcut ^D.
パッケージを利用する¶
特に余分なパッケージを使わなくても様々な計算はできるが,場合によってはパッケージが必要になることがある。
たとえば,2, 3, 5, 7, 11
の 5 個のデータの平均値を計算することを考えよう。
データを x
という変数に格納するのは以下のようにする。データをカンマで区切って全体を [ ]
で括り,x =
で x
に代入することを表す。
julia> x = [2,3,5,7,11]
入力すると,結果が返される。なお,結果の表示が不要な場合は, REPL 入力の文末に ;
を付ければよい。
5-element Vector{Int64}:
2
3
5
7
11
さて,平均値を求める関数は mean
だろうと決めてかかって,以下のようにすると,エラーが発生する。
julia> mean(x)
ERROR: UndefVarError: mean not defined
Stacktrace:
[1] top-level scope
@ REPL[5]:1
実は,mean
という関数は(よく使う関数なのに)Statistics
パッケージに入っている。
そもそも,Statistics
パッケージがまだコンピュータの中にない場合には,新たに追加しなければならない。
プロンプトが >julia
のとき,]
キーを押すと,プロンプトが (@vx.x) pkg>
に変わる。
そこで,add Statistics
と入力する。
(@vx.x) pkg> add Statistics
その後処理内容が表示され,エラーがなければ (@vx.x) pkg>
のときに delete
キーを押せばプロンプトがもとに戻る。
パッケージの add
はこれによって,パッケージがあなたのコンピュータ上に用意されたので,これ一回きりでよい(パッケージをアップデートするひつようが出れば update Statistics
とすればよい)。
関数を使うには,まず using Statistics
が必要である。これは,Statistics
を使う必要があるときは Julia セッションで 1 回行えばよい(一度 Julia を終了して,再度 Julia を立ち上げた場合にはまた 1 回は行う必要がある)。
julia> using Statistics
これで始めて mean()
関数が使える。
julia> mean(x)
5.6
毎回 using
を行うのが嫌だという場合は,前節の「Julia の環境設定をする」に書いた startup.jl
によく使うパッケージの using
を書いておくのも一つの便法であろう(ただし,Julia の立ち上げ時に若干余分な時間が必要になる)。
% cat startup.jl
cd("/Users/foo/Julia/")
using Statistics
using LinearAlgebra
などなど
パッケージのインストールは必要に応じて行えばよいが、よく使いそうなパッケージをまとめてインストールしておくとよいかもしれない。
(@vx.x) pkg> add CSV, DataFrames, Plots, Distributions, FreqTables, GLM, HypergeometricFunctions, HypothesisTests, MultivariateStats, SpecialFunctions, StatsBase, StatsPlots, StringEncodings, Tables, XLSX, LinearAlgebra, Statistics
エディタを使う¶
Julia では R のエディタウインドウのようなものはない。Julia では R のエディタウインドウのようなものはない。替わりに,Atom とか Jupyter lab がある。
Atom¶
Atom はテキストエディタであるが,プログラムの一部を選択して実行することができる。Windows 版もある。
Atom は R のエディタウインドウのようなものである。R のエディタウインドウや RStudhio では選択して実行した結果は別のウインドウに表示されるが,Atom では同じウインドウに表示される。
使用中のイメージは以下のようである。
Jupyter lab¶
Jupyter lab はプログラムとその実行結果と任意の文章を統合して管理するアプリケーションである。Windows 版もある。
https://github.com/jupyterlab/
使用中のイメージは以下のようである。
ページ中の
jupyterlab-desktop Public
JupyterLab desktop application, based on Electron.
からダウンロードできる。
結果を保存する¶
対話モード(REPL)での結果は,必要な部分を他のエディタなどへコピー・ペーストする他,ターミナル の「シェル --> テキストを(選択した部分を)書き出す...」を利用することもできる。
Atom は,プログラムを保存できるが,実行結果は保存されない。必要ならば,注釈として添付しておけばよい。
Jupyter lab は,文書,プログラム,実行結果をまとめて保存できる。