皆様
T得点のベイズ推定を行うコンソールアプリケーションも
作成してみました。コードは以下の通りです。
#include "stdafx.h"
#include "calcz.h"
using namespace System;
using namespace Calcz;
double sqr(double v){
return v * v;
}
int main(array<System::String ^> ^args)
{
double rho, k;
int n;
Console::Write("信頼性係数 = ");
rho = double::Parse(Console::ReadLine());
Console::Write("受験者総数N = ");
n = int::Parse(Console::ReadLine());
Console::Write("順位k(1:最下位 <= k <= N:最上位)= ");
k = double::Parse(Console::ReadLine());
double p = (k - 0.5) / double(n);
double z = calc_z_normal( p );
double X = 50.0 + 10.0 * z;
double sgmE = Math::Sqrt(100.0 * (1.0 - rho));
double sgmTn = Math::Sqrt(sqr(sgmE * 10.0) / (sqr(sgmE) +
sqr(10.0)));
double meanTn = (sqr(10.0) * X + sqr(sgmE) * 50.0) / (sqr(10.0) +
sqr(sgmE));
Console::WriteLine("一様分布: Mean = " + X.ToString("F1")
+ " 95%Invl = [" + (X -
1.96 * sgmE).ToString("F1")
+ ", " + (X + 1.96 * sgmE).
ToString("F1") + "]");
Console::WriteLine("正規分布: Mean = " + meanTn.ToString("F1")
+ " 95%Invl = [" +
(meanTn - 1.96 * sgmTn).ToString("F1")
+ ", " + (meanTn + 1.96 *
sgmTn).ToString("F1") + "]");
Console::WriteLine();
Console::Write("Enterキーを押して終了。");
Console::ReadLine();
return 0;
}
実行結果例は以下のようになります。
=========== ここから =================
信頼性係数 = 0.85
受験者総数N = 10000
順位k(1:最下位 <= k <= N:最上位)= 7000
一様分布: Mean = 55.2 95%Invl = [47.7, 62.8]
正規分布: Mean = 54.6 95%Invl = [47.5, 61.6]
Enterキーを押して終了。
=========== ここまで =================
プログラムのソースコードファイルなどを圧縮ファイルとしてまとめたものは
ウェブサイト
http://y-okamoto-psy1949.la.coocan.jp/VCpp/TScale/
にあげておきました。
日本女子大学心理学科
岡本安晴
ここは心理学研究の基礎メーリングリストに投稿された過去の記事を掲載しているページです。