Keyword: ノンパラメトリック, Sign Test, 検定
概要
本サンプルは符号検定 (Sign Test) を行うC言語によるサンプルプログラムです。 本サンプルは以下に示される2つの関連した(ペアの)標本を分析対象とし、検定統計量と P値 を算出します。
※本サンプルはnAG Cライブラリに含まれる関数 nag_sign_test() のExampleコードです。本サンプル及び関数の詳細情報は nag_sign_test のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで
入力データ
(本関数の詳細はnag_sign_test のマニュアルページを参照)| このデータをダウンロード |
nag_sign_test (g08aac) Example Program Data 4 4 5 5 3 2 5 3 1 5 5 5 4 5 5 5 5 2 3 3 3 3 3 3 3 2 3 2 2 5 2 5 3 1
- 1行目はタイトル行で読み飛ばされます。
- 2行目に一つ目の標本(x)を指定しています。
- 3行目に二つ目の標本(y)を指定したいます。
出力結果
(本関数の詳細はnag_sign_test のマニュアルページを参照)| この出力例をダウンロード |
nag_sign_test (g08aac) Example Program Results Sign test Data values 4 4 5 5 3 2 5 3 1 5 5 5 4 5 5 5 5 2 3 3 3 3 3 3 3 2 3 2 2 5 2 5 3 1 Test statistic 3 Observations 14 Lower tail prob. 0.029
- 5行目〜9行目は読み込まれたデータがそのまま出力されています。
- 11行目は符号検定の統計量が出力されています。
- 12行目は観察数が出力されています。
- 13行目には下側確率 (lower tail probability) である P値 が出力されています。
ソースコード
(本関数の詳細はnag_sign_test のマニュアルページを参照)
※本サンプルソースコードはnAG数値計算ライブラリ(Windows, Linux, MAC等に対応)の関数を呼び出します。
サンプルのコンパイル及び実行方法
| このソースコードをダウンロード |
/* nag_sign_test (g08aac) 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 exit_status = 0, i, n, non_tied, s;
NagError fail;
double p, *x = 0, *y = 0;
INIT_FAIL(fail);
printf("nag_sign_test (g08aac) Example Program Results\n");
/* Skip heading in data file */
scanf("%*[^\n]");
n = 17;
if (!(x = nAG_ALLOC(n, double))
|| !(y = nAG_ALLOC(n, double)))
{
printf("Allocation failure\n");
exit_status = -1;
goto END;
}
for (i = 1; i <= n; i++)
scanf("%lf", &x[i - 1]);
for (i = 1; i <= n; i++)
scanf("%lf", &y[i - 1]);
printf("\n%s\n\n", "Sign test");
printf("%s\n\n", "Data values");
for (i = 1; i <= n; i++)
printf("%3.0f%s", x[i - 1], i % n ? "" : "\n");
printf("\n");
for (i = 1; i <= n; i++)
printf("%3.0f%s", y[i - 1], i % n ? "" : "\n");
printf("\n");
/* nag_sign_test (g08aac).
* Sign test on two paired samples
*/
nag_sign_test(n, x, y, &s, &p, &non_tied, &fail);
if (fail.code != NE_NOERROR) {
printf("Error from nag_sign_test (g08aac).\n%s\n", fail.message);
exit_status = 1;
goto END;
}
printf("%s%5ld\n", "Test statistic ", s);
printf("%s%5ld\n", "Observations ", non_tied);
printf("%s%5.3f\n", "Lower tail prob. ", p);
END:
nAG_FREE(x);
nAG_FREE(y);
return exit_status;
}
