Добавление сплайнов в полиномиальную модель логита с использованием mgcv

Я пытаюсь обучить полиномиальную модель логита, и пока я на ней, я мог бы также сделать ее 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))

0 ответов

Другие вопросы по тегам