統計的データ解析 2008 - 大阪大学X線天文グループ
統計的データ解析 2008 - 大阪大学X線天文グループ
統計的データ解析 2008 - 大阪大学X線天文グループ
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
統 計 的 データ 解 析 2008<br />
2008.11.25<br />
林 田 清<br />
( 大 阪 大 学 大 学 院 理 学 研 究 科 )
XSPECとレスポンス 行 列<br />
データスペクトル( 黒 十 字 )=<br />
観 測 されたPHスペクトル<br />
レスポンス 行 列<br />
⎛ SPH<br />
[0] ⎞ ⎛ R0,0 R0,0 RM−<br />
1, N−1<br />
⎞⎛ IE[0]<br />
⎞<br />
⎜ ⎟ ⎜<br />
⎟⎜ ⎟<br />
⎜<br />
SPH<br />
[1] ⎟<br />
R0,1 R1,1<br />
IE[1]<br />
= ⎜ ⎟<br />
⎜ ⎜ ⎟<br />
⎟ ⎜<br />
⎟⎜ ⎟<br />
⎜ S ⎟ ⎜<br />
R<br />
R ⎟⎜I<br />
⎟<br />
⎝<br />
⎠<br />
⎝ PH [ N −1] ⎠ 0, N−1 M−1, N−1<br />
⎝ E[ M −1]<br />
⎠<br />
仮 定 した 入 射 X 線 エネルギー<br />
スペクトルモデル<br />
残 差 :データスペクトルー<br />
モデルスペクトル<br />
モデルスペクトル( 赤 )=<br />
期 待 されるPHスペクトル
ここまでのまとめ<br />
• 測 定 : 母 集 団 から 標 本 をとってくる<br />
• 誤 差 とは? 誤 差 をどう 求 めるか<br />
• 最 尤 法 の 考 え 方<br />
• 誤 差 伝 播<br />
• いろいろな 確 率 分 布<br />
• 最 小 二 乗 法 、カイ 二 乗 フィット<br />
<br />
カイ 二 乗 検 定 、パラメータの 誤 差<br />
• 検 定 と 推 定 、 相 関 係 数<br />
問 題 E: 各 自 、 具 体 例 を 設 定 した 演 習 問 題 を 作 成 せよ。
擬 似 乱 数 の 発 生<br />
• モンテカルロ 法 のための 準 備<br />
• 一 様 乱 数 (0
乱 数 ルーチンの 選 び 方<br />
• srandom, randomあるいはsrand, randは 学 習 用<br />
• 本 格 的 な 研 究 にはより” 性 能 のいい” 擬 似 乱 数 発<br />
生 ルーチンを 使 うべき<br />
偏 りがない、 周 期 性 がない、 計 算 速 度 が 速 いなど<br />
• 例 えば、Numerical Recipes in C (W.Press 他 著 、<br />
技 術 評 論 者 )や 計 算 物 理 ( 早 野 龍 五 、 高 橋 忠 幸 著 、<br />
共 立 出 版 )を 参 考 のこと<br />
• 新 しい 試 みの 一 例 Mersenne Twister 法<br />
(http://www.math.sci.hiroshima-u.ac.jp/~mmat/MT/mt.html)
一 様 乱 数 の 応 用 例 ( 簡 単 なモンテカ<br />
ルロ 計 算 )<br />
• 一 様 擬 似 乱 数 を 与 える<br />
• 円 の 面 積 ( 円 周 率 の 計 算 )<br />
( 擬 似 ) 一 様 乱 数 の 組 (x,y)をN 個 生 成<br />
半 径 1の 円 の 中 (x 2 +y 2
プログラム 例<br />
• ここではseedは 任 意 の 数 (で<br />
きれば 素 数 )を 入 力 する。<br />
srandom(time(NULL));と<br />
して 時 間 情 報 を 種 とするこ<br />
ともできる。この 場 合 は<br />
time.hをincludeする 必 要<br />
あり。<br />
• 右 の 例 でpi1は 整 数 の 割 り 算<br />
が 最 初 に 行 われるので 値 が<br />
ゼロになる。 pi2, pi3のよう<br />
な 記 法 にせよ。<br />
• RAND_MAXは<br />
/usr/include/stdlib.hの 中 で<br />
定 義 (#define)されている。<br />
#include <br />
#include <br />
int main()<br />
{<br />
int seed, n, i, m;<br />
double x,y,pi1,pi2,pi3;<br />
printf("input seed number¥n");<br />
scanf("%d",&seed);<br />
printf("input number of points ¥n");<br />
scanf("%d",&n);<br />
srandom(seed);<br />
m=0;<br />
for(i=0;i
プリプロセッサ<br />
• #include <br />
<br />
コンパイルされる 際 に、ソースコードのこの 位 置 に<br />
fname.h( 通 常 は/usr/includeの 下 にある; 具 体 的 には<br />
stdio.h,stdlib.h,math.h 等 )の 内 容 が 挿 入 される。<br />
• #define ABC abc<br />
<br />
<br />
ソースコードのこの 位 置 以 降 にあるABCという 文 字 列<br />
があれば、コンパイル 時 に 自 動 的 にabcにおきかえら<br />
れて 解 釈 される。<br />
RAND_MAXは stdlib.hの 中 でdefineされている。
与 えられた 分 布 関 数 に 従 う 乱 数 1: 逆 変 換 法<br />
分 布 関 数 f()<br />
xに 従 う 乱 数 xを 発 生 させたい<br />
累 積 分 布 関 数 Fx ()<br />
∫ x<br />
x<br />
Fx () = f(') xdx'<br />
min<br />
は 区 間 (0,1)に 一 様 にランダムに 分 布 する。<br />
−1 −1<br />
もしFの 逆 関 数 F をみつけることができればx F () r により<br />
擬 似 一 様 乱 数 rから 分 布 関 数 f()<br />
xに 従 う 乱 数 xを 求 めることができる<br />
=<br />
例 : f( x) = λ exp( −λx)<br />
∫ x<br />
0<br />
x<br />
[ λ ] 0<br />
F( x) = f( x') dx' = −exp( − x') = 1−exp( −λ<br />
x)<br />
1 1<br />
x =− ln(1 − F( x)) =− ln( r)<br />
λ<br />
λ
逆 変 換 法 の 考 え 方<br />
rが0
与 えられた 分 布 関 数 に 従 う 乱 数 2: 棄 却 法<br />
発 生 が 容 易 な 分 布 関 数 ( 例 えば 一 様 分 布 ) gx () の 定 数 倍 Cgx () に<br />
よってf()<br />
xを 完 全 に 包 み 込 む。<br />
1. gx () の 確 率 分 布 に 従 う 乱 数 xを 発 生 させる<br />
0 0 0<br />
0 0 0<br />
0<br />
≥<br />
0<br />
0<br />
0<br />
2. 点 xでf( x ) とCg( x ) を 計 算 する。 (0,1) の 乱 数 rを 発 生 させ、<br />
(a) f( x ) < rCg( x ) ならば、 xを 棄 ててステップ1からやり 直 す<br />
(b) f( x ) rCg( x ) ならば、 xが 求 める 乱 数<br />
x0を 棄 却<br />
P<br />
Cg( x0<br />
)<br />
Cg()<br />
x<br />
x0を 採 択<br />
0<br />
xmin<br />
f( x0<br />
)<br />
x 0<br />
x<br />
f () x<br />
xmax
正 規 乱 数 の 発 生<br />
• 積 分 は 誤 差 関 数 、 解 析 的 に 記 述 できない。<br />
<br />
Box-Muller 法 か 中 心 極 限 定 理<br />
12<br />
∑<br />
x= r −6<br />
i=<br />
1<br />
i<br />
ここでrは(0,1)<br />
の 一 様 乱 数<br />
i<br />
一 般 に 確 率 密 度 関 数 qx ( , x) に 従 う 変 数 x, xの 関 数 y,<br />
yの 確 率 密 度 関 数 は<br />
∂( x, x )<br />
py ( , y) dydy = qx ( , x)<br />
dydy<br />
1 2 1 2 1 2<br />
1 2<br />
1 2 1 2 1 2 1 2<br />
∂( y1, y2)<br />
⎡ 1 ⎤⎡ 1<br />
⎤<br />
p( y, y ) dydy = ⎢ exp( −y / 2) ⎥⎢ exp( −y / 2) ⎥dydy<br />
⎣ 2π<br />
⎦⎣ 2π<br />
⎦<br />
となるような 変 数 y , yを 生 成 したい ⇒ Box-Muller 法<br />
2 2<br />
1 2 1 2 1 2 1 2<br />
1 2<br />
y = − 2ln x cos2 π x , y =<br />
1 1 2 2<br />
−2ln<br />
x<br />
sin2π<br />
x<br />
1 2<br />
x, xが 区 間 (0,1)の 独 立 な 一 様 乱 数 であればq( x, x ) dxdx = dxdx<br />
1 2 1 2 1 2 1 2<br />
⎡ 1 ⎤ 1 y<br />
x = exp − ( y + y ) , x = arctan<br />
2 2 2<br />
1 ⎢ 1 2 2<br />
⎣ 2 ⎥<br />
⎦ 2π<br />
y1<br />
∂( x , x ) ⎡ 1 ⎤⎡ 1<br />
⎤<br />
=− exp( −y<br />
/ 2) exp( −y<br />
/ 2)<br />
1 2<br />
2 2<br />
1 2<br />
∂( y1, y2) ⎢ ⎥⎢ ⎥<br />
⎣ 2π<br />
⎦⎣ 2π<br />
⎦
ポアッソン 分 布 に 従 う 乱 数<br />
Px e x<br />
x -μ<br />
() = μ / !<br />
ただしxは 離 散 値 、 棄 却 法 はそのままでは 使 えない<br />
Qydy e y<br />
[ y] -μ<br />
( ) = μ /[ ]!<br />
という 連 続 分 布 関 数 を 定 義 する<br />
ここで[y]はyを 超 えない 整 数<br />
Qy ( ) に 従 う 乱 数 yを 棄 却 法 により 発 生 させ、その 整 数 部 を<br />
とってxとする