メディアン検定(サイズの異なる2標本)

C言語によるサンプルソースコード : 使用関数名:nag_median_test (g08acc)

Keyword: メディアン, Median Test, 検定

概要

本サンプルはメディアン検定 (Median Test) を行うC言語によるサンプルプログラムです。 本サンプルは以下に示されるサイズの異なる2つの標本を分析対象とし、中央値より小さい値のデータの個数と有意確率を出力します。

メディアン検定のデータ 

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

入力データ

(本関数の詳細はnag_median_test のマニュアルページを参照)
1
2
3
4

このデータをダウンロード
nag_median_test (g08acc) Example Program Data
 13  6 12  7 12  7 10  7 10  7 10  7 10  8  9  8
 17  6 16  8 15  8 15 10 15 10 14 10 14 11 14 11
 13 12 13 12 13 12 12

  • 1行目はタイトル行で読み飛ばされます。
  • 2行目に1つ目の標本(x)を指定しています。
  • 3~4行目に2つ目の標本(y)を指定しています。

出力結果

(本関数の詳細はnag_median_test のマニュアルページを参照)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

この出力例をダウンロード
nag_median_test (g08acc) Example Program Results

Median test

Data values

    Group 1    13   6  12   7  12   7  10   7
               10   7  10   7  10   8   9   8
             
    Group 2    17   6  16   8  15   8  15  10
               15  10  14  10  14  11  14  11
               13  12  13  12  13  12  12

    13 scores below median in group 1
     6 scores below median in group 2

     Significance   0.00088

  • 7行目~8行目は読み込まれた1つ目の標本のデータがそのまま出力されています。
  • 10行目~12行目は読み込まれた2つ目の標本のデータがそのまま出力されています。
  • 14行目には1つめの標本の中で中央値より小さい値のデータ数が出力されています。
  • 15行目には2つめの標本の中で中央値より小さい値のデータ数が出力されています。
  • 17行目には有意確率が出力されています。

ソースコード

(本関数の詳細はnag_median_test のマニュアルページを参照)

※本サンプルソースコードはnAG数値計算ライブラリ(Windows, Linux, MAC等に対応)の関数を呼び出します。
サンプルのコンパイル及び実行方法

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

このソースコードをダウンロード
/* nag_median_test (g08acc) Example Program.
 *
 * CLL6I261D/CLL6I261DL Version.
 *
 * Copyright 2017 Numerical Algorithms Group.
 *
 * Mark 26.1, 2017.
 */

#include <stdio.h>
#include <nag.h>
#include <nag_stdlib.h>
#include <nagg08.h>

int main(void)
{
  Integer above, below, exit_status = 0, i, n1, n2;
  NagError fail;
  double p, *x = 0, *y = 0;

  INIT_FAIL(fail);

  printf("nag_median_test (g08acc) Example Program Results\n");

  /* Skip heading in data file */
  scanf("%*[^\n]");

  n1 = 16;
  n2 = 23;
  if (!(x = nAG_ALLOC(n1, double))
      || !(y = nAG_ALLOC(n2, double)))
  {
    printf("Allocation failure\n");
    exit_status = -1;
    goto END;
  }

  for (i = 1; i <= n1; ++i)
    scanf("%lf", &x[i - 1]);
  for (i = 1; i <= n2; ++i)
    scanf("%lf", &y[i - 1]);
  printf("\nMedian test\n\n");
  printf("Data values\n\n");
  printf("    Group 1  ");
  for (i = 1; i <= n1; ++i)
    printf("%4.0f%s", x[i - 1], i % 8 ? "" : "\n             ");
  printf("\n");
  printf("    Group 2  ");
  for (i = 1; i <= n2; ++i)
    printf("%4.0f%s", y[i - 1], i % 8 ? "" : "\n             ");
  printf("\n");
  /* nag_median_test (g08acc).
   * Median test on two samples of unequal size
   */
  nag_median_test(n1, x, n2, y, &above, &below, &p, &fail);
  if (fail.code != NE_NOERROR) {
    printf("Error from nag_median_test (g08acc).\n%s\n", fail.message);
    exit_status = 1;
    goto END;
  }

  printf("\n");
  printf("%6ld%s\n", above, " scores below median in group 1");
  printf("%6ld%s\n", below, " scores below median in group 2");
  printf("\n%s%8.5f\n", "     Significance  ", p);
END:
  nAG_FREE(x);
  nAG_FREE(y);
  return exit_status;
}


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