イータ二乗計算
イータ二乗計算ツールは、ANOVAの2つの要約値から解釈しやすい効果量を算出します。群間平方和と全平方和を入力すると、群分けの要因に関連する観測分散の割合とパーセントが返されます。ANOVA表に統計的有意性が示されているだけでなく、実質的な大きさも説明する必要がある場合に役立ちます。計算は決定論的で外部データを使わず、全平方和がゼロの場合は比率を定義できないため、明確にエラーとして扱います。
無料で実行
イータ二乗が表すもの
イータ二乗は、分散分析とともに報告されることが多い効果量の指標です。p値とは異なる問いに答えます。p値は、所定の仮定の下で観測データが帰無モデルとどの程度整合するかを評価します。一方、イータ二乗は、観測された全変動のうち研究対象の要因に関連する部分を表します。平方和が有効なANOVA分解を構成していれば、値はゼロから1までの比率になります。たとえば0.30という結果は、その分析で観測された全分散の30パーセントが群間差に帰属されることを意味します。この説明は、当てはめたデータと研究デザインに結び付けて解釈する必要があります。それだけで因果関係が確立されるわけではなく、再現性が保証されるわけでも、特定分野で効果が重要かどうかが決まるわけでもありません。ANOVA表の平方和がすでにあり、推測統計、標本サイズ、不確実性区間、専門知識と併せて読める透明な記述的効果量が必要なときに、この計算ツールをご利用ください。
計算の仕組み
式は、イータ二乗=群間平方和÷全平方和です。分子は群平均の差に割り当てられた変動を表し、分母は分析に含まれる全体平均の周りのすべての変動を表します。このツールは、除算する前に両方の値を検証します。各値は有限の非負数である必要があり、全平方和はゼロより大きく、群間平方和は全平方和以下でなければなりません。全平方和がゼロであれば、含まれるすべての観測値が全体平均の周りで変動していないため、除算しても定義済みの比率は得られません。入力が有効な場合、未加工のイータ二乗比と、それを100倍した説明分散のパーセントを返します。自由度や誤差平均平方は必要ありません。この簡潔さが、イータ二乗と、ANOVA表のより多くの情報を使って一層控えめな推定値を示すことがあるオメガ二乗などのバイアス調整済み指標との違いです。
結果の報告と解釈
どの値を除算したのかを第三者が理解できるよう、十分な文脈を示してください。要因名、イータ二乗、適用対象となる分析または結果を記載します。2つの平方和を併記すると計算を検証でき、パーセント表示を加えると一般の読者にも大きさが伝わりやすくなります。小・中・大という普遍的な閾値を絶対的な規則として扱わないでください。慣例は分野、デザイン、結果、研究課題によって異なるため、類似研究と実務上の影響を踏まえて解釈する必要があります。イータ二乗は標本を記述する指標であり、特に標本が小さい場合や群数が多い場合、対応する母集団効果を上方に偏って推定しやすい性質があります。母集団の推定が目的なら、オメガ二乗などの調整済み指標も併記することをご検討ください。また、説明分散は、その要因が引き起こした個々の結果の割合ではありません。観察研究では交絡とモデル指定も依然として重要です。このツールは正確な算術結果を提供しますが、適切な報告には元のANOVAの仮定と限界の説明が必要です。
活用例
ANOVA報告を完成させる
ANOVA表の平方和を、有意性検定を補う効果量に変換します。
公表された計算を確認する
開示された群間平方和と全平方和から、報告済みのイータ二乗を再計算します。
大きさを明確に説明する
専門家と一般の読者に向けて、結果を比率とパーセントの両方で示します。
よくある質問
この計算ツールの料金はいくらですか?
APIリクエスト1回につき$0.002で、ブラウザーでは無料でも実行できます。
どの式を使用しますか?
群間平方和を全平方和で割ります。式はイータ二乗=SS群間÷SS全体です。
全平方和がゼロより大きい必要があるのはなぜですか?
全平方和がゼロだと分母もゼロになり、イータ二乗を有効な比率として定義できないためです。
イータ二乗とオメガ二乗は同じですか?
いいえ。イータ二乗は平方和の直接的な比率ですが、オメガ二乗は自由度と誤差平均平方による補正を適用します。
イータ二乗で要因が結果を引き起こしたと証明できますか?
いいえ。当てはめた分析で要因に関連する分散を表すだけで、因果的な解釈は研究デザインと仮定に依存します。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/stat/eta-squared \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"ss_between":24,"ss_total":80}'const res = await fetch("https://api.kit.forhosting.com/stat/eta-squared", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"ss_between": 24,
"ss_total": 80
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/eta-squared",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"ss_between": 24,
"ss_total": 80
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/eta-squared", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"ss_between":24,"ss_total":80}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"ss_between":24,"ss_total":80}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/eta-squared", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"ss_between": 24,
"ss_total": 80
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.eta_squared",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |