我想在我的逻辑回归模型中计算某些系数的标准误差。现在,我找到了这个有用的链接:
但是当我将其应用于逻辑回归问题时,我得到LinAlgError: Singular matrix
。无论如何,我可以改为使用#covLogit = np.linalg.pinv(np.dot(np.dot(X_design.T, V), X_design))
来强制进行逆计算,但是我不知道这是否是正确的解决方案。
但是,为什么我会首先收到错误消息?。
我不能相信我的矩阵没有逆。.我很少发生这种情况。我的矩阵X_train也很稀疏。
predProbs is np (1896, 1) float32
X_train is np (1896, 300) float32
# source: https://stats.stackexchange.com/questions/89484/how-to-compute-the-standard-errors-of-a-logistic-regressions-coefficients
# Design matrix -- add column of 1's at the beginning of your X_train matrix
X_design = np.hstack([np.ones((X_train.shape[0], 1)), X_train])
# Initiate matrix of 0's, fill diagonal with each predicted observation's variance
V = np.diagflat(np.product(predProbs, axis=1))
# Covariance matrix
covLogit = np.linalg.inv(np.dot(np.dot(X_design.T, V), X_design))
我得到了错误
File "<ipython-input-47-1c8cccf8d818>", line 11, in <module>
covLogit = np.linalg.inv(np.dot(np.dot(X_design.T, V), X_design))
File "<__array_function__ internals>", line 6, in inv
File "anaconda3\lib\site-packages\numpy\linalg\linalg.py", line 551, in inv
ainv = _umath_linalg.inv(a, signature=signature, extobj=extobj)
File "anaconda3\lib\site-packages\numpy\linalg\linalg.py", line 97, in _raise_linalgerror_singular
raise LinAlgError("Singular matrix")
LinAlgError: Singular matrix
对于假设检验,我需要系数的标准误差。