10 統計学の基礎 74
k
0 10 20 30 40 50
Probability
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
= 1) λ
Poisson ( Gaussian (µ = 1, s = 1) = 3)
λ
Poisson ( Gaussian (µ = 3, s = 3) = 10)
λ
Poisson ( Gaussian (µ = 10, s = 10) = 20)
λ
Poisson ( Gaussian (µ = 20, s = 20) = 30)
λ
Poisson ( Gaussian (µ = 30, s = 30)
図10.3 様々な平均値を持つポアソン分布と正規分布の比較
10 統計学の基礎 75
コード10.1 Poisson.C 1 void Poisson() {
2 const Int_t kN = 5;
3 const Double_t kLambda[kN] = {1, 3, 10, 20, 30};
4
5 TCanvas* can = new TCanvas;
6 can->DrawFrame(-5, 0, 50, 0.4, ";#it{k};Probability");
7
8 TGraph* graphP[kN];
9 TGraph* graphG[kN];
10
11 TLegend* leg = new TLegend(0.3, 0.65, 0.85, 0.85);
12
13 for (Int_t i = 0; i < kN; ++i) { 14 graphP[i] = new TGraph;
15 for (Int_t j = 0; j <= 50; ++j) {
16 graphP[i]->SetPoint(j, j, TMath::PoissonI(j, kLambda[i]));
17 }
18 graphP[i]->Draw("pl same");
19 graphP[i]->SetMarkerColor(i + 1);
20 graphP[i]->SetMarkerStyle(20 + i);
21 graphP[i]->SetLineColor(i + 1);
22 }
23
24 for (Int_t i = 0; i < kN; ++i) { 25 graphG[i] = new TGraph;
26 for (Int_t j = -5; j <= 40; ++j) {
27 Double_t p = (TMath::Erf((j + 0.5 - kLambda[i])/TMath::Sqrt(2*kLambda[i])) + 1)/2.
28 - (TMath::Erf((j - 0.5 - kLambda[i])/TMath::Sqrt(2*kLambda[i])) + 1)/2.;
29 graphG[i]->SetPoint(j + 5, j, p);
30 }
31 graphG[i]->Draw("l same");
32 graphG[i]->SetLineStyle(2);
33 graphG[i]->SetLineColor(i + 1);
34 }
35
36 for (Int_t i = 0; i < kN; ++i) {
37 leg->AddEntry(graphP[i], Form("Poisson (#it{#lambda} = %2.0f)", kLambda[i]), "lp
");
38 leg->AddEntry(graphG[i], Form("Gaussian (#it{#mu} = %2.0f, #it{s} = #sqrt{%2.0f })", kLambda[i], kLambda[i]), "l");
39 }
40
41 leg->SetNColumns(2);
42 leg->Draw();
43 }
76
付録 A パッケージ管理システム
macOSやLinuxにソフトウェアやライブラリを追加インストールする場合、主に3つの方法があります。1つ目は
インストーラの付属したソフトウェアをダウンロードしたり、AppleのApp Storeを経由してインストールする方法で す。例えばLINEのパソコン用アプリケーションなどがこれに該当します。またPythonもインストーラを配布してい ますが、この使用はあまり一般的ではないように思います*1。
2つ目はパッケージ管理システム(package management system、package manager)を使用する方法です。これは主
に、Pythonなどコマンドラインで使用するソフトウェアのインストールや管理に用いられます。パッケージ管理シス
テムは単に必要なソフトウェアやライブラリをインストールするだけでなく、そのソフトウェアに必要となる他のライ ブラリを自動的に選択してインストールしたり、バージョンの依存関係を解決してくれたりします。またソフトウェア ごとに異なるウェブサイトに情報が散逸することなく、同一のレポジトリに情報が集約され、インストール方法も共通 化されているという利点があります。
Macでは後述するHomebrewが2018年現在では主流であり*2、CentOS 7ではYumが標準です。またPythonに特 化したパッケージ管理システムとしてpipやcondaがあるのは第8章で説明した通りです。本章では、このHomebrew とYumについて簡単に解説します。
3つ目の方法はCMakeやconfigureを使ってソフトウェアのビルドとインストールをする方法です。この解説は付 録Dを参照してください。
A.1 Homebrew
Homebrewは2018年現在、Macでもっとも人気のあるパッケージ管理システムです*3*4。homebrew
まずhttps://brew.shに記述のある通り、Homebrewをインストールしてみましょう*5。次のコマンドを管理者 権限をもつユーザで実行すると
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/
master/install)"
色々と出てきた後にパスワードを聞かれますので、パスワードを入れて進めてください。
Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/mkdir -p /usr/local/Cellar /usr/local/Homebrew /usr/local/
Frameworks /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/
*1https://www.python.org/downloads/mac-osx/
*2Mac OS Xがリリースされた当初はFink(http://www.finkproject.org)がもっとも人気があり、その後MacPort(https://www.
macports.org)に人気が移り、今ではHomebrewが主流となりました。
*3https://brew.sh
*4「home brew」は日本語で自家醸造という意味であり、Homebrewに出てくる用語はcask(大樽)やcellar(貯蔵庫)など、酒関係の英語が多 いです。
*5Homebrewの更新に従いこのコマンドは変更になる可能性があるので、必ず本家の記述を参照してください。
付録A パッケージ管理システム 77
local/opt /usr/local/sbin /usr/local/share /usr/local/share/zsh /usr/local/share /zsh/site-functions /usr/local/var
Password:
そうすると/usr/localが作成され、Homebrew関係のファイルが(ほぼ)全てそこにインストールされるようにな ります*6。例えばPython 3をHomebrewでインストールすると/usr/local/bin/python3という場所に置かれ ます。
Homebrewによって/usr/local以下に作られるディレクトリは、管理者権限を持つユーザが読み書きできる設定
に変更されます。そのため、最初のHomebrewにインストール以降は原則としてパスワードの入力は求められません。
第8章で説明したように、Python 3のインストールなどを試してみましょう。
$ brew install python3
他にまず必要なものはCMakeとMacTeX*7だと思います。
$ brew install cmake
$ brew cask install mactex