SQLite3 統計関数ライブラリ — 関数リファレンス
本ライブラリは SQLite3 の LOAD_EXTENSION 機能を使い、統計関数群を SQL から直接利用可能にする拡張モジュールである。
本リファレンスでは 全249関数 を記載している。
カテゴリ
関数数
説明
基本集約関数
24
1カラム集約: SELECT stat_xxx(col) FROM table
パラメータ付き集約関数
20
引数付き集約: SELECT stat_xxx(col, param) FROM table
2カラム集約関数
27
2列入力集約: SELECT stat_xxx(col1, col2) FROM table
ウィンドウ関数
23
行ごとに値を返す全行スキャン型ウィンドウ関数
複合集約関数
32
JSON結果を返す集約関数、2標本検定、生存時間解析等
スカラー関数 — 検定補助
40
DB非依存: 分布関数、特殊関数、比率検定、多重検定補正等
スカラー関数 — 分布・変換
83
DB非依存: 追加分布関数、効果量変換、検出力分析等
基本集約関数〜2カラム集約関数 (71関数)はすべて集約関数 であり、GROUP BY、HAVING、サブクエリなど SQLite3 の標準的な集約関数が使えるすべての文脈で利用可能。
ウィンドウ関数 (23関数)は全行スキャン型として実装されており、各行に対して1つの値を返す。
複合集約関数 (32関数)は集約関数 (JSON 結果を返すものを含む)。
スカラー関数 (123関数)はパラメータのみで計算が完結する。
-- .load コマンド(推奨)
.load ./ ext_funcs sqlite3_ext_funcs_init
-- load_extension() 関数
SELECT load_extension(' ./ext_funcs' , ' sqlite3_ext_funcs_init' );
sqlite3_enable_load_extension (db, 1 );
sqlite3_load_extension (db, " ./ext_funcs.dylib" ,
" sqlite3_ext_funcs_init" , &errmsg);
注意 : エントリポイント名 sqlite3_ext_funcs_init の明示指定が必要。SQLite の自動推定では _ が除去されるため。
入力値が NULL の行は無視 される(SQLite3 の集約関数の慣例に準拠)
すべての行が NULL の場合、または結果セットが空の場合は NULL を返す
計算結果が NaN または Inf になった場合は NULL を返す
-- NULL を含むデータ
CREATE TABLE sample (val REAL );
INSERT INTO sample VALUES (1 ), (NULL ), (3 ), (NULL ), (5 );
-- NULL は無視され、1, 3, 5 の3件で計算される
SELECT stat_mean(val) FROM sample;
-- → 3.0
-- 全行 NULL
SELECT stat_mean(NULL );
-- → NULL
-- 空の結果セット
SELECT stat_mean(val) FROM sample WHERE val > 100 ;
-- → NULL
一部の関数は計算に最低限必要なデータ数がある。データ数不足時は NULL を返す。
関数
最小データ数
stat_sample_variance, stat_sample_stddev, stat_se, stat_cv
2
stat_population_skewness, stat_skewness
3
stat_population_kurtosis, stat_kurtosis
4
その他
1
すべての集約関数は GROUP BY と併用可能。
SELECT category,
stat_mean(score) AS mean_score,
stat_median(score) AS median_score,
stat_sample_stddev(score) AS stddev_score
FROM exam_results
GROUP BY category;
関数名
説明
戻り値
最小 n
詳細
stat_mean(col)
算術平均
REAL
1
詳細
stat_median(col)
中央値
REAL
1
詳細
stat_mode(col)
最頻値(最小値)
REAL
1
詳細
stat_geometric_mean(col)
幾何平均
REAL
1
詳細
stat_harmonic_mean(col)
調和平均
REAL
1
詳細
stat_range(col)
範囲
REAL
1
詳細
stat_var(col)
分散(母分散)
REAL
1
詳細
stat_population_variance(col)
母分散
REAL
1
詳細
stat_sample_variance(col)
標本分散(不偏分散)
REAL
2
詳細
stat_stdev(col)
標準偏差(母)
REAL
1
詳細
stat_population_stddev(col)
母標準偏差
REAL
1
詳細
stat_sample_stddev(col)
標本標準偏差
REAL
2
詳細
stat_cv(col)
変動係数
REAL
2
詳細
stat_iqr(col)
四分位範囲
REAL
1
詳細
stat_mad_mean(col)
平均偏差
REAL
1
詳細
stat_geometric_stddev(col)
幾何標準偏差
REAL
1
詳細
stat_population_skewness(col)
母歪度
REAL
3
詳細
stat_skewness(col)
標本歪度
REAL
3
詳細
stat_population_kurtosis(col)
母尖度(超過尖度)
REAL
4
詳細
stat_kurtosis(col)
標本尖度(超過尖度)
REAL
4
詳細
stat_se(col)
標準誤差
REAL
2
詳細
stat_mad(col)
中央絶対偏差 (MAD)
REAL
1
詳細
stat_mad_scaled(col)
スケーリング MAD
REAL
1
詳細
stat_hodges_lehmann(col)
Hodges-Lehmann 推定量
REAL
1
詳細
関数名
説明
戻り値
最小 n
詳細
stat_trimmed_mean(col, proportion)
トリム平均
REAL
1
詳細
stat_quartile(col)
四分位数 (Q1,Q2,Q3)
JSON
1
詳細
stat_percentile(col, p)
パーセンタイル
REAL
1
詳細
stat_z_test(col, mu0, sigma)
1標本 z 検定
JSON
1
詳細
stat_t_test(col, mu0)
1標本 t 検定
JSON
2
詳細
stat_chisq_gof_uniform(col)
カイ二乗適合度検定
JSON
2
詳細
stat_shapiro_wilk(col)
Shapiro-Wilk 検定
JSON
3
詳細
stat_ks_test(col)
Lilliefors 検定(正規性)
JSON
2
詳細
stat_wilcoxon(col, mu0)
Wilcoxon 符号付順位検定
JSON
2
詳細
stat_ci_mean(col, confidence)
平均の信頼区間(t)
JSON
2
詳細
stat_ci_mean_z(col, sigma, confidence)
平均の信頼区間(z)
JSON
2
詳細
stat_ci_var(col, confidence)
分散の信頼区間
JSON
2
詳細
stat_moe_mean(col, confidence)
平均の誤差限界
REAL
2
詳細
stat_cohens_d(col, mu0)
Cohen's d(1標本)
REAL
2
詳細
stat_hedges_g(col, mu0)
Hedges' g(1標本)
REAL
2
詳細
stat_acf_lag(col, lag)
自己相関係数
REAL
lag+1
詳細
stat_biweight_midvar(col, c)
Biweight Midvariance
REAL
1
詳細
stat_bootstrap_mean(col, n)
平均のブートストラップ
JSON
1
詳細
stat_bootstrap_median(col, n)
中央値のブートストラップ
JSON
1
詳細
stat_bootstrap_stddev(col, n)
標準偏差のブートストラップ
JSON
2
詳細
関数名
説明
戻り値
最小 n
詳細
stat_population_covariance(x, y)
母共分散
REAL
1
詳細
stat_covariance(x, y)
標本共分散
REAL
2
詳細
stat_pearson_r(x, y)
ピアソン相関係数
REAL
2
詳細
stat_spearman_r(x, y)
スピアマン順位相関
REAL
2
詳細
stat_kendall_tau(x, y)
ケンドール順位相関
REAL
2
詳細
stat_weighted_covariance(val, wt)
重み付き共分散
REAL
2
詳細
stat_weighted_mean(val, wt)
重み付き平均
REAL
1
詳細
stat_weighted_harmonic_mean(val, wt)
重み付き調和平均
REAL
1
詳細
stat_weighted_variance(val, wt)
重み付き分散
REAL
2
詳細
stat_weighted_stddev(val, wt)
重み付き標準偏差
REAL
2
詳細
stat_weighted_median(val, wt)
重み付き中央値
REAL
1
詳細
stat_weighted_percentile(val, wt, p)
重み付きパーセンタイル
REAL
1
詳細
stat_simple_regression(x, y)
単回帰分析
JSON
3
詳細
stat_r_squared(actual, pred)
決定係数 R²
REAL
2
詳細
stat_adjusted_r_squared(actual, pred)
自由度調整済み R²
REAL
3
詳細
stat_t_test_paired(x, y)
対応のある t 検定
JSON
2
詳細
stat_chisq_gof(obs, exp)
カイ二乗適合度検定
JSON
2
詳細
stat_mae(actual, pred)
平均絶対誤差
REAL
1
詳細
stat_mse(actual, pred)
平均二乗誤差
REAL
1
詳細
stat_rmse(actual, pred)
RMSE
REAL
1
詳細
stat_mape(actual, pred)
平均絶対パーセント誤差
REAL
1
詳細
stat_euclidean_dist(a, b)
ユークリッド距離
REAL
1
詳細
stat_manhattan_dist(a, b)
マンハッタン距離
REAL
1
詳細
stat_cosine_sim(a, b)
コサイン類似度
REAL
1
詳細
stat_cosine_dist(a, b)
コサイン距離
REAL
1
詳細
stat_minkowski_dist(a, b, p)
ミンコフスキー距離
REAL
1
詳細
stat_chebyshev_dist(a, b)
チェビシェフ距離
REAL
1
詳細
関数名
説明
戻り値
詳細
stat_rolling_mean(col, window)
ローリング平均
REAL/行
詳細
stat_rolling_std(col, window)
ローリング標準偏差
REAL/行
詳細
stat_rolling_min(col, window)
ローリング最小値
REAL/行
詳細
stat_rolling_max(col, window)
ローリング最大値
REAL/行
詳細
stat_rolling_sum(col, window)
ローリング合計
REAL/行
詳細
stat_moving_avg(col, window)
単純移動平均
REAL/行
詳細
stat_ema(col, span)
指数移動平均
REAL/行
詳細
stat_rank(col)
順位変換
REAL/行
詳細
stat_fillna_mean(col)
平均値補完
REAL/行
詳細
stat_fillna_median(col)
中央値補完
REAL/行
詳細
stat_fillna_ffill(col)
前方補完
REAL/行
詳細
stat_fillna_bfill(col)
後方補完
REAL/行
詳細
stat_fillna_interp(col)
線形補間
REAL/行
詳細
stat_label_encode(col)
ラベルエンコーディング
REAL/行
詳細
stat_bin_width(col, n_bins)
等幅ビニング
REAL/行
詳細
stat_bin_freq(col, n_bins)
等頻度ビニング
REAL/行
詳細
stat_lag(col, k)
ラグ
REAL/行
詳細
stat_diff(col, order)
差分
REAL/行
詳細
stat_seasonal_diff(col, period)
季節差分
REAL/行
詳細
stat_outliers_iqr(col)
外れ値検出(IQR)
REAL/行
詳細
stat_outliers_zscore(col)
外れ値検出(Zスコア)
REAL/行
詳細
stat_outliers_mzscore(col)
外れ値検出(修正Z)
REAL/行
詳細
stat_winsorize(col, pct)
ウィンザライズ
REAL/行
詳細
関数名
説明
戻り値
詳細
stat_modes(col)
最頻値(すべて)
JSON
詳細
stat_five_number_summary(col)
五数要約
JSON
詳細
stat_frequency_table(col)
度数表
JSON
詳細
stat_frequency_count(col)
各値の度数
JSON
詳細
stat_relative_frequency(col)
相対度数
JSON
詳細
stat_cumulative_frequency(col)
累積度数
JSON
詳細
stat_cumulative_relative_frequency(col)
累積相対度数
JSON
詳細
stat_t_test2(grp1, grp2)
2標本 t 検定
JSON
詳細
stat_t_test_welch(grp1, grp2)
Welch t 検定
JSON
詳細
stat_chisq_independence(col1, col2)
カイ二乗独立性検定
JSON
詳細
stat_f_test(grp1, grp2)
F 検定
JSON
詳細
stat_mann_whitney(grp1, grp2)
Mann-Whitney U 検定
JSON
詳細
stat_anova1(val, grp)
一元配置分散分析
JSON
詳細
stat_contingency_table(col1, col2)
分割表
JSON
詳細
stat_cohens_d2(grp1, grp2)
Cohen's d(2標本)
REAL
詳細
stat_hedges_g2(grp1, grp2)
Hedges' g(2標本)
REAL
詳細
stat_glass_delta(ctrl, trt)
Glass's Delta
REAL
詳細
stat_ci_mean_diff(grp1, grp2)
2標本平均差の信頼区間
JSON
詳細
stat_ci_mean_diff_welch(grp1, grp2)
Welch 法の信頼区間
JSON
詳細
stat_kaplan_meier(time, event)
Kaplan-Meier 生存曲線
JSON
詳細
stat_nelson_aalen(time, event)
Nelson-Aalen 累積ハザード
JSON
詳細
stat_logrank(time, event, grp)
Log-rank 検定
JSON
詳細
stat_bootstrap(col, n)
汎用ブートストラップ
JSON
詳細
stat_bootstrap_bca(col, n)
BCa ブートストラップ
JSON
詳細
stat_bootstrap_sample(col)
ブートストラップサンプル
JSON
詳細
stat_permutation_test2(grp1, grp2)
2標本置換検定
JSON
詳細
stat_permutation_paired(x, y)
対応のある置換検定
JSON
詳細
stat_permutation_corr(x, y)
相関の置換検定
JSON
詳細
stat_acf(col, max_lag)
自己相関関数
JSON
詳細
stat_pacf(col, max_lag)
偏自己相関関数
JSON
詳細
stat_sample_replace(col, n)
復元抽出
JSON
詳細
stat_sample(col, n)
非復元抽出
JSON
詳細
関数名
説明
戻り値
詳細
stat_normal_pdf(x [,mu, sigma])
正規分布 PDF
REAL
詳細
stat_normal_cdf(x [,mu, sigma])
正規分布 CDF
REAL
詳細
stat_normal_quantile(p [,mu, sigma])
正規分布分位点
REAL
詳細
stat_normal_rand([mu, sigma])
正規分布乱数
REAL
詳細
stat_chisq_pdf(x, df)
カイ二乗分布 PDF
REAL
詳細
stat_chisq_cdf(x, df)
カイ二乗分布 CDF
REAL
詳細
stat_chisq_quantile(p, df)
カイ二乗分布分位点
REAL
詳細
stat_chisq_rand(df)
カイ二乗分布乱数
REAL
詳細
stat_t_pdf(x, df)
t 分布 PDF
REAL
詳細
stat_t_cdf(x, df)
t 分布 CDF
REAL
詳細
stat_t_quantile(p, df)
t 分布分位点
REAL
詳細
stat_t_rand(df)
t 分布乱数
REAL
詳細
stat_f_pdf(x, df1, df2)
F 分布 PDF
REAL
詳細
stat_f_cdf(x, df1, df2)
F 分布 CDF
REAL
詳細
stat_f_quantile(p, df1, df2)
F 分布分位点
REAL
詳細
stat_f_rand(df1, df2)
F 分布乱数
REAL
詳細
stat_betainc(a, b, x)
正則化不完全ベータ関数
REAL
詳細
stat_betaincinv(a, b, p)
不完全ベータ逆関数
REAL
詳細
stat_norm_cdf(x)
標準正規分布 CDF
REAL
詳細
stat_norm_quantile(p)
標準正規分布逆 CDF
REAL
詳細
stat_gammainc_lower(a, x)
下側不完全ガンマ関数
REAL
詳細
stat_gammainc_upper(a, x)
上側不完全ガンマ関数
REAL
詳細
stat_gammainc_lower_inv(a, p)
不完全ガンマ逆関数
REAL
詳細
stat_z_test_prop(x, n, p0)
1標本比率 z 検定
JSON
詳細
stat_z_test_prop2(x1, n1, x2, n2)
2標本比率 z 検定
JSON
詳細
stat_bonferroni(p, m)
Bonferroni 補正
REAL
詳細
stat_bh_correction(p, rank, total)
BH 補正
REAL
詳細
stat_holm_correction(p, rank, total)
Holm 補正
REAL
詳細
stat_fisher_exact(a, b, c, d)
Fisher 正確確率検定
JSON
詳細
stat_odds_ratio(a, b, c, d)
オッズ比
REAL
詳細
stat_relative_risk(a, b, c, d)
相対リスク
REAL
詳細
stat_risk_difference(a, b, c, d)
リスク差
REAL
詳細
stat_nnt(a, b, c, d)
治療必要人数
REAL
詳細
stat_ci_prop(x, n [,conf])
比率の信頼区間(Wald)
JSON
詳細
stat_ci_prop_wilson(x, n [,conf])
比率の信頼区間(Wilson)
JSON
詳細
stat_ci_prop_diff(x1, n1, x2, n2 [,conf])
比率差の信頼区間
JSON
詳細
stat_aic(ll, k)
AIC
REAL
詳細
stat_aicc(ll, n, k)
AICc
REAL
詳細
stat_bic(ll, n, k)
BIC
REAL
詳細
stat_boxcox(x, lambda)
Box-Cox 変換
REAL
詳細
関数名
説明
戻り値
詳細
stat_uniform_pdf/cdf/quantile/rand
一様分布(4関数)
REAL
詳細
stat_exponential_pdf/cdf/quantile/rand
指数分布(4関数)
REAL
詳細
stat_gamma_pdf/cdf/quantile/rand
ガンマ分布(4関数)
REAL
詳細
stat_beta_pdf/cdf/quantile/rand
ベータ分布(4関数)
REAL
詳細
stat_lognormal_pdf/cdf/quantile/rand
対数正規分布(4関数)
REAL
詳細
stat_weibull_pdf/cdf/quantile/rand
ワイブル分布(4関数)
REAL
詳細
stat_binomial_pmf/cdf/quantile/rand
二項分布(4関数)
REAL
詳細
stat_poisson_pmf/cdf/quantile/rand
ポアソン分布(4関数)
REAL
詳細
stat_geometric_pmf/cdf/quantile/rand
幾何分布(4関数)
REAL
詳細
stat_nbinom_pmf/cdf/quantile/rand
負の二項分布(4関数)
REAL
詳細
stat_hypergeom_pmf/cdf/quantile/rand
超幾何分布(4関数)
REAL
詳細
stat_bernoulli_pmf/cdf/quantile/rand
ベルヌーイ分布(4関数)
REAL
詳細
stat_duniform_pmf/cdf/quantile/rand
離散一様分布(4関数)
REAL
詳細
stat_binomial_coef(n, k)
二項係数
INTEGER
詳細
stat_log_binomial_coef(n, k)
対数二項係数
REAL
詳細
stat_log_factorial(n)
対数階乗
REAL
詳細
stat_lgamma(x)
対数ガンマ関数
REAL
詳細
stat_tgamma(x)
ガンマ関数
REAL
詳細
stat_beta_func(a, b)
ベータ関数
REAL
詳細
stat_lbeta(a, b)
対数ベータ関数
REAL
詳細
stat_erf(x)
誤差関数
REAL
詳細
stat_erfc(x)
相補誤差関数
REAL
詳細
stat_logarithmic_mean(a, b)
対数平均
REAL
詳細
stat_hedges_j(n)
Hedges 補正係数
REAL
詳細
stat_t_to_r(t, df)
t → r 変換
REAL
詳細
stat_d_to_r(d)
d → r 変換
REAL
詳細
stat_r_to_d(r)
r → d 変換
REAL
詳細
stat_eta_squared_ef(ss_eff, ss_total)
イータ二乗
REAL
詳細
stat_partial_eta_sq(F, df1, df2)
偏イータ二乗
REAL
詳細
stat_omega_squared_ef(ss_eff, ss_tot, ms_err, df_eff)
オメガ二乗
REAL
詳細
stat_cohens_h(p1, p2)
Cohen's h
REAL
詳細
stat_interpret_d(d)
Cohen's d 解釈
TEXT
詳細
stat_interpret_r(r)
相関係数解釈
TEXT
詳細
stat_interpret_eta2(eta2)
イータ二乗解釈
TEXT
詳細
stat_power_t1(d, n, alpha)
1標本検出力
REAL
詳細
stat_n_t1(d, power, alpha)
1標本必要 n
REAL
詳細
stat_power_t2(d, n1, n2, alpha)
2標本検出力
REAL
詳細
stat_n_t2(d, power, alpha)
2標本必要 n
REAL
詳細
stat_power_prop(p1, p2, n, alpha)
比率検出力
REAL
詳細
stat_n_prop(p1, p2, power, alpha)
比率必要 n
REAL
詳細
stat_moe_prop(x, n [,conf])
比率の誤差限界
REAL
詳細
stat_moe_prop_worst(n [,conf])
最悪ケース誤差限界
REAL
詳細
stat_n_moe_prop(moe [,conf [,p]])
比率推定の必要 n
REAL
詳細
stat_n_moe_mean(moe, sigma [,conf])
平均推定の必要 n
REAL
詳細
SELECT
COUNT (val) AS n,
stat_mean(val) AS mean,
stat_median(val) AS median,
stat_mode(val) AS mode,
stat_sample_stddev(val) AS stddev,
stat_sample_variance(val) AS variance,
MIN (val) AS min,
MAX (val) AS max,
stat_range(val) AS range,
stat_iqr(val) AS iqr,
stat_se(val) AS se,
stat_skewness(val) AS skewness,
stat_kurtosis(val) AS kurtosis
FROM measurements;
-- 外れ値の影響を評価する
SELECT
' 古典的' AS type,
stat_mean(val) AS location,
stat_sample_stddev(val) AS spread
FROM data
UNION ALL
SELECT
' ロバスト' AS type,
stat_hodges_lehmann(val) AS location,
stat_mad_scaled(val) AS spread
FROM data;
SELECT
category,
COUNT (score) AS n,
stat_mean(score) AS mean,
stat_median(score) AS median,
stat_sample_stddev(score) AS stddev,
stat_cv(score) AS cv,
stat_iqr(score) AS iqr,
stat_skewness(score) AS skewness,
stat_kurtosis(score) AS kurtosis,
stat_mad_scaled(score) AS robust_spread,
stat_hodges_lehmann(score) AS robust_location
FROM exam_results
GROUP BY category
ORDER BY mean DESC ;
-- 複数のカラムの正規性を一度にチェック
SELECT
' height' AS variable,
stat_skewness(height) AS skewness,
stat_kurtosis(height) AS kurtosis,
CASE
WHEN ABS(stat_skewness(height)) < 2 AND ABS(stat_kurtosis(height)) < 7
THEN ' approximately normal'
ELSE ' non-normal'
END AS normality
FROM people
UNION ALL
SELECT
' weight' ,
stat_skewness(weight),
stat_kurtosis(weight),
CASE
WHEN ABS(stat_skewness(weight)) < 2 AND ABS(stat_kurtosis(weight)) < 7
THEN ' approximately normal'
ELSE ' non-normal'
END
FROM people;
-- 回帰分析の実行と精度評価を一度に
SELECT
stat_simple_regression(x, y) AS regression,
stat_pearson_r(x, y) AS correlation,
stat_r_squared(x, y) AS r_squared,
stat_mae(x, y) AS mae,
stat_rmse(x, y) AS rmse
FROM experiment_data;
-- 株価データの包括的な時系列分析
SELECT date , close_price,
stat_moving_avg(close_price, 20 ) AS sma_20,
stat_ema(close_price, 12 ) AS ema_12,
stat_rolling_std(close_price, 20 ) AS volatility,
stat_diff(close_price, 1 ) AS daily_change,
stat_lag(close_price, 1 ) AS prev_close
FROM stock_prices;
-- 欠損値の補完 → 外れ値検出 → クリーンなデータで分析
SELECT id, raw_value,
stat_fillna_interp(raw_value) AS filled,
stat_outliers_iqr(raw_value) AS is_outlier,
stat_winsorize(raw_value, 5 ) AS winsorized
FROM sensor_data;