Какие параметры принимает stepAIC?
Я использую функцию stepAIC() из библиотеки (MASS).
И согласно документации говорится, что я могу передать "объект":
модель соответствующего класса. Это используется в качестве начальной модели в пошаговом поиске.
Что такое подходящий класс?
Я создал модель, используя ksvm(), но stepAIC, похоже, не принимает ее.
Я использую код:
stepAIC(svmFit, direction="both")
И я получаю ошибку
Error: $ operator not defined for this S4 class
Объект svmFit, который я передаю, имеет класс:
[1] "ksvm"
attr(,"package")
[1] "kernlab"
1 ответ
Мне не совсем ясно, какие модели принимаются, но мы можем предположить, основываясь на источнике.
Требуется модель, к которой можно получить доступ, используя $
(т.е., как правило, класс S3). Ваша модель класса S4, и поэтому по определению не будет работать.
Кроме того, для класса модели должен быть хотя бы рабочий метод для следующих функций: formula
, terms
, update.formula
, nobs
, extractAIC
, deviance
, update
(судя по скане источника). Это может быть метод по умолчанию, такой как stats:::formula.default
, который находит либо x$formula
, $terms
, $call$formula
или атрибут формулы.
Если один или несколько из этих методов не были реализованы, он также потерпит неудачу.
В основном, он делает много предположений, которые работают для многих функций моделирования, таких как lm
а также glm
, Можно написать новую функцию моделирования, которая будет создавать модели, совместимые с stepAIC
и полный список может быть трудно создать!