Updated Welch T Test

This commit is contained in:
uetchy 2019-10-03 17:25:36 +09:00 committed by Siteleaf
parent 415cf7b635
commit 2a115cdcff

View File

@ -37,7 +37,7 @@ b();
hyperfine 'ts-node a.ts' 'ts-node b.ts' -r 50 --warmup 3 --export-json ab.json hyperfine 'ts-node a.ts' 'ts-node b.ts' -r 50 --warmup 3 --export-json ab.json
``` ```
`result.json`の中身以下のようになります。t検定はサンプルが正規分布に従っているという仮定を置いているので、大数の法則から本当はもっと試行回数を増やした方が良いです。 `result.json`の中身以下のようになります。
```json ```json
{ {
@ -82,6 +82,8 @@ hyperfine 'ts-node a.ts' 'ts-node b.ts' -r 50 --warmup 3 --export-json ab.json
} }
``` ```
> t検定はサンプルが正規分布に従っているという仮定を置いているので、大数の法則から本当はもっと試行回数を増やした方が良いです。
この`result.json``times`配列を受け取り、2 つの分布間に有意差があるかどうかを判定します。 この`result.json``times`配列を受け取り、2 つの分布間に有意差があるかどうかを判定します。
```ts ```ts
@ -129,13 +131,16 @@ log(p < 0.05 ? 'Possibly some difference there' : 'No difference');
``` ```
ここで`X_mu`は分布Xの平均、`X_sigma`は分布Xの不偏分散です。 ここで`X_mu`は分布Xの平均、`X_sigma`は分布Xの不偏分散です。
$$ $$
\begin{eqnarray} \begin{eqnarray}
\mu_X &=& \frac{1}{n_X} \sum^{n_X}_i X_i\\ \mu_X &=& \frac{1}{n_X} \sum^{n_X}_i X_i\\
\sigma_X &=& \frac{1}{n_X-1}\sum^{n_X}_i (X_i - \mu_X)^2 \sigma_X &=& \frac{1}{n_X-1}\sum^{n_X}_i (X_i - \mu_X)^2
\end{eqnarray} \end{eqnarray}
$$ $$
これをXとY両方に対して求めます。さらに以下のようにしてtを求めます。 これをXとY両方に対して求めます。さらに以下のようにしてtを求めます。
$$ $$
t = \frac{\mu_X - \mu_Y}{\sqrt{\frac{\sigma_X}{n_X} + \frac{\sigma_Y}{n_Y}}} t = \frac{\mu_X - \mu_Y}{\sqrt{\frac{\sigma_X}{n_X} + \frac{\sigma_Y}{n_Y}}}
$$ $$
@ -147,11 +152,14 @@ $$
$$ $$
CDFを用いてp値を求めます。両側検定をするので2を掛けます。t分布の自由度 (degree of freedom; df) は$n-1$なので、両分布の自由度を$n_X+n_Y-2$で与えます。本当は CDFを用いてp値を求めます。両側検定をするので2を掛けます。t分布の自由度 (degree of freedom; df) は$n-1$なので、両分布の自由度を$n_X+n_Y-2$で与えます。本当は
$$ $$
\text{df} = \frac{(\sigma_X + \sigma_Y)^2}{ \text{df} = \frac{(\sigma_X + \sigma_Y)^2}{
\frac{\sigma_X^2}{n_X - 1} + \frac{\sigma_Y^2}{n_Y - 1}} \frac{\sigma_X^2}{n_X - 1} + \frac{\sigma_Y^2}{n_Y - 1}}
$$ $$
で求める必要がありますが、さぼって近似しました。 で求める必要がありますが、さぼって近似しました。
$$ $$
p = \text{CDF}(-|t|, n_X+n_Y-2) \times2 p = \text{CDF}(-|t|, n_X+n_Y-2) \times2
$$ $$