Jos*_*osh 3 python numpy scipy kernel-density
以下简单示例返回一个奇异矩阵.为什么?有什么方法可以克服它吗?
In: from scipy.stats import gaussian_kde
Out:
In: points
Out: (array([63, 84]), array([46, 42]))
In: gaussian_kde(points)
Out: (array([63, 84]), array([46, 42]))
LinAlgError: singular matrix
Run Code Online (Sandbox Code Playgroud)
查看回溯,在反转协方差矩阵时可以看到它失败.这是由于数据的精确多重共线性.如果两个变量共线,即在页面中,则数据中存在多重共线性
两个自变量之间的相关性等于1或-1
在这种情况下,两个变量只有两个样本,并且它们总是共线的(通常,总有一条线路通过两个不同的点).我们可以检查:
np.corrcoef(array([63,84]),array([46,42]))
[[ 1. -1.]
[-1. 1.]]
Run Code Online (Sandbox Code Playgroud)
为了不必共线,两个变量必须至少具有n=3样本.要添加到此约束,您将具有ali_m指出的限制,即样本数n应大于或等于变量数p.把两者放在一起,
n>=max(3,p)
Run Code Online (Sandbox Code Playgroud)
在这种情况下p=2,n>=3是正确的约束.
| 归档时间: |
|
| 查看次数: |
1486 次 |
| 最近记录: |