• 検索結果がありません。

様々な確率分布

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