import statsmodels.api as sm
model = sm.OLS(endog = Y, exog = X).fit()
model.summary()
수정된 결정계수는 Y에게 유의한 X가 모형에 들어올 때는 결정계수가 증가하고 Y에게 유의하지 않은 X가 모형에 들어올 때는 결정계수가 증가하지 않도록 조치를 한 것임
from sklearn.metrics import mean_squared_error
mean_squared_error(y_true = , y_pred = )
model.predict(exog = X)
# VIF (Variance Inflation Factor)
from statsmodels.stats.outliers_influence import variance_inflation_factor
VIF = pd.DataFrame()
VIF['VIF'] = [variance_inflation_factor(X.values, i) for i in range(X.shape[1])]
VIF['Variable'] = X.columns
from scipy.stats.mstats import zscore
model = sm.OLS(endog = zscore(Y), exog = zscore(x)).fit()
model.summary()
dummy_data = pandas.get_dummies
data = data.join(dummy_data)
DW 값이 2에 가까우면 오차들은 독립
DW 값이 0에 가까우면 독립 X, 양의 자기상관 O
DW 값이 4에 가까우면 독립 X, 음의 자기상관 O
# 참고
import statsmodels.stats as sms
sms.durbin_watson(residuals)
from mlxtend.feature_selection import SequentialFeatureSelector as sfs
from sklearn.linear_model import LinearRegression
variable = sfs(LinearRegression(),
k_features = , # number of features to select, 'best'도 가능
forward = True or False, # False = backward
floating = , # adds a conditional exclusion/inclusion if Ture
scoring = , # 'accuracy for sklearn classifiers
# 'r2' for sklearn regressors
cv = ).fit(X, Y) # cv = cross validation, default = 5
result.k_feature_names_