Keyword: 3点比較法, Triplets Test, 検定
概要
本サンプルは3点比較法(Triplets Test) を行うFortranによるサンプルプログラムです。 本サンプルは100個の疑似乱数の五つの標本を分析対象とし、カイ二乗検定統計量、自由度と上側確率を算出します。
※本サンプルはnAG Fortranライブラリに含まれるルーチン g08ecf() のExampleコードです。本サンプル及びルーチンの詳細情報は g08ecf のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで
入力データ
(本ルーチンの詳細はg08ecf のマニュアルページを参照)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
このデータをダウンロード |
G08ECF Example Program Data 5 2 :: NSAMP,MSIZE ## Sample 1 100 :: N 0.11389 0.84996 0.84821 0.18431 0.14104 0.03144 0.68013 0.13297 0.27696 0.86743 0.32674 0.87990 0.85580 0.47830 0.75318 0.93643 0.19396 0.31091 0.34956 0.94923 0.18940 0.24715 0.62503 0.50406 0.05686 0.26481 0.68746 0.80387 0.48184 0.25034 0.20141 0.35062 0.58591 0.93407 0.93848 0.98496 0.66180 0.35957 0.71122 0.35875 0.96504 0.60832 0.36569 0.73499 0.25223 0.88296 0.06659 0.78113 0.40016 0.31768 0.47655 0.15008 0.20608 0.62633 0.62737 0.16400 0.44104 0.56993 0.13178 0.50499 0.44176 0.44385 0.75372 0.82178 0.60227 0.98944 0.33133 0.81067 0.40798 0.71608 0.69306 0.22144 0.47942 0.65697 0.50881 0.25223 0.82373 0.50148 0.65246 0.53275 0.92935 0.13455 0.19901 0.78844 0.14006 0.50600 0.41069 0.49703 0.47858 0.02210 0.91444 0.10784 0.54642 0.63091 0.14419 0.80457 0.51336 0.71451 0.12564 0.88051 ## Sample 2 100 :: N 0.84976 0.63094 0.46109 0.80538 0.62387 0.90670 0.09969 0.67992 0.70503 0.09560 0.69991 0.37616 0.42030 0.23665 0.28771 0.24935 0.94950 0.12008 0.66217 0.20900 0.97026 0.98368 0.80206 0.43918 0.73232 0.03533 0.97995 0.06637 0.54726 0.48530 0.68865 0.94302 0.33718 0.61014 0.70127 0.36827 0.51335 0.24476 0.14203 0.02428 0.73691 0.22192 0.40374 0.85757 0.83335 0.73309 0.05563 0.17332 0.72253 0.43291 0.77476 0.35967 0.94242 0.61337 0.43513 0.80573 0.70630 0.83115 0.24622 0.45445 0.53595 0.31476 0.87968 0.75365 0.86291 0.34051 0.62232 0.16762 0.45506 0.15561 0.76615 0.77421 0.06035 0.72290 0.93712 0.83223 0.40044 0.96575 0.73176 0.27827 0.02174 0.75326 0.82876 0.64979 0.98038 0.61054 0.87742 0.95273 0.39091 0.42146 0.89020 0.08617 0.90953 0.00416 0.70915 0.21123 0.95342 0.19269 0.68252 0.27600 ## Sample 3 100 :: N 0.40629 0.96486 0.66026 0.07134 0.35492 0.34348 0.87164 0.59746 0.43724 0.26730 0.11840 0.04604 0.49037 0.99669 0.32784 0.34772 0.93599 0.95806 0.80635 0.18897 0.60061 0.83359 0.63026 0.14084 0.05323 0.70247 0.28532 0.09572 0.36153 0.50378 0.42679 0.71801 0.51010 0.72090 0.97537 0.29919 0.30059 0.23610 0.25668 0.07510 0.92481 0.65715 0.69686 0.27840 0.20555 0.64015 0.05725 0.25120 0.32288 0.22320 0.16582 0.71466 0.34030 0.55575 0.51468 0.18013 0.74670 0.21455 0.52649 0.47487 0.85805 0.24616 0.11459 0.38690 0.83475 0.83629 0.83754 0.18998 0.46715 0.24162 0.19488 0.03281 0.39291 0.37834 0.97169 0.65229 0.88913 0.53777 0.05780 0.20468 0.33788 0.10130 0.72771 0.31306 0.74279 0.26546 0.37941 0.04878 0.03061 0.52394 0.74104 0.97192 0.04550 0.81382 0.44430 0.32402 0.06791 0.73602 0.22640 0.67260 ## Sample 4 100 :: N 0.46016 0.95901 0.37581 0.45836 0.26220 0.30389 0.46845 0.52940 0.71121 0.89187 0.33346 0.81783 0.07194 0.01163 0.63324 0.69208 0.28685 0.02491 0.97931 0.53225 0.47009 0.12105 0.80291 0.21191 0.74158 0.78269 0.30493 0.06901 0.54152 0.88463 0.60358 0.81066 0.77771 0.74140 0.65465 0.32613 0.42757 0.36584 0.42506 0.39980 0.04686 0.79805 0.53593 0.15562 0.09924 0.68011 0.61072 0.88701 0.56239 0.64343 0.19223 0.07325 0.40971 0.85265 0.27507 0.88884 0.10551 0.62646 0.11055 0.91368 0.58845 0.68942 0.29994 0.30395 0.45696 0.88127 0.38773 0.12028 0.48981 0.28535 0.84174 0.46451 0.17140 0.90827 0.49424 0.29557 0.25788 0.76838 0.19073 0.26051 0.47442 0.03224 0.32034 0.97378 0.43992 0.13338 0.45850 0.02122 0.30482 0.49427 0.89839 0.01770 0.85679 0.90157 0.29537 0.15213 0.21464 0.37237 0.86199 0.60364 ## Sample 5 100 :: N 0.66793 0.00711 0.17970 0.98702 0.50449 0.88105 0.08259 0.77263 0.06050 0.73389 0.86517 0.76088 0.40239 0.50178 0.13811 0.63441 0.91949 0.48518 0.96923 0.08820 0.14556 0.28177 0.99598 0.46908 0.83279 0.26252 0.64987 0.20426 0.41060 0.76120 0.78022 0.44662 0.04918 0.36644 0.62337 0.16849 0.63846 0.41247 0.54464 0.05721 0.79852 0.23048 0.76139 0.22493 0.45640 0.07671 0.96152 0.50771 0.02376 0.49537 0.07095 0.86385 0.71385 0.35192 0.68827 0.49737 0.44847 0.26744 0.46983 0.44270 0.78845 0.72560 0.38886 0.45552 0.45917 0.64241 0.44654 0.42665 0.01122 0.76716 0.01727 0.33687 0.02836 0.48409 0.02777 0.63643 0.59711 0.02880 0.63758 0.56746 0.41342 0.40939 0.61578 0.89186 0.70151 0.38707 0.94021 0.17271 0.27477 0.04308 0.91821 0.97517 0.57249 0.14325 0.46058 0.26434 0.85927 0.77526 0.64717 0.08314
- 1行目はタイトル行で読み飛ばされます。
- 2行目に標本の数(nsamp=5)、トリプレット(三つ組)の数のカウント数の行列のサイズ(msize=2)を指定しています。
- 4行目に一つ目の標本のサイズ(n)を指定しています。
- 5~14行目に一つ目の標本の観測値(x)を指定しています。
- 16行目に二つ目の標本のサイズ(n)を指定しています。
- 17~26行目に二つ目の標本の観測値(x)を指定しています。
- 28行目に三つ目の標本のサイズ(n)を指定しています。
- 29~38行目に三つ目の標本の観測値(x)を指定しています。
- 40行目に四つ目の標本のサイズ(n)を指定しています。
- 41~50行目に四つ目の標本の観測値(x)を指定しています。
- 52行目に五つ目の標本のサイズ(n)を指定しています。
- 53~62行目に五つ目の標本の観測値(x)を指定しています。
出力結果
(本ルーチンの詳細はg08ecf のマニュアルページを参照)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
この出力例をダウンロード |
G08ECF Example Program Results Count matrix I = 1 1 2 1 22 25 2 18 17 I = 2 1 2 1 23 24 2 24 13 Expected value = 20.75 CHISQ = 6.1446 DF = 7.00 Prob = 0.5230
- 5~13行目にはトリプレットの数のカウント行列が出力されています。
- 15行目にはトリプレットの数の予測値が出力されています。
- 16行目にはカイ二乗検定統計量が出力されています。
- 17行目にはカイ二乗統計量の自由度が出力されています。
- 18行目にはカイ二乗検定統計量に対応する上側確率(upper tail probability)が出力されています。
ソースコード
(本ルーチンの詳細はg08ecf のマニュアルページを参照)
※本サンプルソースコードは科学技術・統計計算ライブラリである「nAG Fortranライブラリ」のルーチンを呼び出します。
サンプルのコンパイル及び実行方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
このソースコードをダウンロード |
PROGRAM g08ecfe ! G08ECF Example Program Text ! Mark 23 Release. nAG Copyright 2011. ! .. Use Statements .. USE nag_library, ONLY : g08ecf, nag_wp, x04eaf ! .. Implicit None Statement .. IMPLICIT NONE ! .. Parameters .. INTEGER, PARAMETER :: nin = 5, nout = 6 ! .. Local Scalars .. REAL (KIND=nag_wp) :: chi, df, ex, prob INTEGER :: i, ifail, ldc, msize, n, nsamp, pn LOGICAL :: bapp CHARACTER (1) :: cl CHARACTER (80) :: title ! .. Local Arrays .. REAL (KIND=nag_wp), ALLOCATABLE :: x(:) INTEGER, ALLOCATABLE :: ncount(:,:,:) ! .. Executable Statements .. WRITE (nout,*) 'G08ECF Example Program Results' WRITE (nout,*) ! Skip main heading in data file READ (nin,*) ! Read in number of samples READ (nin,*) nsamp, msize ldc = msize ALLOCATE (ncount(ldc,ldc,msize),x(1)) IF (nsamp==1) THEN cl = 'S' ELSE cl = 'F' END IF pn = 0 bapp = .FALSE. DO i = 1, nsamp ! Skip run heading in data file READ (nin,*) ! Read in sample size READ (nin,*) n IF (n>pn) THEN ! Reallocate X if required DEALLOCATE (x) ALLOCATE (x(n)) pn = n END IF ! Read in the sample READ (nin,*) x(1:n) ! Process the sample ifail = -1 CALL g08ecf(cl,n,x,msize,ncount,ldc,ex,chi,df,prob,ifail) IF (ifail==7) THEN bapp = .TRUE. ELSE IF (ifail/=0) THEN GO TO 20 END IF ! Adjust CL for intermediate calls IF (i<nsamp-1) THEN cl = 'I' ELSE cl = 'L' END IF END DO ! Display results WRITE (nout,*) 'Count matrix' DO i = 1, msize WRITE (nout,*) WRITE (title,99999) 'I = ', i FLUSH (nout) ifail = 0 CALL x04eaf('General',' ',msize,msize,ncount(1,1,i),ldc,title,ifail) END DO WRITE (nout,*) WRITE (nout,99998) 'Expected value = ', ex WRITE (nout,99997) 'CHISQ = ', chi WRITE (nout,99998) 'DF = ', df WRITE (nout,99997) 'Prob = ', prob IF (bapp) THEN WRITE (nout,*) ' ** Note : expected value <= 5.0' WRITE (nout,*) & ' the chi square approximation may not be very good.' END IF 20 CONTINUE 99999 FORMAT (1X,A,I2) 99998 FORMAT (1X,A,F8.2) 99997 FORMAT (1X,A,F10.4) END PROGRAM g08ecfe