多元线性回归是我们在数据分析中经常用到的一个方法,很多人在遇到多维数据时基本上无脑使用该方法,而在用多元线性回归之后所得到的结果又并不总是完美的,其问题实际上并不出在方法上,而是出在数据上。当数据涉及的维度过多时,我们就很难保证维度之间互不相关,而这些维度又都对结果产生一定影响,当一组维度或者变量之间有较强的相关性时,就认为是一种违背多元线性回归模型基本假设的情形。今天我们就讲解一下如何用VIF方法消除多维数据中多重共线性的问题。
首先介绍一下多重共线性。
多元回归模型有一个基本假设,就是要求设计矩阵X的秩rank(X)=p+1,其中p是维度数,即要求X中的列向量之间线性无关。如果存在不全为零的p+1个数c0、c1、c2、...、cp,使得c0 + c1xi1 + c2xi2 + ... + cpxip = 0,i=1, 2, 3, ..., n,则自变量x1、x2、...、xp之间存在多重共线性(multi-collinearity),因为实际问题中,完全多重共线性不太常见,所以上式中的等号经常用约等号。多重共线性到底会带来什么问题呢,笔者下面就用一个实际例子来告诉大家。
这个例子来自1994年统计摘要,是一个中国民航客运量的回归模型,统计了1978至1993年的各年数据。该模型以民航客运量为因变量y,以国民收入、消费额、民航航线里程、来华旅游入境人数作为影响客运量的主要因素,其中y的单位是万人,x1表示国民收入(亿元),x2表示消费额(亿元),x3表示铁路客运量(万人),x4表示民航航线里程(万公里),x5表示来华旅游入境人数(万人)。该数据集如图1所示,一共16行、7列(包括前面的y