フリードマン検定

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

Keyword: フリードマン, Friedman Test, 検定, 二元配置分散分析

概要

本サンプルはフリードマンの二元配置分散分析(フリードマン検定/Friedman Test) を行うFortranによるサンプルプログラムです。 本サンプルは以下に示される3つの標本を分析対象とし、検定統計量と自由度、有意確率を出力します。

フリードマン検定のデータ 

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

入力データ

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

このデータをダウンロード
G08AEF Example Program Data
3  18                                 :: K,N
 1.0 2.0 1.0 1.0 3.0 2.0 3.0 1.0 3.0 
 3.0 2.0 2.0 3.0 2.0 2.5 3.0 3.0 2.0
 3.0 3.0 3.0 2.0 1.0 3.0 2.0 3.0 1.0 
 1.0 3.0 3.0 2.0 3.0 2.5 2.0 2.0 3.0
 2.0 1.0 2.0 3.0 2.0 1.0 1.0 2.0 2.0 
 2.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0  :: End of X

  • 1行目はタイトル行で読み飛ばされます。
  • 2行目に標本の数(k)と各標本のサイズ(n)を指定しています。
  • 3~8行目に3つの標本の観察データ(x)を指定しています。

出力結果

(本ルーチンの詳細はg08aef のマニュアルページを参照)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

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

 Friedman test

 Data values
           1          2          3          4          5          6          7
 1      1.0000     2.0000     1.0000     1.0000     3.0000     2.0000     3.0000
 2      3.0000     3.0000     3.0000     2.0000     1.0000     3.0000     2.0000
 3      2.0000     1.0000     2.0000     3.0000     2.0000     1.0000     1.0000

             8          9         10         11         12         13         14
 1      1.0000     3.0000     3.0000     2.0000     2.0000     3.0000     2.0000
 2      3.0000     1.0000     1.0000     3.0000     3.0000     2.0000     3.0000
 3      2.0000     2.0000     2.0000     1.0000     1.0000     1.0000     1.0000

            15         16         17         18
 1      2.5000     3.0000     3.0000     2.0000
 2      2.5000     2.0000     2.0000     3.0000
 3      1.0000     1.0000     1.0000     1.0000

 Test statistic        8.583
 Degrees of freedom        2
 Significance          0.014

  • 6行目~19行目に読み込まれた3つの標本のデータがそれぞれ3行に渡って18個ずつ出力されています。"1"の行に1つ目の標本データ、"2"の行に2つ目の標本データ、"3"の行に3つ目の標本データが出力されています。
  • 21行目には検定統計量が出力されています。
  • 22行目には自由度が出力されています。
  • 23行目には有意確率が出力されています。

ソースコード

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

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

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

!      G08AEF Example Program Text

!      Mark 23 Release. nAG Copyright 2011.

!      .. Use Statements ..
       USE nag_library, ONLY : g08aef, nag_wp, x04caf
!      .. Implicit None Statement ..
       IMPLICIT NONE
!      .. Parameters ..
       INTEGER, PARAMETER              :: nin = 5, nout = 6
!      .. Local Scalars ..
       REAL (KIND=nag_wp)              :: fr, p
       INTEGER                         :: i, ifail, k, ldx, n
!      .. Local Arrays ..
       REAL (KIND=nag_wp), ALLOCATABLE :: w1(:), w2(:), x(:,:)
!      .. Executable Statements ..
       WRITE (nout,*) 'G08AEF Example Program Results'
       WRITE (nout,*)

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

!      Read in the problem size
       READ (nin,*) k, n

       ldx = k
       ALLOCATE (x(ldx,n),w1(k),w2(k))

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

!      Display title
       WRITE (nout,*) 'Friedman test'
       WRITE (nout,*)
       FLUSH (nout)

!      Display input data
       ifail = 0
       CALL x04caf('General',' ',k,n,x,ldx,'Data values',ifail)

!      Perform ANOVA
       ifail = 0
       CALL g08aef(x,ldx,k,n,w1,w2,fr,p,ifail)

!      Display results
       WRITE (nout,*)
       WRITE (nout,99999) 'Test statistic       ', fr
       WRITE (nout,99998) 'Degrees of freedom   ', k - 1
       WRITE (nout,99999) 'Significance         ', p

99999  FORMAT (1X,A,F6.3)
99998  FORMAT (1X,A,I6)
    END PROGRAM g08aefe


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