我手头有回归问题,并且知道错误是由输入变量的多重共线性引起的,但是我很难找到如何识别这些额外变量并将其从回归模型中删除以使其工作。
这是一个简单的例子,但在我看来,它不仅仅是高度相关的变量(它可以是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的等级降低到满级并在适合模型之前删除额外变量的任何想法?
谢谢!