如何在rpy2中使用anova比较模型?
在R语言中,我们可以通过命令 anova(fit1,fit2)
来比较两个已经拟合好的模型,比如fit1和fit2。
不过,如果我们想用Rpy2这个接口来做同样的事情,就会一直出现错误。其实,使用Rpy2计算单个模型的anova,比如 anova(fit1)
是可以的。
而在使用两个模型时,出现的错误是:
no method for coercing this S4 class into a vector.
所以,我想知道这个问题怎么解决,以及如何在rpy2中比较这两个拟合好的模型?
1 个回答
1
你需要这些标题
import rpy2.robjects as robjects
from rpy2.robjects import DataFrame, Formula
然后,这个方法对我有效:
formula = Formula('responsev ~ predictorv')
formula2 = Formula('responsev ~ predictorv2')
dataf = DataFrame({'responsev': robjects.IntVector(Y), \
'predictorv': robjects.IntVector(X),\
'predictorv2': robjects.IntVector(X2)})
fit=robjects.r.lm(formula=formula, data=dataf)
fit2=robjects.r.lm(formula=formula2, data=dataf)
a=robjects.r.anova(fit,fit2)
你还需要想办法处理一下 a
,不过这应该不是什么大问题。
希望这能帮到你!