【解答1】newton-raphson法と fisher’s scoring …€解答1】newton-raphson法と fisher’s...

37
1】Newton-Raphson Fisher’s Scoring H22 BioS :第10・11 はじめに ります 1変 ・1パラメータ 「問題1」「問題2」 ます。 お、 わせるために 9 位ま していますが、 する 5 位を して第 4 位ま します。 問題1:1 変数の Newton-Raphson 法の基礎 (i) する マクロ% seq exe 「問題1」 います (i) f (x)= x 3 3 おく f 0 (x)=3x 2 ります。これより、Newton-Raphson による x m = x m-1 f (x m-1 ) f 0 (x m-1 ) = x m-1 x 3 m-1 3 3x 2 m-1 ります。これより、SAS プログラム * ; macro f(x); &x**3 - 3 mend f; * した ; macro df(x); 3*(&x**2) mend df; *x m-1 から x m するマクロ; macro seq(x); f x= f(&x); *f (x m-1 ) ; df x= df(&x); *f 0 (x m-1 ) ; y= &x-f x / df x;*x m-1 から x m める; mend seq; 1

Upload: hoangdang

Post on 15-Jul-2019

237 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

【解答1】Newton-Raphson法と      Fisher’s Scoring法の計算

H22年度 BioS継続勉強会:第10・11回

土居正明

はじめに

解答が長くなりますので、本稿では1変数・1パラメータの「問題1」「問題2」の解答を述べます。なお、収束基準と合

わせるために解答は小数第 9位まで計算していますが、文章中で引用するときは面倒ですので小数第 5位を四捨五入して第

4位まで表示します。

問題1:1変数の Newton-Raphson法の基礎

以下の各問題で、(i) で定義するマクロ% seqと% exeは、「問題1」の全ての問題で用います。

(i) f(x) = x3 − 3とおくと、f ′(x) = 3x2 となります。これより、Newton-Raphson法による逐次計算は

xm = xm−1 −f(xm−1)f ′(xm−1)

= xm−1 −x3

m−1 − 33x2

m−1

となります。これより、SASプログラムは

*元の関数;

%macro f(x);

  &x**3 - 3

%mend f;

*微分した関数;

%macro df(x);

  3 * (&x**2)

%mend df;

*xm−1 から xm を計算するマクロ;

%macro seq(x);

  f x =% f(&x); *f(xm−1)の値の計算;

  df x =% df(&x); *f ′(xm−1)の値の計算;

  y = &x - f x / df x ; *xm−1 から xm を求める;

%mend seq;

1

Page 2: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

*計算実行マクロ;

*init は初期値;

*denomはくり返し計算の際の分母(Newton-Raphsonなら df x, Fisher’s Scoringなら I x);

*noは通し番号;

%macro exe(init, denom, no);

data d&no;

  length i 3.0 diff x f x &denom y sol check 8.0;

  i = 1; *くり返し回数の初期値;

  diff = 10; *xm と xm−1 の差の初期値;

  &denom = 100; *分母(微分した値)の初期値(以下のループで、0になったら計算中止);

  x = &init; * x0 の値;

 * |xm − xm−1| < 10−8 となるか、くり返しの分母 f ′(xm−1) = 0となるか、;

 *くり返し回数 i が 1000を超えるまでループを続ける;

  do until(diff < 10**(-8) or &denom = 0 or i> 1000);

  % seq(x)

   output;

   diff = abs(y - x);

   x = y; *値を更新;

   i = i + 1; *くり返し回数を 1回増やす;

  end;

  sol = y; *Newton-Raphson法による解;

  check =% f(sol); *元の関数に solを入れて、(大体)0になるか(つまり f(x) = 0の解となるか)確認;

  output;

run;

%mend exe;

となります。実行プログラムは

% exe(10, dfx, 1)

となり、出力は以下のようになります。

2

Page 3: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 10.000000000 997.00000000 300.00000000 6.676666667 . .

2 3.323333333 6.676666667 294.63163063 133.73363333 4.473543763 . .

3 2.203122904 4.473543763 86.527214154 60.037781390 3.032331044 . .

4 1.441212719 3.032331044 24.882379645 27.585094677 2.130308414 . .

5 0.902022630 2.130308414 6.667795337 13.614641815 1.640556614 . .

6 0.489751800 1.640556614 1.415436730 8.074278009 1.465254658 . .

7 0.175301956 1.465254658 0.145859568 6.440913635 1.442608869 . .

8 0.022645788 1.442608869 0.002242674 6.243361048 1.442249660 . .

9 0.000359209 1.442249660 0.000000558 6.240252243 1.442249570 . .

10 0.000000089 1.442249570 0.000000000 6.240251469 1.442249570 . .

11 0.000000000 1.442249570 0.000000000 6.240251469 1.442249570 1.442249570 -0.000000000

これより、初期値 x0 は xの1行目、xi は yの i 行目となります。つまり、x0 = 10.0000, x1 = 6.6767, x2 = 4.4735, x3 =

3.0323, x4 = 2.1303 · · · となり、解は x = 1.4422となります。

(ii) f(x) = x5 − 2とおくと、f ′(x) = 5x4 となります。これより、Newton-Raphson法による逐次計算は

xm = xm−1 −f(xm−1)f ′(xm−1)

= xm−1 −x5

m−1 − 25x4

m−1

となります。従って、SASプログラムの関数の部分は、

*元の関数;

%macro f(x);

  &x**5 - 2

%mend f;

*微分した関数;

%macro df(x);

  5 * (&x**4)

%mend df;

となります。実行プログラムは

% exe(10, dfx, 2)

となり、出力は以下の通りとなります。

3

Page 4: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 10.000000000 99998.000000 50000.000000 8.000040000 . .

2 1.999960000 8.000040000 32766.819208 20480.409603 6.400129654 . .

3 1.599910346 6.400129654 10736.505903 8389.2877826 5.120342123 . .

4 1.279787532 5.120342123 3517.6128906 3436.8923075 4.096855619 . .

5 1.023486503 4.096855619 1152.1261848 1408.5512062 3.278904394 . .

6 0.817951225 3.278904394 377.00397834 577.94301509 2.626584064 . .

7 0.652320330 2.626584064 123.01338793 237.97713091 2.109671420 . .

8 0.516912644 2.109671420 39.790166117 99.044253333 1.707930130 . .

9 0.401741290 1.707930130 12.532840275 42.545183845 1.413352950 . .

10 0.294577180 1.413352950 3.639662940 19.951360838 1.230926149 . .

11 0.182426801 1.230926149 0.825920812 11.478839793 1.158974556 . .

12 0.071951593 1.158974556 0.091074506 9.021226979 1.148878977 . .

13 0.010095579 1.148878977 0.001572900 8.710982358 1.148698412 . .

14 0.000180565 1.148698412 0.000000494 8.705507354 1.148698355 . .

15 0.000000057 1.148698355 0.000000000 8.705505633 1.148698355 . .

16 0.000000000 1.148698355 0.000000000 8.705505633 1.148698355 1.148698355 -0.000000000

これより、解は x = 1.1487となります。

(iii) f(x) = x3 − 6x2 + 15x− 2とおくと、f ′(x) = 3x2 − 12x + 15となります。これより、Newton-Raphson法による逐次

計算は

xm = xm−1 −f(xm−1)f ′(xm−1)

= xm−1 −x3

m−1 − 6x2m−1 + 15xm−1 − 2

3x2m−1 − 12xm−1 + 15

となります。従って、SASプログラムの関数の部分は、

*元の関数;

%macro f(x);

  &x**3 - 6*( &x**2) + 15*x -2

%mend f;

*微分した関数;

%macro df(x);

  3*(&x**2) - 12* &x + 15

%mend df;

となります。実行プログラムは

4

Page 5: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

% exe(10, dfx, 3)

となり、出力は以下の通りとなります。

i diff x f x df x y sol check

1 10.000000000 10.000000000 548.00000000 195.00000000 7.189743590 . .

2 2.810256410 7.189743590 167.34687072 83.800315582 5.192771746 . .

3 1.996971844 5.192771746 54.124764474 33.581374266 3.581022207 . .

4 1.611749538 3.581022207 20.695039093 10.498893662 1.609858411 . .

5 1.971163797 1.609858411 10.770191601 3.456631379 -1.505947245 . .

6 3.115805656 -1.505947245 -41.61177459 39.874998258 -0.462391724 . .

7 1.043555521 -0.462391724 -10.31757467 21.190119007 0.024513265 . .

8 0.486904990 0.024513265 -1.635891689 14.707643515 0.135740580 . .

9 0.111227314 0.135740580 -0.071943244 13.426389557 0.141098926 . .

10 0.005358346 0.141098926 -0.000160425 13.366539608 0.141110928 . .

11 0.000012002 0.141110928 -0.000000001 13.366405745 0.141110928 . .

12 0.000000000 0.141110928 -0.000000001 13.366405745 0.141110928 0.141110928 0.000000000

これより解は x = 0.1411となります*1。

(iv) f(x) = ex − 1とおくと、f ′(x) = ex となります。これより、Newton-Raphson法による逐次計算は

xm = xm−1 −f(xm−1)f ′(xm−1)

= xm−1 −exm−1 − 1

exm−1

となります。従って、SASプログラムの関数の部分は、

*元の関数;

%macro f(x);

  exp(&x) -1

%mend f;

*微分した関数;

%macro df(x);

  exp(&x)

%mend df;

となります。実行プログラムは

% exe(10, dfx, 4)

*1 なお、f ′(x) = 3x2 − 12x + 15 = 3(x − 2)2 + 3 > 0より、xの全範囲で f(x)は単調増加関数ですので、f(x) = 0の解は 1つです。

5

Page 6: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

となり、出力は以下の通りとなります。

i diff x f x df x y sol check

1 10.000000000 10.000000000 22025.465795 22026.465795 9.000045400 . .

2 0.999954600 9.000045400 8102.4518154 8103.4518154 8.000168804 . .

3 0.999876596 8.000168804 2980.4612275 2981.4612275 7.000504210 . .

4 0.999664594 7.000504210 1096.1862314 1097.1862314 6.001415632 . .

5 0.999088578 6.001415632 403.00030481 404.00030481 5.003890878 . .

6 0.997524754 5.003890878 147.99174148 148.99174148 4.010602660 . .

7 0.993288219 4.010602660 54.180115366 55.180115366 3.028725130 . .

8 0.981877530 3.028725130 19.670863116 20.670863116 2.077102403 . .

9 0.951622726 2.077102403 6.981308763 7.981308763 1.202395138 . .

10 0.874707265 1.202395138 2.328078591 3.328078591 0.502868811 . .

11 0.699526327 0.502868811 0.653457932 1.653457932 0.107661943 . .

12 0.395206869 0.107661943 0.113671197 1.113671197 0.005593040 . .

13 0.102068903 0.005593040 0.005608710 1.005608710 0.000015612 . .

14 0.005577428 0.000015612 0.000015612 1.000015612 0.000000000 . .

15 0.000015612 0.000000000 0.000000000 1.000000000 0.000000000 . .

16 0.000000000 0.000000000 0.000000000 1.000000000 0.000000000 0.000000000 0.000000000

これより、解は x = 0.0000となります。f(0) = e0 − 1 = 1 − 1 = 0ですので、正しい解になっています。

(v) f(x) = e3x − 2とおくと、f ′(x) = 3e3x となります。これより、Newton-Raphson法による逐次計算は

xm = xm−1 −f(xm−1)f ′(xm−1)

= xm−1 −e3xm−1 − 23e3xm−1

となります。従って、SASプログラムの関数の部分は、

*元の関数;

%macro f(x);

  exp(3*&x) - 2

%mend f;

*微分した関数;

%macro df(x);

  3*exp(3*&x)

%mend df;

となります。実行プログラムは

6

Page 7: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

% exe(10, dfx, 5)

となり、出力は以下の通りとなります。なお、表が大きくなりすぎてしまい、下の方でページ数と重なっている部分があり

ます。申し訳ありません。

7

Page 8: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 10.000000000 1.0686475E13 3.2059424E13 9.666666667 . .

2 0.333333333 9.666666667 3.9313343E12 1.1794003E13 9.333333333 . .

3 0.333333333 9.333333333 1.4462571E12 4.3387712E12 9.000000000 . .

4 0.333333333 9.000000000 532048240601 1.5961447E12 8.666666667 . .

5 0.333333333 8.666666667 195729609428 587188828290 8.333333333 . .

6 0.333333333 8.333333333 72004899337 216014698016 8.000000000 . .

7 0.333333333 8.000000000 26489122129 79467366393 7.666666667 . .

8 0.333333333 7.666666667 9744803445.4 29234410342 7.333333333 . .

9 0.333333333 7.333333333 3584912845.3 10754738542 7.000000000 . .

10 0.333333333 7.000000000 1318815733.6 3956447206.9 6.666666667 . .

11 0.333333333 6.666666667 485165194.57 1455495589.7 6.333333336 . .

12 0.333333332 6.333333336 178482300.13 535446906.38 6.000000006 . .

13 0.333333330 6.000000006 65659968.301 196979910.90 5.666666683 . .

14 0.333333323 5.666666683 24154951.918 72464861.753 5.333333377 . .

15 0.333333306 5.333333377 8886109.6845 26658335.053 5.000000119 . .

16 0.333333258 5.000000119 3269016.5364 9807055.6093 4.666666989 . .

17 0.333333129 4.666666989 1202603.4481 3607816.3444 4.333334210 . .

18 0.333332779 4.333334210 442412.55596 1327243.6679 4.000002384 . .

19 0.333331826 4.000002384 162753.95537 488267.86612 3.666673147 . .

20 0.333329237 3.666673147 59873.305674 179625.91702 3.333350948 . .

21 0.333322199 3.333350948 22025.629762 66082.889287 3.000047879 . .

22 0.333303068 3.000047879 8102.2479196 24312.743759 2.666796807 . .

23 0.333251072 2.666796807 2980.1220455 8946.3661364 2.333687028 . .

24 0.333109779 2.333687028 1095.7973972 3293.3921917 2.000960972 . .

25 0.332726057 2.000960972 402.59352252 1213.7805676 1.669275383 . .

26 0.331685589 1.669275383 147.57921936 448.73765809 1.340398996 . .

27 0.328876386 1.340398996 53.767819367 167.30345810 1.019019989 . .

28 0.321379008 1.019019989 19.264945499 63.794836497 0.717037155 . .

29 0.301982834 0.717037155 6.594405469 25.783216408 0.461273663 . .

30 0.255763492 0.461273663 1.990118733 11.970356198 0.295019735 . .

31 0.166253928 0.295019735 0.423127849 7.269383547 0.236812895 . .

32 0.058206841 0.236812895 0.034883733 6.104651199 0.231098607 . .

33 0.005714288 0.231098607 0.000297302 6.000891907 0.231049064 . .

34 0.000049543 0.231049064 0.000000022 6.000000066 0.231049060 . .

35 0.000000004 0.231049060 0.000000022 6.000000066 0.231049060 0.231049060 0.0000000008

Page 9: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

これより、解は x = 0.2310となります。

f(x) = 0 ⇐⇒ e3x − 2 = 0⇐⇒ e3x = 2⇐⇒ 3x = log 2

⇐⇒ x =13

log 2

より、この解は 13 log 2の近似値となっています。

(vi) f(x) = e2x − 6とおくと、f ′(x) = 2e2x となります。これより、Newton-Raphson法による逐次計算は

xm = xm−1 −f(xm−1)f ′(xm−1)

= xm−1 −e2xm−1 − 62e2xm−1

となります。従って、SASプログラムの関数の部分は、

*元の関数;

%macro f(x);

  exp(2*&x) - 6

%mend f;

*微分した関数;

%macro df(x);

  2*exp(2*&x)

%mend df;

となります。実行プログラムは

% exe(10, dfx, 6)

となり、出力は以下の通りとなります。

9

Page 10: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 10.000000000 485165189.41 970330390.82 9.500000006 . .

2 0.499999994 9.500000006 178482297.17 356964606.34 9.000000023 . .

3 0.499999983 9.000000023 65659966.157 131319944.31 8.500000069 . .

4 0.499999954 8.500000069 24154950.072 48309912.143 8.000000193 . .

5 0.499999876 8.000000193 8886107.9484 17772227.897 7.500000530 . .

6 0.499999662 7.500000530 3269014.8408 6538041.6816 7.000001448 . .

7 0.499999082 7.000001448 1202601.7674 2405215.5347 6.500003943 . .

8 0.499997505 6.500003943 442410.88069 884833.76138 6.000010724 . .

9 0.499993219 6.000010724 162752.28213 325516.56425 5.500029156 . .

10 0.499981568 5.500029156 59871.633192 119755.26638 5.000079258 . .

11 0.499949898 5.000079258 22023.957624 44059.915249 4.500215436 . .

12 0.499863822 4.500215436 8100.5760772 16213.152154 4.000585506 . .

13 0.499629930 4.000585506 2978.4507708 5968.9015415 3.501590716 . .

14 0.498994790 3.501590716 1094.1275787 2200.2551573 3.004317673 . .

15 0.497273044 3.004317673 400.92762561 813.85525122 2.511689991 . .

16 0.492627682 2.511689991 145.92393717 303.84787435 2.031436715 . .

17 0.480253276 2.031436715 52.141135741 116.28227148 1.583035294 . .

18 0.448401421 1.583035294 17.714118499 47.428236997 1.209542210 . .

19 0.373493084 1.209542210 5.235567546 22.471135093 0.976551419 . .

20 0.232990791 0.976551419 1.050530327 14.101060654 0.902051326 . .

21 0.074500093 0.902051326 0.074518046 12.149036093 0.895917667 . .

22 0.006133659 0.895917667 0.000455205 12.000910410 0.895879736 . .

23 0.000037931 0.895879736 0.000000017 12.000000035 0.895879735 . .

24 0.000000001 0.895879735 0.000000017 12.000000035 0.895879735 0.895879735 0.000000000

これより、解は x = 0.8959となります。なお、

f(x) = 0 ⇐⇒ e2x − 6 = 0⇐⇒ e2x = 6⇐⇒ 2x = log 6

⇐⇒ x =12

log 6

より、この解は 12 log 6の近似値となります。

(vii) f(x) = log x − 1とおくと、f ′(x) = 1x となります。これより、Newton-Raphson法による逐次計算は

xm = xm−1 −f(xm−1)f ′(xm−1)

10

Page 11: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

= xm−1 −log (xm−1) − 1

1xm−1

となります。従って、SASプログラムの関数の部分は、

*元の関数;

%macro f(x);

  log(&x) - 1

%mend f;

*微分した関数;

%macro df(x);

  1 / &x

%mend df;

となります。実行プログラムは

% exe(10, dfx, 7)

となり、出力は以下の通りとなります。

i diff x f x df x y sol check

1 10.000000000 5.000000000 0.609437912 0.200000000 1.952810438 . .

2 3.047189562 1.952810438 -0.330730415 0.512082474 2.598664244 . .

3 0.645853806 2.598664244 -0.045002439 0.384813083 2.715610474 . .

4 0.116946230 2.715610474 -0.000983220 0.368241325 2.718280515 . .

5 0.002670042 2.718280515 -0.000000483 0.367879619 2.718281828 . .

6 0.000001313 2.718281828 -0.000000000 0.367879441 2.718281828 . .

7 0.000000000 2.718281828 -0.000000000 0.367879441 2.718281828 2.718281828 0.000000000

これより、解は x = 2.7183です。なお、

f(x) = 0 ⇐⇒ log x − 1 = 0⇐⇒ log x = 1⇐⇒ x = e

より、この解は eの近似値です。

(viii) f(x) = log x − 2とおくと、f ′(x) = 1x となります。これより、Newton-Raphson法による逐次計算は

xm = xm−1 −f(xm−1)f ′(xm−1)

= xm−1 −log (xm−1) − 2

1xm−1

となります。従って、SASプログラムの関数の部分は、

11

Page 12: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

*元の関数;

%macro f(x);

  log(&x) - 2

%mend f;

*微分した関数;

%macro df(x);

  1 / &x

%mend df;

となります。実行プログラムは

% exe(10, dfx, 8)

となり、出力は以下の通りとなります。

i diff x f x df x y sol check

1 10.000000000 10.000000000 0.302585093 0.100000000 6.974149070 . .

2 3.025850930 6.974149070 -0.057789677 0.143386668 7.377182891 . .

3 0.403033821 7.377182891 -0.001608156 0.135553099 7.389046555 . .

4 0.011863663 7.389046555 -0.000001292 0.135335458 7.389056099 . .

5 0.000009544 7.389056099 -0.000000000 0.135335283 7.389056099 . .

6 0.000000000 7.389056099 -0.000000000 0.135335283 7.389056099 7.389056099 0.000000000

これより、解は x = 7.3891となります。なお、

f(x) = 0 ⇐⇒ log x − 2 = 0⇐⇒ log x = 2⇐⇒ x = e2

より、この解は e2 の近似値です。

(ix) f(λ) = 12λ − 3とおくと、f ′(λ) = − 12

λ2 となります。これより、Newton-Raphson法による逐次計算は、

λm = λm−1 −f(xm−1)f ′(xm−1)

= λm−1 −12

λm−1− 3

− 12λ2

m−1

となります。従って、SASプログラムの関数の部分は、

*元の関数;

%macro f(x);

  12 /&x - 3

%mend f;

12

Page 13: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

*微分した関数;

%macro df(x);

 - 12 /&x**2

%mend df;

となります。実行プログラムは

% exe(10, dfx, 9)

となり、出力は以下の通りとなります。

i diff x f x df x y sol check

1 10.000000000 5.000000000 -0.600000000 -0.480000000 3.750000000 . .

2 1.250000000 3.750000000 0.200000000 -0.853333333 3.984375000 . .

3 0.234375000 3.984375000 0.011764706 -0.755893887 3.999938965 . .

4 0.015563965 3.999938965 0.000045777 -0.750022889 3.999999999 . .

5 0.000061034 3.999999999 0.000000001 -0.750000000 4.000000000 . .

6 0.000000001 4.000000000 0.000000001 -0.750000000 4.000000000 4.000000000 0.000000000

これより、解は λ = 4.000となります。f(4) = 124 − 3 = 0より、確かに解になっています。

(x) f(λ) = 1192λ − 149とおくと、f ′(λ) = −1192

λ2 となります。これより、Newton-Raphson法による逐次計算は、

λm = λm−1 −f(xm−1)f ′(xm−1)

= λm−1 −1192λm−1

− 149

− 1192λ2

m−1

となります。従って、SASプログラムの関数の部分は、

*元の関数;

%macro f(x);

  1192 /&x - 149

%mend f;

*微分した関数;

%macro df(x);

 -1192 /&x**2

%mend df;

となります。実行プログラムは

% exe(10, dfx, 10)

となり、出力は以下の通りとなります。

13

Page 14: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 10.000000000 -29.80000000 -11.92000000 7.500000000 . .

2 2.500000000 7.500000000 9.933333333 -21.19111111 7.968750000 . .

3 0.468750000 7.968750000 0.584313725 -18.77136486 7.999877930 . .

4 0.031127930 7.999877930 0.002273594 -18.62556840 7.999999998 . .

5 0.000122068 7.999999998 0.000000035 -18.62500001 8.000000000 . .

6 0.000000002 8.000000000 0.000000035 -18.62500001 8.000000000 8.000000000 0.000000000

これより、解は x = 8.000となります。f(8) = 11928 − 149 = 0より、確かに解になっています。

問題2:Newton-Raphson法と Fisher’s Scoring法による最尤推定

   (1パラメータ)

まず、データが n個の場合のときの尤度関数や対数尤度関数などを導き、その後、データを代入していきます。

問題2-1:Poisson分布

Poisson分布 Po(λ)の確率密度関数は

f(x|λ) =λx

x!exp(−λ)

より、尤度関数は

L(λ) =n∏

i=1

(λxi

xi!exp(−λ)

)

nP

i=1xi

n∏i=1

xi!exp(−nλ)

となり、対数尤度関数は

l(λ) =

(n∑

i=1

xi

)log λ −

n∑i=1

log xi! − nλ

となります。次に、l(λ)の1階微分を F (λ)とおくと、

F (λ) = l′(λ) =

n∑i=1

xi

λ− n (1)

となります。F (λ)をさらに微分すると、

F ′(λ) = −

n∑i=1

xi

λ2(2)

となります。また、E[x] = λより、Fisher情報量は

I(λ) = E[−F ′(λ)] =

n∑i=1

E[xi]

λ2=

λ2=

n

λ(3)

14

Page 15: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

です。以上より、Newton-Raphson法によるくり返し計算は、(1)、(2)を用いて

λm = λm−1 −F (λm−1)F ′(λm−1)

= λm−1 −

nP

i=1xi

λm−1− n

−n

P

i=1xi

λ2m−1

となります。次に、Fisher’s Scoring法によるくり返し計算は (1)、(3)を用いて

λm = λm−1 +F (λm−1)I(λm−1)

= λm−1 +

nP

i=1xi

λm−1− n

nλm−1

= λm−1 +

n∑i=1

xi − nλm−1

n= λm−1 + x − λm−1

= x

となります。以下、個別の数値を代入していきます。

(i) n = 5,5∑

i=1

xi = 1 + 2 + 3 + 5 + 9 = 20より、(1)、(2)、(3)は、

F (λ) =20λ

− 5, F ′(λ) = −20λ2

, I(λ) =5λ

となります。これより、プログラムの主要部分は以下の通りとなります。

*元の関数;

%macro f(x);

  20 /&x -5

%mend f;

*1 階微分;

%macro df(x);

 - 20 /&x**2

%mend df;

*Fisher情報量;

%macro I(x);

  5 / &x

%mend I;

15

Page 16: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

*くり返し計算(Newton-Raphson法);

%macro seqn(x);

  f x =% f(&x);

  df x =% df(&x);

  y = &x - f x / df x;

%mend seqn;

*くり返し計算(Fisher’s Scoring法);

%macro seqf(x);

  f x =% f(&x);

  I x =% I(&x);

  y = &x + f x / I x;

%mend seqf;

*計算実行;

%macro exe2(init, denom, method, no);

  data d&no;

   length i 8.0 diff x f x &denom y sol check 8;

   i =1;*くり返しの初期値;

   diff = 10;

   x = &init;

   &denom =100;

   do until(diff < 10**(-8) or &denom = 0 or i> 1000 );

   % seq&method(x)

    output;

    diff = abs(y - x);

    x = y;

    i = i +1;

   end;

   sol = y; *Newton-Raphson法による解;

   check =% f(y); *元の関数に入れて大体 0になるか確認;

   output;

  run;

%mend exe2;

これより、Newton-Raphson法のくり返し計算の実行プログラムは以下の通りとなります。

% exe2(3, dfx, n, 1 1 n)

出力は以下の通りです。

16

Page 17: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 3.000000000 1.666666667 -2.222222222 3.750000000 . .

2 0.750000000 3.750000000 0.333333333 -1.422222222 3.984375000 . .

3 0.234375000 3.984375000 0.019607843 -1.259823145 3.999938965 . .

4 0.015563965 3.999938965 0.000076295 -1.250038148 3.999999999 . .

5 0.000061034 3.999999999 0.000000001 -1.250000001 4.000000000 . .

6 0.000000001 4.000000000 0.000000001 -1.250000001 4.000000000 4.000000000 0.000000000

これより、Newton-Raphson法による最尤推定値は λ̂ = 4.000となります。

 次に、Fisher’s Scoring法のくり返し計算の実行プログラムは以下の通りです。

% exe2(10, Ix, f, 1 1 f)

出力は以下の通りです。

i diff x f x I x y sol check

1 10.000000000 10.000000000 -3.000000000 0.500000000 4.000000000 . .

2 6.000000000 4.000000000 0.000000000 1.250000000 4.000000000 . .

3 0.000000000 4.000000000 0.000000000 1.250000000 4.000000000 4.000000000 0.000000000

となります。これより、Fisher’s Scoring法による最尤推定値は λ̂ = 4.000となります。

 最後に手計算で求めます。尤度方程式は F (λ) = l′(λ) = 0ですので

F (λ̂) = 0 ⇐⇒ 20

λ̂− 5 = 0

⇐⇒ λ̂ = 4

となり、SASの出力と一致しています。

(ii) n = 6,6∑

i=1

xi = 100 + 110 + 120 + 140 + 160 + 180 = 810より、(1)、(2)、(3)は、

F (λ) =810λ

− 6, F ′(λ) = −810λ2

, I(λ) =6λ

となります。これより、プログラムの関数の指定の部分は以下の通りとなります。

*元の関数;

%macro f(x);

  810 /&x -6

%mend f;

17

Page 18: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

*1 階微分;

%macro df(x);

 - 810 /&x**2

%mend df;

*Fisher情報量;

%macro I(x);

  6 / &x

%mend I;

これより、Newton-Raphson法のくり返し計算のプログラムは以下の通りとなります。

% exe2(3, dfx, n, 1 2 n)

出力は以下の通りです。

i diff x f x df x y sol check

1 10.000000000 3.000000000 264.00000000 -90.00000000 5.933333333 . .

2 2.933333333 5.933333333 130.51685393 -23.00845853 11.605893004 . .

3 5.672559671 11.605893004 63.792130576 -6.013508013 22.214032287 . .

4 10.608139282 22.214032287 30.463438495 -1.641459687 40.772781385 . .

5 18.558749098 40.772781385 13.866194370 -0.487241579 69.231342756 . .

6 28.458561371 69.231342756 5.699903075 -0.168997200 102.95913870 . .

7 33.727795943 102.95913870 1.867198679 -0.076410883 127.39543116 . .

8 24.436292465 127.39543116 0.358155804 -0.049908821 134.57163358 . .

9 7.176202413 134.57163358 0.019099111 -0.044727845 134.99864076 . .

10 0.427007181 134.99864076 0.000060411 -0.044445339 134.99999999 . .

11 0.001359229 134.99999999 0.000000001 -0.044444444 135.00000000 . .

12 0.000000014 135.00000000 0.000000000 -0.044444444 135.00000000 . .

13 0.000000000 135.00000000 0.000000000 -0.044444444 135.00000000 135.00000000 0.000000000

これより、Newton-Raphson法による最尤推定値は λ̂ = 135.0000となります。

 次に、Fisher’s Scoring法のくり返し計算のプログラムは以下の通りとなります。

% exe2(10, Ix, f, 1 2 f)

出力は以下の通りです。

18

Page 19: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x I x y sol check

1 10.000000000 10.000000000 75.000000000 0.600000000 135.00000000 . .

2 125.00000000 135.00000000 0.000000000 0.044444444 135.00000000 . .

3 0.000000000 135.00000000 0.000000000 0.044444444 135.00000000 135.00000000 0.000000000

となります。これより Fisher’s Scoring法による最尤推定値は λ̂ = 135.0000となります。

 最後に、手計算により求めます。尤度方程式は F (λ) = l′(λ) = 0ですので、

F (λ̂) = 0 ⇐⇒ 810

λ̂− 6 = 0

⇐⇒ λ̂ = 135

となり、SASの出力結果と一致しています。

問題2-2:指数分布

指数分布 E(λ)の確率密度関数は

f(x|λ) = λ exp(−λx)

より、尤度関数は

L(λ) =n∏

i=1

{λ exp(−λxi)}

= λn exp

(−λ

n∑i=1

xi

)

となり、対数尤度関数は

l(λ) = n log λ − λn∑

i=1

xi

となります。次に、l(λ)の1階微分を F (λ)とおくと、

F (λ) = l′(λ) =n

λ−

n∑i=1

xi (4)

です。さらに λで微分しますと、

F ′(λ) = − n

λ2(5)

となります。これより、Fisher情報量は

I(λ) = −E[F ′(λ)] =n

λ2(6)

です。以上より、Newton-Raphson法によるくり返し計算は (4)、(5)から

λm = λm−1 −F (λm−1)F ′(λm−1)

= λm−1 −

nλm−1

−n∑

i=1

xi

− nλ2

m−1

19

Page 20: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

となります。次に、Fisher’s Scoring法によるくり返し計算は (4)、(6)から

λm = λm−1 +F (λm−1)I(λm−1)

= λm−1 +

nλm−1

−n∑

i=1

xi

nλ2

m−1

となります。以下、個別の数値を代入していきます。

(i) n = 5,5∑

i=1

xi = 2 + 4 + 6 + 10 + 12 = 34より、(4)、(5)、(6)は、

F (λ) =5λ− 34, F ′(λ) = − 5

λ2, I(λ) =

5λ2

となります。これより、プログラムの関数の指定の部分は以下の通りとなります。

*元の関数;

%macro f(x);

  5 / &x -34

%mend f;

*1 階微分;

%macro df(x);

 - 5 / &x**2

%mend df;

*Fisher情報量;

%macro I(x);

  5 / &x**2

%mend I;

これより、Newton-Raphson法のくり返し計算のプログラムは以下の通りとなります。

% exe2(0.001, dfx, n, 2 1 n)

出力は以下のようになります。

20

Page 21: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 0.001000000 4966.0000000 -5000000.000 0.001993200 . .

2 0.000993200 0.001993200 2474.5289986 -1258543.547 0.003959385 . .

3 0.001966185 0.003959385 1228.8224958 -318944.1312 0.007812168 . .

4 0.003852783 0.007812168 606.02723554 -81926.97245 0.015209331 . .

5 0.007397164 0.015209331 294.74554984 -21614.72731 0.028845661 . .

6 0.013636330 0.028845661 139.33629397 -6009.094161 0.052033232 . .

7 0.023187570 0.052033232 62.092436516 -1846.751271 0.085655754 . .

8 0.033622523 0.085655754 24.373194469 -681.4859665 0.121420532 . .

9 0.035764778 0.121420532 7.179196775 -339.1452494 0.142589034 . .

10 0.021168502 0.142589034 1.065810143 -245.9222082 0.146922966 . .

11 0.004333932 0.146922966 0.031439256 -231.6277716 0.147058698 . .

12 0.000135732 0.147058698 0.000029018 -231.2003946 0.147058824 . .

13 0.000000126 0.147058824 0.000000000 -231.2000000 0.147058824 . .

14 0.000000000 0.147058824 0.000000000 -231.2000000 0.147058824 0.147058824 -0.000000000

これより、Newton-Raphson法による最尤推定値は λ̂ = 0.1471となります。

 次に、Fisher’s Scoring法のくり返し計算のプログラムは以下のようになります。

% exe2(0.001, Ix,f ,2 1 f)

出力は以下の通りです。

21

Page 22: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x I x y sol check

1 10.000000000 0.001000000 4966.0000000 5000000.0000 0.001993200 . .

2 0.000993200 0.001993200 2474.5289986 1258543.5474 0.003959385 . .

3 0.001966185 0.003959385 1228.8224958 318944.13119 0.007812168 . .

4 0.003852783 0.007812168 606.02723554 81926.972446 0.015209331 . .

5 0.007397164 0.015209331 294.74554984 21614.727309 0.028845661 . .

6 0.013636330 0.028845661 139.33629397 6009.0941614 0.052033232 . .

7 0.023187570 0.052033232 62.092436516 1846.7512711 0.085655754 . .

8 0.033622523 0.085655754 24.373194469 681.48596651 0.121420532 . .

9 0.035764778 0.121420532 7.179196775 339.14524941 0.142589034 . .

10 0.021168502 0.142589034 1.065810143 245.92220820 0.146922966 . .

11 0.004333932 0.146922966 0.031439256 231.62777157 0.147058698 . .

12 0.000135732 0.147058698 0.000029018 231.20039464 0.147058824 . .

13 0.000000126 0.147058824 0.000000000 231.20000000 0.147058824 . .

14 0.000000000 0.147058824 0.000000000 231.20000000 0.147058824 0.147058824 -0.000000000

これより、Fisher’s Scoring法による最尤推定値は λ̂ = 0.1471となります。

 最後に手計算により求めます。尤度方程式は F (λ) = l′(λ) = 0より、

F (λ̂) = 0 ⇐⇒ 5

λ̂− 34 = 0

⇐⇒ λ̂ =534

= 0.1471

となります。

(ii) n = 8,8∑

i=1

xi = 20 + 20 + 21 + 22 + 23 + 25 + 40 + 50 = 221より、(4)、(5)、(6)は、

F (λ) =8λ− 221, F ′(λ) = − 8

λ2, I(λ) =

8λ2

となります。これより、プログラムの関数の指定の部分は以下の通りとなります。

*元の関数;

%macro f(x);

  8 / &x - 221

%mend f;

*1 階微分;

%macro df(x);

 - 8 / &x**2

%mend df;

22

Page 23: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

*Fisher情報量;

%macro I(x);

  8 / &x**2

%mend I;

これより、Newton-Raphson法のくり返し計算のプログラムは以下の通りとなります。

% exe2(0.001, dfx, n, 2 2 n)

出力は以下の通りです。

i diff x f x df x y sol check

1 10.000000000 0.001000000 7779.0000000 -8000000.000 0.001972375 . .

2 0.000972375 0.001972375 3835.0238291 -2056416.163 0.003837281 . .

3 0.001864906 0.003837281 1863.8092693 -543303.7112 0.007267792 . .

4 0.003430511 0.007267792 879.74691867 -151455.4724 0.013076410 . .

5 0.005808618 0.013076410 390.78871457 -46785.67891 0.021429152 . .

6 0.008352742 0.021429152 152.32321714 -17421.27806 0.030172668 . .

7 0.008743516 0.030172668 44.140625649 -8787.443921 0.035195815 . .

8 0.005023147 0.035195815 6.299750872 -6458.147093 0.036171289 . .

9 0.000975473 0.036171289 0.169892747 -6114.515182 0.036199074 . .

10 0.000027785 0.036199074 0.000130404 -6105.132205 0.036199095 . .

11 0.000000021 0.036199095 0.000000000 -6105.125000 0.036199095 . .

12 0.000000000 0.036199095 0.000000000 -6105.125000 0.036199095 0.036199095 -0.000000000

これより、Newton-Raphson法の最尤推定値は λ̂ = 0.0362となります。

 次に、Fisher’s Scoring法のくり返し計算のプログラムは以下の通りとなります。

% exe2(0.001, Ix, f, 2 2 f)

出力は以下の通りです。

23

Page 24: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x I x y sol check

1 10.000000000 0.001000000 7779.0000000 8000000.0000 0.001972375 . .

2 0.000972375 0.001972375 3835.0238291 2056416.1628 0.003837281 . .

3 0.001864906 0.003837281 1863.8092693 543303.71118 0.007267792 . .

4 0.003430511 0.007267792 879.74691867 151455.47237 0.013076410 . .

5 0.005808618 0.013076410 390.78871457 46785.678910 0.021429152 . .

6 0.008352742 0.021429152 152.32321714 17421.278057 0.030172668 . .

7 0.008743516 0.030172668 44.140625649 8787.4439212 0.035195815 . .

8 0.005023147 0.035195815 6.299750872 6458.1470933 0.036171289 . .

9 0.000975473 0.036171289 0.169892747 6114.5151822 0.036199074 . .

10 0.000027785 0.036199074 0.000130404 6105.1322048 0.036199095 . .

11 0.000000021 0.036199095 0.000000000 6105.1250000 0.036199095 . .

12 0.000000000 0.036199095 0.000000000 6105.1250000 0.036199095 0.036199095 -0.000000000

これより、Fisher’s Scoring法による最尤推定値は λ̂ = 0.0362となります。

 最後に手計算により求めます。尤度方程式は F (λ) = l′(λ) = 0より、

F (λ̂) = 0 ⇐⇒ 8

λ̂− 221 = 0

⇐⇒ λ̂ =8

221= 0.0362

となり、SASの出力と一致します。

問題2-3:二項分布

二項分布 Bin(n, p)の確率関数は

f(x|n, p) = nCxpx(1 − p)n−x

より、尤度関数は

L(p) = nCxpx(1 − p)n−x

となり、対数尤度関数は

l(p) = log nCx + x log p + (n − x) log (1 − p)

となります。l(p)の 1階微分を F (p)とおくと、

F (p) = l′(p) =x

p− n − x

1 − p=

x(1 − p) − (n − x)pp(1 − p)

=x − xp − np + xp

p(1 − p)

=x − np

p(1 − p)(7)

となります。pでもう1回微分すると

F ′(p) = − x

p2− n − x

(1 − p)2(8)

24

Page 25: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

となります。これより、Fisher情報量は

I(p) = −E[F ′(p)] =E[x]p2

+E[n − x](1 − p)2

=np

p2+

n − np

(1 − p)2

=n

p+

n

1 − p

=n(1 − p) + np

p(1 − p)

=n

p(1 − p)(9)

です。これより、Newton-Raphson法によるくり返し計算は

pm = pm−1 −F (pm1)

F ′(pm−1)

= pm−1 −x−npm−1

pm−1(1−pm−1)

− xp2

m−1− n−x

(1−pm−1)2

となります。次に、Fisher’s Scoring法によるくり返し計算は

pm = pm−1 +F (pm−1)I(pm−1)

= pm−1 +x−npm−1

pm−1(1−pm−1)n

pm−1(1−pm−1)

= pm−1 +x − npm−1

n

= pm−1 +x

n− pm−1

=x

n

となります。以下、個別の数値を代入していきます。

(i) n = 10, x = 4より、(7)、(8)、(9)は、

F (p) =4 − 10p

p(1 − p), F ′(p) = − 4

p2− 6

(1 − p)2, I(p) =

10p(1 − p)

となります。これより、プログラムの関数の指定の部分は、以下の通りです。

*元の関数;

%macro f(x);

  ( 4 - 10*&x) / (&x * (1-&x))

%mend f;

*1 階微分;

%macro df(x);

 -4 / &x**2 - 6 / (1-&x)**2

%mend df;

25

Page 26: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

*Fisher情報量;

%macro I(x);

  10 / (&x * (1-&x))

%mend I;

これより、Newton-Raphson法のくり返し計算のプログラムは以下の通りです。

% exe2(0.001, dfx, n, 3 1 n)

出力は以下の通りです。

i diff x f x df x y sol check

1 10.000000000 0.001000000 3993.9939940 -4000006.012 0.001998497 . .

2 0.000998497 0.001998497 1995.4921176 -1001510.722 0.003990979 . .

3 0.001992482 0.003990979 996.23629869 -251137.4957 0.007957875 . .

4 0.003966896 0.007957875 496.59862441 -63169.53664 0.015819237 . .

5 0.007861362 0.015819237 246.76024879 -15990.32083 0.031251088 . .

6 0.015431851 0.031251088 121.80198673 -4102.108052 0.060943623 . .

7 0.029692535 0.060943623 59.245037568 -1083.773667 0.115609131 . .

8 0.054665508 0.115609131 27.815012670 -306.9498282 0.206226587 . .

9 0.090617456 0.206226587 11.837309010 -103.5752303 0.320513652 . .

10 0.114287064 0.320513652 3.649768161 -51.93280188 0.390792320 . .

11 0.070278668 0.390792320 0.386757576 -42.35862479 0.399922871 . .

12 0.009130551 0.399922871 0.003213924 -41.67202648 0.399999995 . .

13 0.000077124 0.399999995 0.000000207 -41.66666701 0.400000000 . .

14 0.000000005 0.400000000 0.000000207 -41.66666701 0.400000000 0.400000000 0.000000000

これより、Newton-Raphson法による最尤推定値は p̂ = 0.4000となります。次に、Fisher’s Scoring法のくり返し計算のプ

ログラムは以下の通りです。

% exe2(0.001, Ix, f, 3 1 f)

出力は以下の通りです。

i diff x f x I x y sol check

1 10.000000000 0.001000000 3993.9939940 10010.010010 0.400000000 . .

2 0.399000000 0.400000000 -0.000000000 41.666666667 0.400000000 . .

3 0.000000000 0.400000000 -0.000000000 41.666666667 0.400000000 0.400000000 -0.000000000

26

Page 27: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

これより、Fisher’s Scoring法による最尤推定値は p̂ = 0.4000となります。

 最後に手計算により求めます。尤度方程式は F (p) = l′(p) = 0より、

F (p̂) = 0 ⇐⇒ 4 − 10p̂

p̂(1 − p̂)= 0

⇐⇒ p̂ =410

= 0.4

となり、SASの出力と一致します。

(ii) n = 111, x = 23より、(7)、(8)、(9)は、

F (p) =23 − 111p

p(1 − p), F ′(p) = −23

p2− 88

(1 − p)2, I(p) =

111p(1 − p)

となります。これより、プログラムの関数の指定の部分は以下の通りです。

*元の関数;

%macro f(x);

  ( 23 - 111*&x) / (&x * (1-&x))

%mend f;

*1 階微分;

%macro df(x);

 -23 /&x**2 - 88 / (1-&x)**2

%mend df;

*Fisher情報量;

%macro I(x);

  111 / (&x * (1-&x))

%mend I;

これより、Newton-Raphson法のくり返し計算のプログラムは以下のようになります。

% exe2(0.001, dfx,n, 3 2 n)

出力は以下の通りです。

27

Page 28: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 0.001000000 22911.911912 -23000088.18 0.001996166 . .

2 0.000996166 0.001996166 11433.910304 -5772195.879 0.003977026 . .

3 0.001980860 0.003977026 5694.8645503 -1454244.637 0.007893055 . .

4 0.003916029 0.007893055 2825.2538978 -369268.8835 0.015543995 . .

5 0.007650940 0.015543995 1390.2816406 -95283.26149 0.030135032 . .

6 0.014591037 0.030135032 672.49702450 -25420.59808 0.056589840 . .

7 0.026454807 0.056589840 313.15476159 -7280.964989 0.099599902 . .

8 0.043010063 0.099599902 133.18959131 -2427.060980 0.154476806 . .

9 0.054876904 0.154476806 44.812095009 -1086.924358 0.195705153 . .

10 0.041228347 0.195705153 8.111120029 -736.5496939 0.206717472 . .

11 0.011012319 0.206717472 0.331496633 -678.0754399 0.207206351 . .

12 0.000488879 0.207206351 0.000578673 -675.7111414 0.207207207 . .

13 0.000000856 0.207207207 0.000000002 -675.7070158 0.207207207 . .

14 0.000000000 0.207207207 0.000000002 -675.7070158 0.207207207 0.207207207 0.000000000

これより、Newton-Raphson法による最尤推定値は p̂ = 0.2072となります。

 次に、Fisher’s Scoring法のくり返し計算のプログラムは以下の通りです。

% exe2(0.001, Ix, f, 3 2 f)

出力は以下の通りです。

i diff x f x I x y sol check

1 10.000000000 0.001000000 22911.911912 111111.11111 0.207207207 . .

2 0.206207207 0.207207207 0.000000000 675.70701581 0.207207207 . .

3 0.000000000 0.207207207 0.000000000 675.70701581 0.207207207 0.207207207 0.000000000

これより、Fisher’s Scoring法による最尤推定値は p̂ = 0.2072となります。

 最後に手計算により求めます。

F (p̂) = 0 ⇐⇒ 23 − 111p̂

p̂(1 − p̂)= 0

⇐⇒ p̂ =23111

= 0.2072

となり、SASの出力と一致します。

28

Page 29: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

問題2-4:分散既知の正規分布

正規分布 N(µ, σ2)の確率密度関数は

f(x|µ, σ2) =1√

2πσ2exp

(− (x − µ)2

2σ2

)となります。これより、しばらくは「問題2-5」までを視野に入れて、平均・分散未知としておきますと、尤度関数は

L(µ, σ2) =n∏

i=1

(1√

2πσ2exp

(− (xi − µ)2

2σ2

))

=1

(√

2πσ2)nexp

n∑i=1

(xi − µ)2

2σ2

となり、対数尤度関数は

l(µ, σ2) = −n

2log (2πσ2) −

n∑i=1

(xi − µ)2

2σ2(10)

となります。以下、「問題2-4」に特化します。分散既知・平均未知とした場合の対数尤度関数を l1(µ)とおくと、

l1(µ) = −n

2log (2πσ2) −

n∑i=1

(xi − µ)2

2σ2

となります。l1(µ)の1階微分を F1(µ)とおくと、

F1(µ) = l′1(µ) =2

n∑i=1

(xi − µ)

2σ2=

n∑i=1

xi − nµ

σ2(11)

となります。µでもう1回微分すると

F ′1(µ) = − n

σ2(12)

となります。これより、Fisher情報量は

I1(µ) = −E[F ′1(µ)] =

n

σ2(13)

です。以上より、Newton-Raphson法によるくり返し計算は、(11)、(12)から

µm = µm−1 −F1(µm−1)F ′

1(µm−1)

= µm−1 −

nP

i=1xi−nµm−1

σ2

− nσ2

= µm−1 +

n∑i=1

xi − nµm−1

n

= µm−1 + x − µm−1

= x

29

Page 30: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

となります。次に、Fisher’s Scoring法によるくり返し計算は、(11)、(13)から

µm = µm−1 +F1(µm−1)I(µm−1)

= µm−1 +

nP

i=1xi−nµm−1

σ2

nσ2

= µm−1 +

n∑i=1

xi − nµm−1

n

= µm−1 + x − µm−1

= x

となります。以下、個別の数値を代入していきます。

(i) n = 6, σ2 = 2,6∑

i=1

xi = 2 + 3 + 4 + 6 + 8 + 12 = 35より、(11)、(12)、(13)は、

F1(µ) =35 − 6µ

2, F ′

1(µ) = −62

= −3, I(µ) =62

= 3

となります。これより、プログラムの関数指定の部分は以下のようになります。

*元の関数;

%macro f(x);

  (35 - 6*&x ) / 2

%mend f;

*1 階微分;

%macro df(x);

 -3

%mend df;

*Fisher情報量;

%macro I(x);

  3

%mend I;

これより、Newton-Raphson法のくり返し計算のプログラムは以下の通りです。

% exe2(10, dfx, n, 4 1 n)

出力は以下のようになります。

30

Page 31: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 10.000000000 -12.50000000 -3.000000000 5.833333333 . .

2 4.166666667 5.833333333 0.000000000 -3.000000000 5.833333333 . .

3 0.000000000 5.833333333 0.000000000 -3.000000000 5.833333333 5.833333333 0.000000000

これより、Newton-Raphson法による最尤推定値は µ̂ = 5.8333となります。

 次に、Fisher’s Scoring法のくり返し計算のプログラムは以下のようになります。

% exe2(10, Ix, f, 4 1 f)

出力は以下の通りです。

i diff x f x I x y sol check

1 10.000000000 10.000000000 -12.50000000 3.000000000 5.833333333 . .

2 4.166666667 5.833333333 0.000000000 3.000000000 5.833333333 . .

3 0.000000000 5.833333333 0.000000000 3.000000000 5.833333333 5.833333333 0.000000000

これより、Fisher’s Scoring法による最尤推定値は µ̂ = 5.8333となります。

 最後に、手計算により求めます。

F1(µ̂) = 0 ⇐⇒ 35 − 6µ̂

2= 0

⇐⇒ µ̂ =356

= 5.833

となり、SASの出力と一致します。

(ii) n = 5, σ2 = 10,5∑

i=1

xi = 110 + 112 + 123 + 138 + 140 = 623より、(11)、(12)、(13)は、

F1(µ) =623 − 5µ

10, F ′

1(µ) = − 510

= −12, I(µ) =

510

=12

となります。これよりプログラムの関数の指定の部分は以下のようになります。

*元の関数;

%macro f(x);

(623 - 5*&x ) / 10

%mend f;

*1 階微分;

%macro df(x);

- 1 / 2

%mend df;

31

Page 32: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

*Fisher情報量;

%macro I(x);

1 / 2

%mend I;

これより、Newton-Raphson法のくり返し計算のプログラムは以下の通りです。

% exe2(0.001, dfx, n, 4 2 n)

出力は以下のようになります。

i diff x f x df x y sol check

1 10.000000000 0.001000000 62.299500000 -0.500000000 124.60000000 . .

2 124.59900000 124.60000000 -0.000000000 -0.500000000 124.60000000 . .

3 0.000000000 124.60000000 -0.000000000 -0.500000000 124.60000000 124.60000000 0.000000000

これより、Newton-Raphson法による最尤推定値は µ̂ = 124.6000となります。

 次に、Fisher’s Scoring法のくり返し計算のプログラムは以下の通りです。

% exe2(0.001, Ix, f, 4 2 f)

出力は以下の通りです。

i diff x f x I x y sol check

1 10.000000000 0.001000000 62.299500000 0.500000000 124.60000000 . .

2 124.59900000 124.60000000 -0.000000000 0.500000000 124.60000000 . .

3 0.000000000 124.60000000 -0.000000000 0.500000000 124.60000000 124.60000000 0.000000000

これより、Fisher’s Scoring法による最尤推定値は µ̂ = 124.6000となります。

 最後に手計算で求めます。尤度方程式は F1(µ) = l′1(µ) = 0より、

F1(µ̂) = 0 ⇐⇒ 623 − 5µ̂

10= 0

⇐⇒ µ̂ =6235

= 124.6

となり、SASの出力と一致します。

問題2-5:平均既知の正規分布

「問題2-4」と、l(µ, σ2)の算出までは同じです。今度は平均既知・分散未知とした場合の対数尤度関数を l2(σ2)とお

くと、

l2(σ2) = −n

2log (2πσ2) −

n∑i=1

(xi − µ)2

2σ2

32

Page 33: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

となります。形は l(µ, σ2)や l1(µ)と全く同じですが、今回は σ2 のみ未知の関数 です。l2(σ2) の1階微分を F2(σ2) とお

くと、

F2(σ2) = l′2(σ2) = − n

2σ2+

n∑i=1

(xi − µ)2

2(σ2)2(14)

となります。σ2 でもう1回微分しますと、

F ′2(σ

2) =n

2(σ2)2−

2n∑

i=1

(xi − µ)2

2(σ2)3

=n

2(σ2)2−

n∑i=1

(xi − µ)2

(σ2)3(15)

となります。これより、Fisher情報量は

I2(σ2) = −E[F ′2(σ

2)]

= − n

2(σ2)2+

n∑i=1

E[(xi − µ)2]

(σ2)3

= − n

2(σ2)2+

nσ2

(σ2)3

= − n

2(σ2)2+

n

(σ2)2

=n

2(σ2)2(16)

です。以上より、Newton-Raphson法によるくり返し計算は (14)、(15)から

σ2m = σ2

m−1 −F2(σ2

m−1)F ′

2(σ2m−1)

= σ2m−1 −

− n2σ2 +

nP

i=1(xi−µ)2

2(σ2)2

n2(σ2)2 −

nP

i=1(xi−µ)2

(σ2)3

となります。次に、Fisher’s Scoring法によるくり返し計算は (14)、(16)から

σ2m = σ2

m−1 +F2(σ2

m−1)I(σ2

m−1)

= σ2m−1 +

− n2σ2 +

nP

i=1(xi−µ)2

2(σ2)2

n2(σ2

m−1)2

となります。以下、個別の数値を代入していきます。

(i) n = 5, µ = 5,5∑

i=1

(xi − µ)2 = (−3)2 + (−1)2 + 02 + 32 + 52 = 44より、(14)、(15)、(16)は、

F2(σ2) = − 52σ2

+44

2(σ2)2= − 5

σ2+

22(σ2)2

, F ′2(σ

2) =5

2(σ2)2− 44

(σ2)3, I2(σ2) =

52(σ2)2

となります。これより、プログラムの関数の指定の部分は以下の通りです。

33

Page 34: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

*元の関数;

%macro f(x);

 -5 /(2* &x) + 44 / (2*&x**2)

%mend f;

*1 階微分;

%macro df(x);

  5 /(2*&x**2) - 44 / &x**3

%mend df;

*Fisher情報量;

%macro I(x);

  5 / (2*&x**2)

%mend I;

これより、Newton-Raphson法のくり返し計算のプログラムは以下の通りです。

% exe2(8, dfx,n, 5 1 n)

出力は以下の通りです。

i diff x f x df x y sol check

1 10.000000000 8.000000000 0.031250000 -0.046875000 8.666666667 . .

2 0.666666667 8.666666667 0.004437870 -0.034308147 8.796019900 . .

3 0.129353234 8.796019900 0.000128606 -0.032341522 8.799996401 . .

4 0.003976501 8.799996401 0.000000116 -0.032283111 8.800000000 . .

5 0.000003599 8.800000000 0.000000000 -0.032283058 8.800000000 . .

6 0.000000000 8.800000000 0.000000000 -0.032283058 8.800000000 8.800000000 0.000000000

これより、Newton-Raphson法による最尤推定値は σ̂2 = 8.8000となります。

 次に、Fisher’s Scoring法のくり返し計算のプログラムは以下の通りです。

% exe2(8, Ix, f, 5 1 f)

出力は以下の通りです。

i diff x f x I x y sol check

1 10.000000000 8.000000000 0.031250000 0.039062500 8.800000000 . .

2 0.800000000 8.800000000 -0.000000000 0.032283058 8.800000000 . .

3 0.000000000 8.800000000 -0.000000000 0.032283058 8.800000000 8.800000000 -0.000000000

34

Page 35: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

これより、Fisher’s Scoring法による最尤推定値は σ̂2 = 8.8000となります。

 最後に手計算により求めます。尤度方程式は F2(σ2) = l′2(σ2) = 0より、

F2(σ̂2) = 0 ⇐⇒ − 5

2σ̂2+

44

2(σ̂2)2= 0

⇐⇒ σ̂2 =445

= 8.8

となり、SASの出力と一致します。

(ii) n = 7, µ = 100,7∑

i=1

(xi − µ)2 = (−17)2 + (−8)2 + 42 + 62 + 202 + 802 + 1002 = 17205より、(14)、(15)、(16)は、

F2(σ2) = − 72σ2

+172052(σ2)2

, F ′2(σ

2) =7

2(σ2)2− 17205

(σ2)3, I2(σ2) =

72(σ2)2

となります。これより、プログラムの関数の指定の部分は以下の通りです。

*元の関数;

%macro f(x);

 -7 / (2* &x) + 17205 / (2*&x**2)

%mend f;

*1 階微分;

%macro df(x);

  7 / (2*&x**2) - 17205 / (&x**3)

%mend df;

*Fisher情報量;

%macro I(x);

  7 / (2*&x**2)

%mend I;

これより、Newton-Raphson法のくり返し計算のプログラムは以下の通りです。

% exe2(10, dfx,n, 5 2 n)

出力は以下の通りです。

35

Page 36: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

i diff x f x df x y sol check

1 10.000000000 10.000000000 85.675000000 -17.17000000 14.989807804 . .

2 4.989807804 14.989807804 38.051851900 -5.092606709 22.461787102 . .

3 7.471979298 22.461787102 16.894638547 -1.511237602 33.641126817 . .

4 11.179339714 33.641126817 7.497186115 -0.448808140 50.345783993 . .

5 16.704657176 50.345783993 3.324376265 -0.133442589 75.258192331 . .

6 24.912408339 75.258192331 1.472351237 -0.039745959 112.30224079 . .

7 37.044048455 112.30224079 0.650933771 -0.011870052 167.14056590 . .

8 54.838325117 167.14056590 0.286995883 -0.003559472 247.76933732 . .

9 80.628771414 247.76933732 0.126003455 -0.001074116 365.07834525 . .

10 117.30900793 365.07834525 0.054956520 -0.000327327 532.97316927 . .

11 167.89482402 532.97316927 0.023717118 -0.000101321 767.05304865 . .

12 234.07987938 767.05304865 0.010057975 -0.000032174 1079.6687001 . .

13 312.61565142 1079.6687001 0.004138049 -0.000010668 1467.5647486 . .

14 387.89604848 1467.5647486 0.001609300 -0.000003818 1889.0424696 . .

15 421.47772101 1889.0424696 0.000557899 -0.000001571 2244.0578595 . .

16 355.01538998 2244.0578595 0.000148596 -0.000000827 2423.6385711 . .

17 179.58071157 2423.6385711 0.000020389 -0.000000613 2456.9174357 . .

18 33.278864617 2456.9174357 0.000000545 -0.000000580 2457.8564246 . .

19 0.938988847 2457.8564246 0.000000000 -0.000000579 2457.8571429 . .

20 0.000718277 2457.8571429 0.000000000 -0.000000579 2457.8571429 . .

21 0.000000000 2457.8571429 0.000000000 -0.000000579 2457.8571429 2457.8571429 0.000000000

これより、Newton-Raphson法による最尤推定値は σ̂2 = 2457.8571となります。

 次に、Fisher’s Scoring法のくり返し計算のプログラムは以下の通りです。

% exe2(10, Ix, f, 5 2 f)

出力は以下の通りです。

i diff x f x I x y sol check

1 10.000000000 10.000000000 85.675000000 0.035000000 2457.8571429 . .

2 2447.8571429 2457.8571429 0.000000000 0.000000579 2457.8571429 . .

3 0.000000000 2457.8571429 0.000000000 0.000000579 2457.8571429 2457.8571429 0.000000000

これより、Fisher’s Scoring法による最尤推定値は σ̂2 = 2457.8571となります。

36

Page 37: 【解答1】Newton-Raphson法と Fisher’s Scoring …€解答1】Newton-Raphson法と Fisher’s Scoring法の計算 H22 年度BioS 継続勉強会:第10・11回 土居正明

 最後に、手計算で求めます。尤度方程式は F2(σ2) = l′2(σ2) = 0より、

F2(σ̂2) = 0 ⇐⇒ 7

2σ̂2+

17205

2(σ̂2

)2 = 0

⇐⇒ λ̂ =17205

7= 2457.8571

となり、SASの出力と一致します。

37