メイン fitness-exact.html Last modified: Sep 01, 2009
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;CHARSET=EUC-JP">
<link rel="shortcut icon" href="../favicon.ico">
<title>JavaScript</title>
<script src="io.js">document.write("io.js ファイルが見つかりません??<br>")</script>
<script src="gxp.js">document.write("gxp.js ファイルが見つかりません??<br>")</script>
<script src="xxp.js">document.write("xxp.js ファイルが見つかりません??<br>")</script>
<script language="JavaScript">
<!--
var n, o, e, p, total, fact, wt, x0, w2, count, inve
function out_table(table, e, p, total, ncol)
{
var j
printf("解析結果表\n\n")
printf("%10s %8s %8s %8s\n", "カテゴリー", "観察数", "期待値", "理論比")
for (j = 0; j < ncol; j++) {
printf("%5i %13i %8.3f %8.3f\n", j + 1, table[j], e[j], p[j])
}
printf("%5s %13i %8.3f %8.3f\n\n", "合計", total, total, 1.0)
}
function calcX(o, e, n)
{
var i, retv, t
retv = 0
for (i = 0; i < n; i++) {
t = o[i] - e[i]
retv += t * t * inve[i]
}
return retv
}
function prob(fact, o, p, total, n)
{
var i, retv, retv2
retv = fact[total]
retv2 = 1
for (i = 0; i < n; i++) {
retv -= fact[o[i]]
retv2 *= Math.pow(p[i], o[i])
}
return Math.exp(retv) * retv2
}
function found()
{
var x2, w
x2 = calcX(o, e, n)
w = prob(fact, o, p, total, n)
wt += w
if (x2 >= x0 || Math.abs(x2-x0) <= 1e-7) {
w2 += w
}
count++
}
function factorial(n, fact)
{
var i
fact[0] = 0
for (i = 1; i <= n; i++) {
fact[i] = fact[i - 1] + Math.log(i)
}
}
function gen_tab(y)
{
if (y == 0) {
found()
} else {
gen_tab(y - 1)
while (o[0]) {
o[y]++
o[0]--
gen_tab(y - 1)
}
o[0] += o[y]
o[y] = 0
}
}
function fitness()
{
var i, sum, p_val
total = sum = 0
for (i = 0; i < n; i++) {
total += o[i]
sum += e[i]
}
for (i = 0; i < n; i++) {
p[i] = e[i]/sum
}
inve = new Array(n)
for (i = 0; i < n; i++) {
e[i] = total * p[i]
inve[i] = 1.0 / e[i]
}
out_table(o, e, p, total, n)
x0 = calcX(o, e, n)
p_val = xxp(x0, n - 1)
printf("カイ二乗値は %g,自由度は %i,P値は %g\n\n", x0, n - 1, p_val)
fact = new Array(total + 1)
factorial(total, fact)
w2 = wt = count = 0
for (i = 0; i < n; i++) {
o[i] = 0
}
o[0] = total
gen_tab(n - 1)
printf("正確なP値は %g\n\n", w2)
printf("査察した表の数は %g\n", count)
printf("全ての査察におけるP値の和は = %g\n", wt)
printf("注:これが1でないときは何か変なことが起きたことを意味する。\n")
}
function decomp(data, a)
{
var i, j, n = 0
for (i = 0; i < data.length; i++) {
for (j = 0; j < data[i].length; j++) {
a[n++] = data[i][j]
}
}
return n
}
function calc(obs, the)
{
var n1, n2, o1, e1
o = new Array()
e = new Array()
p = new Array(n)
if ((o1 = getdata(obs, -1)) != false && (e1 = getdata(the, -1)) != false) {
n1 = decomp(o1, o)
n2 = decomp(e1, e)
if (n1 != n2 || n1 <= 1) {
printf("このデータについては検定できません\n")
sep2(40)
return
}
n = n1
fitness()
}
sep2(40)
}
//-->
</script>
</head>
<body bgcolor="#ffffff">
<font size="+2"><b>適合度の検定(Exact test)</b></font> <a href="src/fitness-exact.html"><img src="png/src.png" width=35 height=11 alt="src" align=top></a> Last modified: Jun 01, 2006<hr noshade><p>
<font color="#ff0000" size="+2">以下のプログラムのサポートは終了しました。自己責任でお使い下さい。</font>
<form name=Result>
<script language="JavaScript">
<!--
//-->JavaScript がサポートされていないブラウザですか?
</script>
適合度検定(Exact test)を行う。<br>
<img src="../gra/button3.png" width=9 height=9 alt="・"> <a href="../lecture/GoodnessOfFitness/nominalscale.html">手法の解説</a> <img src="../gra/button3.png" width=9 height=9 alt="・"> <a href="exa/fitness-exact.html">使用法</a>
<hr>
観察度数 <input name="o" value="" size=80><br>
理論度数 <input name="e" value="" size=80><br>
<table><tr>
<td><input type="button" name="calcurate" value="計算開始" onClick="calc(this.form.o.value,this.form.e.value)"> </td>
<td><input type="button" name="clear" value="入力欄クリア" onClick="this.form.o.value=this.form.e.value=''"> </td>
<td><input type="button" name="clear" value="出力欄クリア" onClick="this.form.result.value=''"></td>
</tr></table>
出力欄<br><textarea name="result" rows=24 cols=80></textarea>
</form>
<p><hr noshade>
<img src="../gra/button3.png" width=9 height=9 alt="・"> <A HREF="javascript:history.go(-1)">直前のページへ戻る</A> <img src="../gra/button3.png" width=9 height=9 alt="・"> <a href="../mail.html">E-mail to Shigenobu AOKI</a>
<p><IMG SRC="../gra/ume5.png" width=121 height=37 ALT="Made with Macintosh">
</body>
</html>
サブ io.js Last modified: Mar 25, 2004
サブ gxp.js Last modified: Mar 25, 2004
サブ xxp.js Last modified: Mar 25, 2004
直前のページへ戻る E-mail to Shigenobu AOKI