Как сравнить модели, использующие anova в rpy2? - PullRequest
0 голосов
/ 05 января 2012

В R можно сравнить две подогнанные модели, скажем, fit1 и fit2, используя команду anova (fit1, fit2).

Однако, если мы попытаемся сделать это аналогично, используя интерфейс Rpy2, онвсегда выдает ошибку.Anova для отдельной модели, скажем, anova (fit1), может быть вычислена с помощью Rpy2.

Ошибка, возникающая при использовании двух:

нет метода для приведения этого класса S4 в вектор.

Итак, я хотел знать, как эту проблему можно исправить и как сравнить две подходящие модели в rpy2?

1 Ответ

1 голос
/ 05 января 2012

Вам нужны эти заголовки

 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, но это должно быть незначительным.

Надеюсь, это поможет!

...