原文地址https://github.com/query-farm/stochasticQuery.Farm 为 DuckDB 开发 Stochastic 扩展由 Query.Farm 开发的 stochastic 扩展为 DuckDB 添加了全面的统计分布函数使您能够直接在 SQL 查询中进行高级统计分析、概率计算和随机抽样。安装stochastic是 DuckDB 社区扩展。您可以在 DuckDB SQL 中安装并使用它INSTALL stochasticFROMcommunity;LOADstochastic;什么是统计分布统计分布是描述数据集中不同结果出现概率的数学函数。它们是统计学、数据科学、机器学习和科学计算的基石。此扩展提供以下功能计算概率密度函数和概率质量函数 (PDF/PMF)计算累积分布函数 (CDF)生成分位数逆 CDF从分布中抽样随机值获取分布属性均值、方差等支持的分布该扩展支持一整套概率分布连续分布分布名称函数前缀Betadist_beta_*Cauchydist_cauchy_*卡方分布 (Chi-squared)dist_chi_squared_*指数分布 (Exponential)dist_exponential_*极值分布 (Extreme Value)dist_extreme_value_*Fisher F 分布dist_fisher_f_*Gamma 分布dist_gamma_*Laplace 分布dist_laplace_*对数正态分布 (Log-normal)dist_lognormal_*Logistic 分布dist_logistic_*正态分布 (Normal/Gaussian)dist_normal_*Pareto 分布dist_pareto_*Rayleigh 分布dist_rayleigh_*Student’s t 分布dist_students_t_*均匀分布实数(Uniform Real)dist_uniform_real_*Weibull 分布dist_weibull_*离散分布分布名称函数前缀伯努利分布 (Bernoulli)dist_bernoulli_*二项分布 (Binomial)dist_binomial_*几何分布 (Geometric)dist_geometric_*负二项分布 (Negative Binomial)dist_negative_binomial_*泊松分布 (Poisson)dist_poisson_*均匀分布整数(Uniform Integer)dist_uniform_int_*函数类别每个分布都提供以下类型的函数抽样函数dist_{distribution}_sample(params...)- 生成随机样本密度/质量函数dist_{distribution}_pdf(params..., x)- 概率密度函数dist_{distribution}_log_pdf(params..., x)- 对数概率密度函数累积函数dist_{distribution}_cdf(params..., x)- 累积分布函数dist_{distribution}_log_cdf(params..., x)- 对数累积分布函数dist_{distribution}_cdf_complement(params..., x)- 生存函数 (1 - CDF)dist_{distribution}_log_cdf_complement(params..., x)- 对数生存函数分位数函数dist_{distribution}_quantile(params..., p)- 分位数函数逆 CDFdist_{distribution}_quantile_complement(params..., p)- 互补分位数函数风险函数dist_{distribution}_hazard(params..., x)- 风险函数dist_{distribution}_chf(params..., x)- 累积风险函数分布属性dist_{distribution}_kurtosis_excess(params...)- 超额峰度dist_{distribution}_kurtosis(params...)- 峰度dist_{distribution}_mean(params...)- 期望值dist_{distribution}_median(params...)- 中位数第 50 百分位数dist_{distribution}_mode(params...)- 众数最可能值dist_{distribution}_range(params...)- 取值范围dist_{distribution}_skewness(params...)- 偏度dist_{distribution}_stddev(params...)- 标准差dist_{distribution}_support(params...)- 分布支撑集dist_{distribution}_variance(params...)- 方差分布参数以下是每个支持分布的参数。将它们作为抽样、PDF、CDF 和其他函数的参数使用。连续分布Beta参数描述alpha形状参数 α ( 0)beta形状参数 β ( 0)Cauchy参数描述location位置参数 x₀scale尺度参数 γ ( 0)卡方分布参数描述df自由度 ( 0)指数分布参数描述rate比率参数 λ ( 0)极值分布参数描述location位置参数scale尺度参数 ( 0)Fisher F 分布参数描述df1分子自由度 ( 0)df2分母自由度 ( 0)Gamma参数描述shape形状参数 k ( 0)scale尺度参数 θ ( 0)Laplace参数描述location位置参数 μscale尺度参数 b ( 0)对数正态分布参数描述meanlog对数值的均值sdlog对数值的标准差 ( 0)Logistic参数描述location位置参数scale尺度参数 ( 0)正态分布参数描述mean均值 μstddev标准差 σ ( 0)Pareto参数描述scale尺度参数 xₘ ( 0)shape形状参数 α ( 0)Rayleigh参数描述scale尺度参数 σ ( 0)Student’s t参数描述df自由度 ( 0)均匀分布实数参数描述min下界max上界 (必须 min)Weibull参数描述shape形状参数 k ( 0)scale尺度参数 λ ( 0)离散分布伯努利分布参数描述p成功概率 (0 ≤ p ≤ 1)二项分布参数描述n试验次数 (整数 ≥ 0)p成功概率 (0 ≤ p ≤ 1)几何分布参数描述p成功概率 (0 ≤ p ≤ 1)负二项分布参数描述r成功次数 (整数 0)p成功概率 (0 ≤ p ≤ 1)泊松分布参数描述rate比率参数 λ ( 0)均匀分布整数参数描述min下界 (整数)max上界 (整数, 必须 ≥ min)使用示例正态分布-- 从 N(0, 1) 生成随机样本SELECTdist_normal_sample(0.0,1.0)ASrandom_value;-- 计算 N(0, 1) 在 x 0.5 处的 PDFSELECTdist_normal_pdf(0.0,1.0,0.5)ASdensity;-- 计算 CDF (P(X ≤ 1.96))SELECTdist_normal_cdf(0.0,1.0,1.96)ASprobability;-- 查找 95th 百分位数SELECTdist_normal_quantile(0.0,1.0,0.95)ASpercentile_95;-- 获取分布属性SELECTdist_normal_mean(0.0,1.0)ASmean,dist_normal_variance(0.0,1.0)ASvariance,dist_normal_skewness(0.0,1.0)ASskewness;二项分布-- 10 次试验p0.3 的概率质量函数SELECTdist_binomial_pdf(10,0.3,7)ASprob_exactly_7;-- 累积概率 (≤ 5 次成功)SELECTdist_binomial_cdf(10,0.3,5)ASprob_at_most_5;-- 生成随机二项样本SELECTdist_binomial_sample(10,0.3)ASrandom_successes;处理数据表-- 生成合成数据集CREATETABLEsynthetic_dataASSELECTi,dist_normal_sample(100,15)ASheight_cm,dist_normal_sample(70,10)ASweight_kg,dist_binomial_sample(1,0.5)ASgender-- 0 或 1FROMrange(1000)t(i);-- 计算 z-scoresSELECTheight_cm,(height_cm-dist_normal_mean(100,15))/dist_normal_stddev(100,15)ASheight_zscoreFROMsynthetic_data;-- 概率计算SELECTweight_kg,dist_normal_cdf(70,10,weight_kg)ASpercentileFROMsynthetic_dataLIMIT10;实际应用场景A/B 测试与统计显著性常见任务确定转化率之间是否存在统计显著差异相关函数dist_normal_cdfdist_normal_cdf_complementdist_normal_pdf金融风险评估与 VaR 计算常见任务计算投资组合管理的风险价值 (VaR)相关函数dist_normal_sampledist_normal_quantiledist_normal_cdf质量控制与流程监控常见任务监控制造过程并检测失控状况相关函数dist_normal_sampledist_normal_cdfdist_normal_pdf预测分析与置信区间常见任务为预测模型构建预测区间相关函数dist_normal_quantiledist_normal_cdfdist_normal_sample客户分析与 CLV 建模常见任务使用不确定性量化对客户生命周期价值进行建模相关函数dist_normal_sampledist_exponential_sampledist_normal_quantiledist_normal_cdf异常检测与离群值分析常见任务使用统计方法检测时间序列数据中的异常相关函数dist_normal_pdfdist_normal_cdfdist_normal_cdf_complement蒙特卡洛模拟常见任务运行蒙特卡洛模拟以进行风险分析、优化或建模相关函数dist_normal_sampledist_uniform_real_sampledist_gamma_sampledist_beta_sample假设检验常见任务执行统计假设检验t 检验、卡方检验等相关函数dist_students_t_cdfdist_chi_squared_cdfdist_normal_cdfdist_fisher_f_cdf贝叶斯分析常见任务实现贝叶斯统计模型和后验分析相关函数dist_beta_pdfdist_gamma_pdfdist_normal_pdfdist_beta_sample生存分析常见任务分析医学研究或可靠性工程中的事件发生时间数据相关函数dist_exponential_pdfdist_weibull_pdfdist_gamma_pdfdist_exponential_cdf为什么要使用 DuckDB Stochastic 而非 Python/R✅优势无需数据移动分析在数据所在位置进行SQL 熟悉度使用现有的 SQL 技能而非学习专门的库性能列式处理与向量化统计操作集成与现有 BI 工具和 SQL 工作流程无缝协作实时性分析流式数据无需导出/导入循环性能优势统计操作经过向量化并为 DuckDB 的列式引擎进行了优化。参数验证所有分布函数都包含全面的参数验证-- 这将抛出错误标准差必须 0SELECTdist_normal_pdf(0.0,-1.0,0.5);-- Error: normal: Standard deviation must be 0 was: -1.000000-- 这将抛出错误概率必须在 0 和 1 之间SELECTdist_binomial_pdf(10,1.5,5);-- Error: binomial: Probability must be between 0 and 1 was: 1.500000许可证MIT 许可