非参数方法 nonparametric

本节收集了非参数统计中的各种方法。这包括对单变量和多变量数据的核密度估计、核回归和局部加权散点图平滑 (lowess)。

sandbox.nonparametric 包含一些正在开发中的函数或尚未进行单元测试的函数。我们计划在此包含非参数密度估计器,特别是基于核或正交多项式、平滑器以及 statsmodels 其他部分中的非参数模型和方法的工具。

核密度估计

核密度估计 (KDE) 功能分为单变量估计和多变量估计,它们以截然不同的方式实现。

单变量估计(由 KDEUnivariate 提供)使用 FFT 变换,使其速度非常快。因此,如果速度很重要,则应优先将其用于连续的单变量数据。它支持使用不同的核;带宽估计仅通过经验法则(Scott 或 Silverman)完成。

多变量估计(由 KDEMultivariate 提供)使用乘积核。它支持最小二乘法和最大似然交叉验证来进行带宽估计,以及估计混合的连续、有序和无序数据。但是,目前默认的核(高斯核、Wang-Ryzin 核和 Aitchison-Aitken 核)无法更改。KDEMultivariateConditional 支持直接估计条件密度 (\(P(X | Y) = P(X, Y) / P(Y)\))。

KDEMultivariate 也可以进行单变量估计,但速度比 KDEUnivariate 慢两个数量级。

核回归

核回归(由 KernelReg 提供)基于与 KDEMultivariate 相同的乘积核方法,因此具有与上述 KDEMultivariate 描述的相同功能集(混合数据、交叉验证带宽估计、核)。KernelCensoredReg 提供了删失回归。

请注意,基于 KernelReg 的半参数部分线性模型和单指标模型的代码可以在沙箱中找到。

参考文献

  • B.W. Silverman,“密度估计统计和数据分析”

  • J.S. Racine,“非参数计量经济学:入门”,计量经济学基础与趋势,第 3 卷,第 1 期,第 1-88 页,2008 年。

  • Q. Li 和 J.S. Racine,“非参数计量经济学:理论与实践”,普林斯顿大学出版社,2006 年。

  • Hastie、Tibshirani 和 Friedman,“统计学习要素:数据挖掘、推理和预测”,施普林格,2009 年。

  • Racine,J.,Li,Q.“具有分类和连续数据的分布的非参数估计”。工作文件。(2000 年)

  • Racine,J. Li,Q.“多元条件分布的核估计 经济学与金融年鉴 5, 211-235 (2004)

  • Liu,R.,Yang,L.“多元累积分布函数的核估计”。非参数统计杂志(2008 年)

  • Li,R.,Ju,G.“具有分类和连续数据的多元 CDF 的非参数估计”。工作文件

  • Li,Q.,Racine,J.“交叉验证局部线性非参数回归”统计学报 14(2004),第 485-512 页

  • Racine,J:“非参数回归的一致显著性检验”商业与经济统计杂志

  • Racine,J.,Hart,J.,Li,Q.“在非参数回归模型中检验分类预测变量的显著性”,2006 年,计量经济学评论 25, 523-544

模块参考

公共函数和类如下所示

lowess(endog, exog[, frac, it, delta, ...])

LOWESS(局部加权散点图平滑)

KDEUnivariate(endog)

单变量核密度估计器。

KDEMultivariate(data, var_type[, bw, defaults])

多元核密度估计器。

KDEMultivariateConditional(endog, exog, ...)

条件多元核密度估计器。

EstimatorSettings([efficient, randomize, ...])

用于指定密度估计或回归设置的对象。

KernelReg(endog, exog, var_type[, reg_type, ...])

非参数核回归类。

KernelCensoredReg(endog, exog, var_type, ...)

非参数删失回归。

用于核带宽的辅助函数

bw_scott(x[, kernel])

Scott 经验法则

bw_silverman(x[, kernel])

Silverman 经验法则

select_bandwidth(x, bw, kernel)

为选择规则 bw 选择带宽

statsmodels.nonparametric.dgp_examples 中有一些非线性函数的示例

非对称核

非对称核(如单位区间的 beta 核和正值随机变量的 gamma 核)可以避免分布支持边界的问题。

Statsmodels 对使用单位区间的核(beta)或正实数(所有其他核)进行密度和累积分布函数估计提供了初步支持。

正实数的几个核假设零边界处的密度为零。gamma 核也允许零边界处的密度为正或无界。

目前没有默认值,也不支持选择带宽。用户必须提供带宽。

计算核密度和核累积分布函数的函数为

pdf_kernel_asym(x, sample, bw, kernel_type)

基于非对称核的密度估计。

cdf_kernel_asym(x, sample, bw, kernel_type)

基于非对称核的累积分布估计。

可用于 pdf 和 cdf 的核函数为

kernel_pdf_beta(x, sample, bw)

用于密度、pdf、估计的 Beta 核。

kernel_pdf_beta2(x, sample, bw)

带边界校正的用于密度、pdf、估计的 Beta 核。

kernel_pdf_bs(x, sample, bw)

用于密度、pdf、估计的 Birnbaum Saunders(正态)核。

kernel_pdf_gamma(x, sample, bw)

用于密度、pdf、估计的 Gamma 核。

kernel_pdf_gamma2(x, sample, bw)

带边界校正的用于密度、pdf、估计的 Gamma 核。

kernel_pdf_invgamma(x, sample, bw)

用于密度、pdf、估计的逆 Gamma 核。

kernel_pdf_invgauss(x, sample, bw)

用于密度、pdf、估计的逆高斯核。

kernel_pdf_lognorm(x, sample, bw)

用于密度、pdf、估计的对数正态核。

kernel_pdf_recipinvgauss(x, sample, bw)

用于密度、pdf、估计的倒数逆高斯核。

kernel_pdf_weibull(x, sample, bw)

用于密度、pdf、估计的 Weibull 核。

kernel_cdf_beta(x, sample, bw)

用于累积分布、cdf、估计的 Beta 核。

kernel_cdf_beta2(x, sample, bw)

带边界校正的用于 cdf 估计的 Beta 核。

kernel_cdf_bs(x, sample, bw)

用于 cdf 估计的 Birnbaum Saunders(正态)核。

kernel_cdf_gamma(x, sample, bw)

用于累积分布、cdf、估计的 Gamma 核。

kernel_cdf_gamma2(x, sample, bw)

带边界校正的用于 cdf 估计的 Gamma 核。

kernel_cdf_invgamma(x, sample, bw)

用于累积分布、cdf、估计的逆 Gamma 核。

kernel_cdf_invgauss(x, sample, bw)

用于累积分布、cdf、估计的逆高斯核。

kernel_cdf_lognorm(x, sample, bw)

用于累积分布、cdf、估计的对数正态核。

kernel_cdf_recipinvgauss(x, sample, bw)

用于 cdf 估计的倒数逆高斯核。

kernel_cdf_weibull(x, sample, bw)

用于累积分布、cdf、估计的 Weibull 核。

sandbox.nonparametric 包含用于测试函数形式以及半线性模型和单指标模型的其他未经充分测试的类。


最后更新时间:2024 年 10 月 3 日