我的想法是计算每个变量的VIF,然后取出最高值的变量(如果它高于某个阈值),重新计算每个剩余变量的VIF,并重复该过程,直到没有VIF高于treshold。这种方法没有什么新奇的想法,但是我无法在Python中创建一个函数来自动化这个过程。= add_constant(x)
vif = pd.DataFrame([variance_inflation_factor(x_vif.values, i) for i in range(x_vif.shape[1])], in
当我尝试运行这个模型时 y, X =dmatrices('price - area + bedrooms + bathrooms', df, return_type='dataframe')
vif["VIF Factor"]=[variance_inflation_factor(X.values, i) for i in range(X.shape[1])]vif["features"]=X.colum
下面是保存的对象,它为我提供了很好的可视化:例如,对于plot(check$OUTLIERS)但是,当我尝试使用plot(check$VIFat retrieving data :( Please provide original model or data through the `data` argument (Intr) Cff_CpStart_