我正在尝试计算python中简单数据集中每列的方差膨胀因子(VIF):
a b c d
1 2 4 4
1 2 6 3
2 3 7 4
3 2 8 5
4 1 9 4
Run Code Online (Sandbox Code Playgroud)
我已经使用usdm库中的vif函数在R中完成了这个,它给出了以下结果:
a <- c(1, 1, 2, 3, 4)
b <- c(2, 2, 3, 2, 1)
c <- c(4, 6, 7, 8, 9)
d <- c(4, 3, 4, 5, 4)
df <- data.frame(a, b, c, d)
vif_df <- vif(df)
print(vif_df)
Variables VIF
a 22.95
b 3.00
c 12.95
d 3.00
Run Code Online (Sandbox Code Playgroud)
但是,当我使用statsmodel vif函数在python中执行相同操作时,我的结果是: …
我正在尝试在Python中运行我已经在R中完成的线性回归,以便找到具有0个系数的变量.我遇到的问题是R中的线性回归为具有低方差的列返回NAs,而scikit learn regression返回系数.在R代码中,我通过保存带有NAs的变量作为线性回归的输出来查找并保存这些变量,但我似乎无法找到在python中模仿这种行为的方法.我正在使用的代码可以在下面找到.
R代码:
a <- c(23, 45, 546, 42, 68, 15, 47)
b <- c(1, 2, 4, 6, 34, 2, 8)
c <- c(22, 33, 44, 55, 66, 77, 88)
d <- c(1, 1, 1, 1, 1, 1, 1)
e <- c(1, 1, 1, 1, 1, 1, 1.1)
f <- c(1, 1, 1, 1, 1, 1, 1.01)
g <- c(1, 1, 1, 1, 1, 1, 1.001)
df <- data.frame(a, b, c, d, e, f, g)
var_list = c('b', 'c', …Run Code Online (Sandbox Code Playgroud)