在 Python 中使用来自 statsmodels 的 KernelReg 时的奇怪带宽行为

问题描述

'正在尝试在 Python 中使用 statsmodels' KernelReg() 函数在简单的双变量数据集上运行局部线性核估计器(高斯核)。这是我的代码

kde = KernelReg(x,y,var_type='c',reg_type='ll',bw=[10000])
estimator = kde.fit(y)
estimator = np.reshape(estimator[0],df.shape[0])

但是,如果我使用认带宽(即 cv_ls - 最小二乘交叉验证),我只会得到一条 45 度线,它根本不会密切跟随我的数据。如果我手动设置带宽,随着带宽的增加,拟合度会提高,但是,它并不完全适合数据(完全我的意思是,当我增加带宽时,它逐渐接近我的数据的样子,但即使有 20位带宽,它仍然关闭)。

这很奇怪,因为带宽不应该像这样——它应该有某种最佳点。您知道可能是什么问题吗?

第二个问题:如何将结果作为一条线,而不是一个点的列表?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)