如果要用怀特检验检验上述方程有没有异方差,主要分以下几个步骤:
1.step1:
对方程进行普通的ols估计,可以得到方程的残差ui。
2.step2:
以第一步估计估计出来的残差作为y,构造如下方程:
上面构造的方程看起来比较复杂,但主要是由三部分组成:原方程的解释变量、解释变量的平方、解释变量之间的交互项。
方程构造好以后对方程进行估计求解。
3.step3:
再回想一下什么是异方差,就是残差项与某一个或某一些x之间有相关性是不是。
那如果step2中的方程中每一个系数都为0,是不是说明残差与任意x都是无关的,大家把这个称为原假设;反之,只要有一个系数不为0,就说明残差与x有关,也就是存在异方差,大家把这个称为备择假设。
在原假设成立的情况下,可以得知step2中方程的R^2乘以样本容量n服从自由度等于step2回归方程中的变量数的卡方分布。
在服从卡方分布的前提下就可以根据与卡方分布的临界值来比较来判断原假设是否成立。
4.step4:
如果计算出来的nR^2显著高于选定显著性水平(p_value值)的卡方临界值,则需要拒绝原假设,也就是方程存在异方差。
如果存在异方差时,还可以查看step2方程的估计结果中每个变量的显著性情况,进而确定是哪个变量引起的异方差。
需要注意的是,如果模型中包含多个变量时,此时引进多个变量的交互项会大大降低方程的自由度,所以看情况可以选择不加。
当然,以上过程也不需要大家自己去实现,Python也是有现成的包可以调用: