メイン kyoubunsan-hi.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 language="JavaScript">
<!--
function zfi(w, i)
{
var ww = (""+i).length
ww = ww > w ? 0 : w-ww
return "000000000000000".substring(0, ww)+i
}
function vname(i, nv)
{
return (i == nv-1) ? "合計" : "Var"+zfi(2, i+1)
}
function calc(data_string)
{
var i, j, k, nc, nv, data, mean, variance, sd, r, isw
if ((data = getdata(data_string, 0)) == false) return
nc = data.length
nv = data[0].length+1
if (nc < 2) {
printf("ケース数が1以下です\n")
return
}
for (i = 0; i < nc; i++) {
sum = 0
for (j = 0; j < nv-1; j++) {
sum += data[i][j]
}
data[i][j] = sum
}
mean = new Array(nv)
variance = new Array(nv)
sd = new Array(nv)
r = makeMatrix(nv, nv)
// Netscape communicator のバグ?配列ベクトルは初期化されていない
for (i = 0; i < nv; i++) {
mean[i] = 0
for (j = 0; j < nv; j++) {
r[i][j] = 0
}
}
for (i = 0; i < nc; i++) {
for (j = 0; j < nv; j++) {
mean[j] += data[i][j]
}
}
for (j = 0; j < nv; j++) {
mean[j] /= nc
}
for (i = 0; i < nc; i++) {
for (j = 0; j < nv; j++) {
for (k = 0; k < nv; k++) {
r[j][k] += (mean[j]-data[i][j])*(mean[k]-data[i][k])
}
}
}
isw = 0
for (j = 0; j < nv; j++) {
variance[j] = r[j][j]/(nc-1)
sd[j] = Math.sqrt(variance[j])
if (variance[j] <= 0) isw = 1
}
if (isw == 1) {
printf("分散が0になる変数があります\n")
return
}
for (j = 0; j < nv; j++) {
for (k = 0; k < nv; k++) {
r[j][k] /= (nc-1)*sd[j]*sd[k]
}
}
printf("有効データ組数 = %i\n\n", nc)
printf("%5s%15s%15s%15s\n", "変数", "平均値", "不偏分散", "標準偏差")
for (j = 0; j < nv; j++) {
printf("%5s%15.7g%15.7g%15.7g\n", vname(j, nv), mean[j], variance[j], sd[j])
}
printf("\n★ 相関係数行列 ★\n\n ")
for (j = 0; j < nv; j++) {
printf("%8s", vname(j, nv))
}
printf("\n")
for (j = 0; j < nv; j++) {
printf("%5s", vname(j, nv))
for (k = 0; k < nv; k++) {
printf("%8.3f", r[j][k])
}
printf("\n")
}
printf("\n★ 共分散比 ★\n\n")
for (j = 0; j < nv-1; j++) {
printf("%5s %6.1f%%\n", vname(j, nv), r[j][nv-1]*sd[j]/sd[nv-1]*100)
}
sep(40)
printf("\n")
}
//-->
</script>
</head>
<body bgcolor="#ffffff">
<font size="+2"><b>共分散比</b></font> <a href="src/kyoubunsan-hi.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>
<!-- テストデータ
96 102 83 129 96
88 59 64 65 53
114 103 139 141 158
37 18 42 32 3
86 67 123 123 95
82 67 85 124 65
121 107 163 150 158
115 108 137 148 152
55 78 142 104 53
99 130 111 154 58
96 55 15 47 87
98 89 81 105 84
70 50 41 1 65
98 54 126 77 88
103 124 98 123 109
106 126 160 155 95
80 95 104 60 72
90 83 121 112 72
66 129 99 103 85
117 113 178 124 137
結果
共分散比
Var01 11.4%
Var02 16.9%
Var03 24.3%
Var04 25.7%
Var05 21.6%
-->
<table><tr>
<td><input type="button" name="calcurate" value="計算開始" onClick="calc(this.form.data.value)"> </td>
<td><input type="button" name="clear" value="入力欄クリア" onClick="this.form.data.value=''"> </td>
<td><input type="button" name="clear" value="出力欄クリア" onClick="this.form.result.value=''"> </td>
<td nowrap><img src="../gra/button3.png" width=9 height=9 alt="・"> <a href="exa/kyoubunsan-hi.html">使用法</a></td>
</tr></table>
<p>
入力欄<br><textarea name="data" ROWS=20 COLS=80></textarea><p>
出力欄<br><textarea name="result" ROWS=30 COLS=80></textarea>
</form>
<p><hr noshade>
参考文献:繁桝算男,柳井晴夫,森敏昭編著「Q&Aで知る統計データ解析」サイエンス社(1999),116-118ページ<p>
<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><center><IMG SRC="../gra/ume5.png" width=121 height=37 ALT="Made with Macintosh"></center>
</body>
</html>
サブ io.js Last modified: Mar 25, 2004
直前のページへ戻る E-mail to Shigenobu AOKI