какие параметры принимает stepAIC?

Я использую функцию stepAIC() из библиотеки (MASS).

И в документации говорится, что я могу передать «объект»:

модель соответствующего класса. Это используется в качестве начальной модели в пошаговом поиске.

Что такое подходящий класс?

Я создал модель с помощью ksvm(), но stepAIC, похоже, не принимает ее.

Я использую код:

stepAIC(svmFit, direction="both")

И я получаю ошибку

Error: $ operator not defined for this S4 class

Объект svmFit, который я передаю, относится к классу:

[1] "ksvm"
attr(,"package")
[1] "kernlab"

person Chicago1988    schedule 13.12.2018    source источник


Ответы (1)


Мне не совсем ясно, какие модели принимаются, но мы можем сделать некоторые предположения, основанные на источнике.

Ему нужна модель, к которой можно получить доступ с помощью $ (т. е. обычно класс S3). Ваша модель относится к классу S4, поэтому по определению не будет работать.

Кроме того, должен быть как минимум рабочий метод класса модели для следующих функций: formula, terms, update.formula, nobs, extractAIC, deviance, update (судя по скану исходника). Это может быть метод по умолчанию, например stats:::formula.default, который находит x$formula, $terms, $call$formula или атрибут формулы.

Если один или несколько из этих методов не были реализованы, то он также не будет работать.

По сути, он делает множество допущений, которые работают для многих функций моделирования, таких как lm и glm. Можно написать новую функцию моделирования, которая будет создавать модели, совместимые с stepAIC, и составить полный список может быть сложно!

person Axeman    schedule 13.12.2018