非參數方法 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, “Density Estimation for Statistics and Data Analysis”

  • J.S. Racine, “Nonparametric Econometrics: A Primer,” Foundation and Trends in Econometrics, Vol. 3, No. 1, pp. 1-88, 2008.

  • Q. Li and J.S. Racine, “Nonparametric econometrics: theory and practice”, Princeton University Press, 2006.

  • Hastie, Tibshirani and Friedman, “The Elements of Statistical Learning: Data Mining, Inference, and Prediction”, Springer, 2009.

  • Racine, J., Li, Q. “Nonparametric Estimation of Distributions with Categorical and Continuous Data.” Working Paper. (2000)

  • Racine, J. Li, Q. “Kernel Estimation of Multivariate Conditional Distributions Annals of Economics and Finance 5, 211-235 (2004)”

  • Liu, R., Yang, L. “Kernel estimation of multivariate cumulative distribution function.” Journal of Nonparametric Statistics (2008)

  • Li, R., Ju, G. “Nonparametric Estimation of Multivariate CDF with Categorical and Continuous Data.” Working Paper

  • Li, Q., Racine, J. “Cross-validated local linear nonparametric regression” Statistica Sinica 14(2004), pp. 485-512

  • Racine, J.: “Consistent Significance Testing for Nonparametric Regression” Journal of Business & Economics Statistics

  • Racine, J., Hart, J., Li, Q., “Testing the Significance of Categorical Predictor Variables in Nonparametric Regression Models”, 2006, Econometric Reviews 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 估計的韋伯核函數。

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 估計的韋伯核函數。

sandbox.nonparametric 包含其他未經充分測試的類別,用於測試函數形式以及半線性模型和單一索引模型。


最後更新:2024 年 10 月 03 日