Можно ли вычислить таблицу ANOVA для объектов регрессии R, которые не имеют функции anova (в частности, heavy :: heavyLm)? - PullRequest
0 голосов
/ 16 апреля 2020

Я выполняю надежную регрессию с тяжелым пакетом . Я хотел бы получить представление о вкладе терминов в объяснение отклонений. В простой регрессии с lm(), anova() (которая вызывает anova.lm()) будет использоваться для этого. К сожалению, heavy::heavyLm возвращает объект класса heavyLm, который явно не наследуется от lm, поэтому anova.lm() не вызывается и anova() не может использоваться:

rr <- heavy:heavyLm(<some_formula>, data=<some_data_frame>, family=Cauchy())
anova(rr)
# Error in UseMethod("anova") : 
#   no applicable method for 'anova' applied to an object of class "heavyLm"

Идеи

  • Попытка каким-либо образом вызвать anova.lm() и заставить его поверить, что rr относится к типу heavyLm, безусловно, не будет работать. Я заметил, что anova.lm() не просто вычисляет
    sum((rr$model[,2]-rr$coefficients[[2]]*mean(rr$model[,2]))**2)
    , т. Е. (X - коэффициент (x) * среднее (x)) ** 2, но выполняет вычисления с rr$effects и rr$qr, которые существуют, только если rr имеет тип lm, а не тип heavyLm. Я даже не уверен, как это сделать вручную.
  • Есть ли другой способ вычислить таблицу ANOVA? Я заметил, что есть и другие функции, такие как aov(). Тем не менее, я не уверен, что они не будут просто возвращать регрессию как обычный OLS, как в lm() (вместо того, чтобы придерживаться надежной регрессии). Также:
    
    aov(rr)
    # Error in eval(predvars, data, env) : object '' not found
  • Есть ли альтернатива таблице ANOVA, которую можно использовать для той же цели и которую можно получить проще или непосредственно из heavyLm объектов? Элементы heavyLm объекта выглядят как
    names(rr)
    [1] "dims"          "family"        "settings"      "coefficients"  "sigma2"        "fitted.values" "residuals"     "weights"       "distances"     "acov"          "logLik"<br>
    [12] "numIter"       "control"       "speed"         "converged"     "call"          "na.action"     "contrasts"     "xlevels"       "terms"         "model" 

Программное обеспечение - это R 3.6.3 с тяжелым 0.38.196 при Linux 5.5.9.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...