Я написал несколько кодов, которые используют мультилинейную модель для прогнозирования цены автомобиля на основе таких характеристик, как пробег, цилиндр, двери, круиз, звук, кожа. Пример данных, как на снимке: автомобили Затем я хочу проверить, есть ли какие-либо функции в модели, которые имеют высокую коллинеарность, и влияют ли они на качество модели, как показано ниже, в результате я получил массив (я полагаю, что это массив VIF?), однако, я понимаю, что каждое значение VIF должно представлять коллинеарность между каждой из двух функций, то есть это должна быть матрица, а не массив, верно? Как проверить коллинеарность из массива? Или я должен как-то изменить свои коды, чтобы получить матрицу? Спасибо!
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
import scipy, scipy.stats
from sklearn.model_selection import train_test_split
cars = pd.read_csv('cars.csv')
cars.head()
cars.info()
X=cars[['Mileage', 'Cylinder', 'Doors', 'Cruise', 'Sound', 'Leather']].values
y=cars['Price'].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
regressor = LinearRegression()
regressor.fit(X_train, y_train)
from statsmodels.stats.outliers_influence import variance_inflation_factor
[variance_inflation_factor(X_train, j) for j in range(X_train.shape[1])]
Вывод получен: # cars.info ():
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 804 entries, 0 to 803
Data columns (total 18 columns):
Price 804 non-null float64
Mileage 804 non-null int64
Cylinder 804 non-null int64
Doors 804 non-null int64
Cruise 804 non-null int64
Sound 804 non-null int64
Leather 804 non-null int64
Buick 804 non-null int64
Cadillac 804 non-null int64
Chevy 804 non-null int64
Pontiac 804 non-null int64
Saab 804 non-null int64
Saturn 804 non-null int64
convertible 804 non-null int64
coupe 804 non-null int64
hatchback 804 non-null int64
sedan 804 non-null int64
wagon 804 non-null int64
dtypes: float64(1), int64(17)
memory usage: 113.1 KB
#VIF:
[5.9882999105246935,
13.522607316383963,
10.893965772667245,
4.564742540402573,
2.8815915938492838,
3.6030229813600663]