Я пытаюсь обучить полиномиальную модель логита, и пока я в ней, я мог бы также сделать ее GAM и добавить сплайны к миксу.
Я пытался использовать mgcv
, но мне удалось пока генерировать только ошибки.Ниже приведены некоторые примеры использования набора данных iris
.
У вас есть идеи, как заставить его сходиться?
спасибо
library(tidyverse)
library(mgcv)
my_iris <- iris %>%
mutate(y = as.integer(as.factor(Species)) -1)
set.seed(8)
# this works (no spline)
mod1 <- gam(
data = my_iris,
formula = list(
y ~ Sepal.Length + Petal.Length,
~ Sepal.Length + Petal.Length),
family=multinom(K=2))
Сбой модели 2 (1 сплайн по ширине лепестка) со следующим предупреждением:
Warning message:
In newton(lsp = lsp, X = G$X, y = G$y, Eb = G$Eb, UrS = G$UrS, L = G$L, :
Fitting terminated with step failure - check results carefully
.
mod2 <- gam(
data = my_iris,
formula = list(
y ~ Sepal.Length + s(Petal.Width),
~ Sepal.Length + Petal.Length),
family=multinom(K=2))
Модель 3 (1 сплайн на длине лепестка) вылетает со следующим предупреждением:
Error in eigen(hess1, symmetric = TRUE) :
infinite or missing values in 'x'
.
mod3 <- gam(
data = my_iris,
formula = list(
y ~ Sepal.Length + s(Petal.Length),
~ Sepal.Length + Petal.Length),
family=multinom(K=2))
Модель 4(2xsplines на Sepal.Length) вылетает со следующим предупреждением:
Error in gam.fit5(x, y, sp, Sl = Sl, weights = weights, offset = offset, :
non finite values in Hessian
.
mod4 <- gam(
data = my_iris,
formula = list(
y ~ s(Sepal.Length) + Petal.Length,
~ s(Sepal.Length) + Petal.Length),
family=multinom(K=2))