Keyword: 連検定, Runs Test, 検定
概要
本サンプルは連検定(Runs Test) を行うFortranによるサンプルプログラムです。 本サンプルは100個の疑似乱数の五つの標本を分析対象とし、見つかった連の総数、カイ二乗検定統計量、自由度と上側確率を算出します。
※本サンプルはnAG Fortranライブラリに含まれるルーチン g08eaf() のExampleコードです。本サンプル及びルーチンの詳細情報は g08eaf のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで
入力データ
(本ルーチンの詳細はg08eaf のマニュアルページを参照)| このデータをダウンロード |
G08EAF Example Program Data 5 0 6 :: NSAMP,M,MAXR ## 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)、連の最大数(m=0)、集計が必要な連の最長の長さ(maxr=6)を指定しています。連の最大数"0"は制限がないことを意味しています。
- 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)を指定しています。
出力結果
(本ルーチンの詳細はg08eaf のマニュアルページを参照)| この出力例をダウンロード |
G08EAF Example Program Results
Total number of runs found = 251
Count
1 2 3 4 5 >5
77 120 39 12 1 2
Expect
1 2 3 4 5 >5
83.8 104.0 45.6 13.1 2.9 0.6
Covariance matrix
1 2 3 4 5 6
1 64.2222 -9.8639 -7.4780 -3.5759 -1.1406 -0.3305
2 -9.8639 70.2942 -24.4639 -9.8092 -2.7386 -0.7103
3 -7.4780 -24.4639 29.9473 -5.8284 -1.5474 -0.3852
4 -3.5759 -9.8092 -5.8284 11.0343 -0.5319 -0.1289
5 -1.1406 -2.7386 -1.5474 -0.5319 2.7169 -0.0318
6 -0.3305 -0.7103 -0.3852 -0.1289 -0.0318 0.5809
Chisq = 9.7559
DF = 6.0
Prob = 0.1353
- 3行目には見つかった連の総数が出力されています。
- 6〜7行目には連の長さごとの連の数が出力されています。
- 10〜11行目には連の長さごとの連の数の期待値が出力されています。
- 14〜20行目には連の数の共分散行列が出力されています。
- 22行目にはカイ二乗検定統計量が出力されています。
- 23行目にはカイ二乗統計の自由度が出力されています。
- 24行目にはカイ二乗検定統計量に対応する上側確率(upper tail probability)が出力されています。
ソースコード
(本ルーチンの詳細はg08eaf のマニュアルページを参照)
※本サンプルソースコードは科学技術・統計計算ライブラリである「nAG Fortranライブラリ」のルーチンを呼び出します。
サンプルのコンパイル及び実行方法
| このソースコードをダウンロード |
PROGRAM g08eafe
! G08EAF Example Program Text
! Mark 23 Release. nAG Copyright 2011.
! .. Use Statements ..
USE nag_library, ONLY : g08eaf, nag_wp, x04caf
! .. Implicit None Statement ..
IMPLICIT NONE
! .. Parameters ..
INTEGER, PARAMETER :: nin = 5, nout = 6
! .. Local Scalars ..
REAL (KIND=nag_wp) :: chi, df, prob
INTEGER :: i, ifail, ldcov, lwrk, m, maxr, n, &
nruns, nsamp, pn
CHARACTER (1) :: cl
! .. Local Arrays ..
REAL (KIND=nag_wp), ALLOCATABLE :: cov(:,:), ex(:), wrk(:), x(:)
INTEGER, ALLOCATABLE :: ncount(:)
! .. Executable Statements ..
WRITE (nout,*) 'G08EAF Example Program Results'
WRITE (nout,*)
! Skip main heading in data file
READ (nin,*)
! Read in number of samples
READ (nin,*) nsamp, m, maxr
ldcov = maxr
lwrk = maxr*(maxr+5)/2 + 1
ALLOCATE (ncount(maxr),cov(ldcov,maxr),ex(maxr),wrk(lwrk),x(1))
IF (nsamp==1) THEN
cl = 'S'
ELSE
cl = 'F'
END IF
pn = 0
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 g08eaf(cl,n,x,m,maxr,nruns,ncount,ex,cov,ldcov,chi,df,prob,wrk, &
lwrk,ifail)
IF (ifail/=0 .AND. ifail/=10) 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,99999) 'Total number of runs found = ', nruns
IF (ifail==10) THEN
WRITE (nout,*) &
' ** Note : the number of runs requested were not found.'
END IF
WRITE (nout,*)
WRITE (nout,*) ' Count'
WRITE (nout,*) &
' 1 2 3 4 5 >5'
WRITE (nout,99998) ncount(1:maxr)
WRITE (nout,*)
WRITE (nout,*) ' Expect'
WRITE (nout,*) &
' 1 2 3 4 5 >5'
WRITE (nout,99997) ex(1:maxr)
WRITE (nout,*)
FLUSH (nout)
ifail = 0
CALL x04caf('General',' ',maxr,maxr,cov,ldcov,'Covariance matrix', &
ifail)
WRITE (nout,*)
WRITE (nout,99996) 'Chisq = ', chi
WRITE (nout,99995) 'DF = ', df
WRITE (nout,99996) 'Prob = ', prob
20 CONTINUE
99999 FORMAT (1X,A,I10)
99998 FORMAT (3X,6I9)
99997 FORMAT (3X,6F9.1)
99996 FORMAT (1X,A,F10.4)
99995 FORMAT (1X,A,F7.1)
END PROGRAM g08eafe
