スカラー関数 — 検定補助(40関数)
DB非依存のスカラー関数。パラメータのみで計算が完結する。分布関数、特殊関数、比率検定、多重検定補正等。
← 関数リファレンス に戻る
分布関数(正規・カイ二乗・t・F)
スカラー関数。パラメータのみで計算が完結する。
正規分布
| 関数 | 構文 | 説明 |
|---|---|---|
stat_normal_pdf |
stat_normal_pdf(x [,mu, sigma]) |
正規分布の確率密度関数 |
stat_normal_cdf |
stat_normal_cdf(x [,mu, sigma]) |
正規分布の累積分布関数 |
stat_normal_quantile |
stat_normal_quantile(p [,mu, sigma]) |
正規分布の分位点(逆CDF) |
stat_normal_rand |
stat_normal_rand([mu, sigma]) |
正規分布からの乱数生成 |
-- 標準正規分布
SELECT stat_normal_pdf(0); -- → 0.3989...
SELECT stat_normal_cdf(1.96); -- → 0.9750...
SELECT stat_normal_quantile(0.975); -- → 1.9599...
-- パラメータ指定 N(100, 15)
SELECT stat_normal_pdf(115, 100, 15);
SELECT stat_normal_cdf(130, 100, 15);
カイ二乗分布
| 関数 | 構文 | 説明 |
|---|---|---|
stat_chisq_pdf |
stat_chisq_pdf(x, df) |
カイ二乗分布 PDF |
stat_chisq_cdf |
stat_chisq_cdf(x, df) |
カイ二乗分布 CDF |
stat_chisq_quantile |
stat_chisq_quantile(p, df) |
カイ二乗分布分位点 |
stat_chisq_rand |
stat_chisq_rand(df) |
カイ二乗分布乱数 |
SELECT stat_chisq_cdf(3.84, 1); -- → 0.9499... (α=0.05 の臨界値)
SELECT stat_chisq_quantile(0.95, 1); -- → 3.8414...
t 分布
| 関数 | 構文 | 説明 |
|---|---|---|
stat_t_pdf |
stat_t_pdf(x, df) |
t 分布 PDF |
stat_t_cdf |
stat_t_cdf(x, df) |
t 分布 CDF |
stat_t_quantile |
stat_t_quantile(p, df) |
t 分布分位点 |
stat_t_rand |
stat_t_rand(df) |
t 分布乱数 |
SELECT stat_t_quantile(0.975, 10); -- → 2.2281... (自由度10の両側5%臨界値)
SELECT stat_t_cdf(2.0, 30); -- → 0.9726...
F 分布
| 関数 | 構文 | 説明 |
|---|---|---|
stat_f_pdf |
stat_f_pdf(x, df1, df2) |
F 分布 PDF |
stat_f_cdf |
stat_f_cdf(x, df1, df2) |
F 分布 CDF |
stat_f_quantile |
stat_f_quantile(p, df1, df2) |
F 分布分位点 |
stat_f_rand |
stat_f_rand(df1, df2) |
F 分布乱数 |
SELECT stat_f_quantile(0.95, 3, 20); -- → 3.0984... (ANOVA用臨界値)
SELECT stat_f_cdf(4.0, 5, 10); -- → 0.9729...
備考: 乱数関数(
*_rand)は非決定的関数として登録されており、呼び出すたびに異なる値を返す。
特殊関数
| 関数 | 構文 | 説明 |
|---|---|---|
stat_betainc |
stat_betainc(a, b, x) |
正則化不完全ベータ関数 |
stat_betaincinv |
stat_betaincinv(a, b, p) |
正則化不完全ベータ逆関数 |
stat_norm_cdf |
stat_norm_cdf(x) |
標準正規分布 CDF(Φ(x)) |
stat_norm_quantile |
stat_norm_quantile(p) |
標準正規分布逆 CDF(Φ⁻¹(p)) |
stat_gammainc_lower |
stat_gammainc_lower(a, x) |
下側正則化不完全ガンマ関数 |
stat_gammainc_upper |
stat_gammainc_upper(a, x) |
上側正則化不完全ガンマ関数 |
stat_gammainc_lower_inv |
stat_gammainc_lower_inv(a, p) |
下側不完全ガンマ逆関数 |
SELECT stat_norm_cdf(1.96); -- → 0.9750...
SELECT stat_norm_quantile(0.975); -- → 1.9599...
SELECT stat_betainc(2, 5, 0.3); -- 正則化不完全ベータ関数
比率検定
stat_z_test_prop
1標本比率 z 検定を JSON で返す。
構文: stat_z_test_prop(x, n, p0)
| パラメータ | 説明 |
|---|---|
x |
成功数 |
n |
試行数 |
p0 |
帰無仮説の比率 |
SELECT stat_z_test_prop(55, 100, 0.5);
-- → {"statistic":1.0,"p_value":0.3173...}
stat_z_test_prop2
2標本比率 z 検定を JSON で返す。
構文: stat_z_test_prop2(x1, n1, x2, n2)
SELECT stat_z_test_prop2(45, 100, 55, 120);
多重検定補正
| 関数 | 構文 | 説明 |
|---|---|---|
stat_bonferroni |
stat_bonferroni(p, m) |
Bonferroni 補正(p × m) |
stat_bh_correction |
stat_bh_correction(p, rank, total) |
Benjamini-Hochberg 補正 |
stat_holm_correction |
stat_holm_correction(p, rank, total) |
Holm 補正 |
-- Bonferroni: p値を検定数で補正
SELECT stat_bonferroni(0.01, 10); -- → 0.1
-- BH補正: ウィンドウ関数と組み合わせて使用
SELECT p_value,
stat_bh_correction(p_value,
ROW_NUMBER() OVER (ORDER BY p_value),
COUNT(*) OVER ()) AS bh_adjusted
FROM test_results
ORDER BY p_value;
カテゴリカル分析(スカラー)
stat_fisher_exact
Fisher 正確確率検定を JSON で返す。2×2 分割表のセル値を直接渡す。
構文: stat_fisher_exact(a, b, c, d)
-- 2×2分割表: [[10, 5], [3, 12]]
SELECT stat_fisher_exact(10, 5, 3, 12);
| 関数 | 構文 | 説明 |
|---|---|---|
stat_odds_ratio |
stat_odds_ratio(a, b, c, d) |
オッズ比 |
stat_relative_risk |
stat_relative_risk(a, b, c, d) |
相対リスク |
stat_risk_difference |
stat_risk_difference(a, b, c, d) |
リスク差 |
stat_nnt |
stat_nnt(a, b, c, d) |
治療必要数 (NNT) |
-- 2×2分割表: [[a, b], [c, d]]
SELECT stat_odds_ratio(30, 70, 10, 90); -- オッズ比
SELECT stat_relative_risk(30, 70, 10, 90); -- 相対リスク
SELECT stat_risk_difference(30, 70, 10, 90); -- リスク差
SELECT stat_nnt(30, 70, 10, 90); -- NNT
比率の信頼区間
| 関数 | 構文 | 説明 |
|---|---|---|
stat_ci_prop |
stat_ci_prop(x, n [,confidence]) |
比率の信頼区間(Wald 法) |
stat_ci_prop_wilson |
stat_ci_prop_wilson(x, n [,confidence]) |
比率の信頼区間(Wilson 法) |
stat_ci_prop_diff |
stat_ci_prop_diff(x1, n1, x2, n2 [,confidence]) |
2標本比率差の信頼区間 |
-- 100人中60人成功、95%信頼区間
SELECT stat_ci_prop(60, 100);
SELECT stat_ci_prop_wilson(60, 100, 0.99); -- 99%信頼区間
-- 2群の比率差の信頼区間
SELECT stat_ci_prop_diff(45, 100, 55, 120);
モデル選択
| 関数 | 構文 | 説明 |
|---|---|---|
stat_aic |
stat_aic(log_likelihood, k) |
赤池情報量規準 |
stat_aicc |
stat_aicc(log_likelihood, n, k) |
補正 AIC |
stat_bic |
stat_bic(log_likelihood, n, k) |
ベイズ情報量規準 |
| パラメータ | 説明 |
|---|---|
log_likelihood |
対数尤度 |
k |
パラメータ数 |
n |
サンプルサイズ |
SELECT stat_aic(-150.0, 3); -- AIC
SELECT stat_aicc(-150.0, 50, 3); -- AICc(小標本補正)
SELECT stat_bic(-150.0, 100, 3); -- BIC
データ変換
stat_boxcox
Box-Cox 変換を適用する。
構文: stat_boxcox(x, lambda)
SELECT stat_boxcox(10.0, 0.5); -- λ=0.5
SELECT stat_boxcox(10.0, 0); -- λ=0 は log(x)
SELECT stat_boxcox(10.0, 1); -- λ=1 は x-1