皆様 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/ にあげておきました。 日本女子大学心理学科 岡本安晴
ここは心理学研究の基礎メーリングリストに投稿された過去の記事を掲載しているページです。