Keyword: フリードマン, Friedman Test, 検定, 二元配置分散分析
概要
本サンプルはフリードマンの二元配置分散分析(フリードマン検定/Friedman Test) を行うFortranによるサンプルプログラムです。 本サンプルは以下に示される3つの標本を分析対象とし、検定統計量と自由度、有意確率を出力します。
※本サンプルはnAG Fortranライブラリに含まれるルーチン g08aef() のExampleコードです。本サンプル及びルーチンの詳細情報は g08aef のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで
入力データ
(本ルーチンの詳細はg08aef のマニュアルページを参照)| このデータをダウンロード |
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 のマニュアルページを参照)| この出力例をダウンロード |
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ライブラリ」のルーチンを呼び出します。
サンプルのコンパイル及び実行方法
| このソースコードをダウンロード |
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
