spreg.vif¶
- spreg.vif(reg)[source]¶
Calculates the variance inflation factor for each independent variable. For the ease of indexing the results, the constant is currently included. This should be omitted when reporting the results to the output text. [Gre03]
- Parameters:
- reg
regression
object
output instance from a regression model
- reg
- Returns:
- vif_result
list
of
tuples
each tuple includes the vif and the tolerance, the order of the variables corresponds to their order in the reg.x matrix
- vif_result
Examples
>>> import numpy as np >>> import libpysal >>> from libpysal import examples >>> import spreg >>> from spreg import OLS
Read the DBF associated with the Columbus data.
>>> db = libpysal.io.open(examples.get_path("columbus.dbf"),"r")
Create the dependent variable vector.
>>> y = np.array(db.by_col("CRIME")) >>> y = np.reshape(y, (49,1))
Create the matrix of independent variables.
>>> X = [] >>> X.append(db.by_col("INC")) >>> X.append(db.by_col("HOVAL")) >>> X = np.array(X).T
Run an OLS regression.
>>> reg = OLS(y,X)
Calculate the variance inflation factor (VIF). >>> testresult = spreg.vif(reg)
Select the tuple for the income variable.
>>> incvif = testresult[1]
Print the VIF for income.
>>> print("%12.12f"%incvif[0]) 1.333117497189
Print the tolerance for income.
>>> print("%12.12f"%incvif[1]) 0.750121427487
Repeat for the home value variable.
>>> hovalvif = testresult[2] >>> print("%12.12f"%hovalvif[0]) 1.333117497189 >>> print("%12.12f"%hovalvif[1]) 0.750121427487