statsmodels二维核回归

问题描述 投票:3回答:1

我有一个具有3列['X', 'Y', 'Z']的数据框,我想研究XY如何影响Z的分布。为此,我想使用nadaraya watson的非参数回归器。在statsmodels中,有一个称为KernelReg的类来实现它。

虽然我能够成功地执行一维回归的代码(Z上的XZ上的Y,但是我却很难为二维回归运行它。

我的代码如下:XYZ是我的数据帧

xv = XYZ['X'].values; yv = XYZ['Y'].values; zv = XYZ['Z'].values

from statsmodels.nonparametric.kernel_regression import KernelReg
ksrmv = KernelReg(endog=zv, exog= [xv, yv], var_type='c')

我得到的错误是cannot reshape array of size 3171442 into shape (2,1)

xv.shape = yv.shape = zv.shape =(1585721,)

我已经尝试过指定像这样的exog的其他替代方法>

XYZ.loc[:, ['X', 'Y']] or XYZ.loc[:, ['X', 'Y']].values or np.concatenate([xv[:, None], yv[:, None]])

总是相同的错误。

在statsmodels中的exog的描述中。它应该是自变量列表。列表中的每个元素都是一个单独的变量,我不确定如何解释它。

我有一个包含3列['X','Y','Z']的数据框,我想研究X和Y如何影响Z的分布。为此,我想使用非参数回归变量纳达拉亚·沃森。 ...

python statsmodels
1个回答
2
投票

我相信,必须为同一字符串(即var_type参数中的每个自变量)提供变量类型。如果两个变量都是连续的,则您的代码为:

© www.soinside.com 2019 - 2024. All rights reserved.