1標本コルモゴロフ・スミルノフ検定

Fortranによるサンプルソースコード : 使用ルーチン名:G08CBF

Keyword: コルモゴロフ・スミルノフ, Kolmogorov-Smirnov Test, 検定, 1標本

概要

本サンプルは1標本コルモゴロフ・スミルノフ検定(the one sample Kolmogorov-Smirnov Test) を行うFortranによるサンプルプログラムです。 本サンプルは以下に示される標本を分析対象とし、正規分布の場合の検定統計量DとZ統計量、裾確率を算出します。

1標本コルモゴロフ・スミルノフ検定のデータ 

※本サンプルはnAG Fortranライブラリに含まれるルーチン G08CBF() のExampleコードです。本サンプル及びルーチンの詳細情報は g08cbf のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで

入力データ

(本ルーチンの詳細はg08cbf のマニュアルページを参照)
1
2
3
4
5
6

このデータをダウンロード
G08CBF Example Program Data
 30   1                                            :: N,NTYPE
 0.01 0.30 0.20 0.90 1.20 0.09 1.30 0.18 0.90 0.48
 1.98 0.03 0.50 0.07 0.70 0.60 0.95 1.00 0.31 1.45
 1.04 1.25 0.15 0.75 0.85 0.22 1.56 0.81 0.57 0.55 :: End of X
'N' 'E'                                            :: DIST,ESTIMA

  • 1行目はタイトル行で読み飛ばされます。
  • 2行目に標本の観測値の個数(n=30)、計算される検定統計量の種類(ntype=1)を指定しています。検定統計量の種類"1"は標本の累積分布関数と理論上の累積分布関数との最大絶対偏差を計算することを意味しています。
  • 3~5行目に標本の観測値(x)を指定しています。
  • 6行目にデータが生じると思われる帰無分布の種類(dist='N')、帰無分布のパラメータ値が既知の値かデータから推測されるか(estima='E')を指定しています。"N"は正規分布を意味し、"E"はパラメータ値が推測されることを意味しています。

出力結果

(本ルーチンの詳細はg08cbf のマニュアルページを参照)
1
2
3
4
5
6
7
8
9

この出力例をダウンロード
 G08CBF Example Program Results

 K-S Test
 Distribution: N
 Parameters  :   0.6967  0.2564

 Test statistic D =   0.1108
 Z statistic      =   0.6068
 Tail probability =   0.8925

  • 4行目目には帰無分布の種類"N"が出力されています。
  • 5行目には帰無分布のパラメータである、平均と分散が出力されています。
  • 7行目には検定統計量Dが出力されています。
  • 8行目にはZ統計量が出力されています。
  • 9行目には裾確率が出力されています。

ソースコード

(本ルーチンの詳細はg08cbf のマニュアルページを参照)

※本サンプルソースコードは科学技術・統計計算ライブラリである「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

このソースコードをダウンロード
    PROGRAM g08cbfe

!      G08CBF Example Program Text

!      Mark 23 Release. nAG Copyright 2011.

!      .. Use Statements ..
       USE nag_library, ONLY : g08cbf, nag_wp
!      .. Implicit None Statement ..
       IMPLICIT NONE
!      .. Parameters ..
       INTEGER, PARAMETER              :: nin = 5, nout = 6
!      .. Local Scalars ..
       REAL (KIND=nag_wp)              :: d, p, z
       INTEGER                         :: ifail, n, npar, ntype
       CHARACTER (1)                   :: dist, estima
!      .. Local Arrays ..
       REAL (KIND=nag_wp)              :: par(2)
       REAL (KIND=nag_wp), ALLOCATABLE :: sx(:), x(:)
!      .. Executable Statements ..
       WRITE (nout,*) 'G08CBF Example Program Results'
       WRITE (nout,*)

!      Skip heading in data file
       READ (nin,*)

!      Read in problem size and the statistic to calculate
       READ (nin,*) n, ntype

       ALLOCATE (x(n),sx(n))

!      Read in data
       READ (nin,*) x(1:n)

!      Read in information on the distribution to test against
       READ (nin,*) dist, estima

       SELECT CASE (dist)
       CASE ('P','p','E','e')
          npar = 1
       CASE DEFAULT
          npar = 2
       END SELECT

!      Read in the distribution parameters if required
!      otherwise they are estimated from the data by G08CBF
!      and PAR need not be set
       IF (estima=='S' .OR. estima=='s') THEN
          READ (nin,*) par(1:npar)
       ELSE IF (dist=='B' .OR. dist=='b') THEN
!         Read in M for the binomial distribution
          READ (nin,*) par(1)
       END IF

!      Perform K-S test
       ifail = 0
       CALL g08cbf(n,x,dist,par,estima,ntype,d,z,p,sx,ifail)

!      Display results
       WRITE (nout,*) 'K-S Test'
       WRITE (nout,*) 'Distribution: ', dist
       WRITE (nout,99999) 'Parameters  : ', par(1:npar)
       WRITE (nout,*)
       WRITE (nout,99999) 'Test statistic D = ', d
       WRITE (nout,99999) 'Z statistic      = ', z
       WRITE (nout,99999) 'Tail probability = ', p

99999  FORMAT (1X,A,2F8.4)
    END PROGRAM g08cbfe


関連情報
© 日本ニューメリカルアルゴリズムズグループ株式会社 2025
Privacy Policy  /  Trademarks