0

在 R 中,可以使用命令比较两个拟合模型 fit1 和 fit2 anova(fit1,fit2)

但是,如果我们尝试使用接口 Rpy2 类似地执行此操作,它总是会出错。单个模型的 anova,比如 anova(fit1) 可以通过 Rpy2 计算。

使用两个时发生的错误是:

no method for coercing this S4 class into a vector.

所以,我想知道如何解决这个问题,以及如何比较 rpy2 中的两个拟合模型?

4

1 回答 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,但这应该是次要的。

希望能帮助到你!

于 2012-01-05T16:41:08.883 回答