我手头有一个回归问题,并且知道该错误是由输入变量的多重共线性引起的,但是我很难找到如何识别这些额外变量并将它们从回归模型中删除以使其工作。
这是一个简单的例子,但在我的例子中,它不仅仅是高度相关的变量(它可以是 x3 = x1 + x2):
import numpy as np
#input array A
A =np.array([[ 1, 2, 3],
[ 4, 5, 6],
[ 8, 10, 12]])
#output array b
b = np.array([ 22., 7., 14.])
# check the rank and input array and find it is not full rank
np.linalg.matrix_rank(A)
#will return "LinAlgError: Singular matrix"
np.linalg.solve(A,b)
# will return result without error
np.linalg.lstsq(A,b)
但是,在这种情况下,我想首先删除 X3,因为它与 X2 相关,并使用 X1 和 X2 来拟合 b。
关于如何将 A 的等级降低到其满等级并在适合模型之前删除额外变量的任何想法?
谢谢!