在 R 中,可以使用命令比较两个拟合模型 fit1 和 fit2 anova(fit1,fit2)
。
但是,如果我们尝试使用接口 Rpy2 类似地执行此操作,它总是会出错。单个模型的 anova,比如 anova(fit1) 可以通过 Rpy2 计算。
使用两个时发生的错误是:
no method for coercing this S4 class into a vector.
所以,我想知道如何解决这个问题,以及如何比较 rpy2 中的两个拟合模型?
你需要这些标题
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
,但这应该是次要的。
希望能帮助到你!