Добавление сплайнов в полиномиальную модель логита с использованием mgcv - PullRequest
0 голосов
/ 05 декабря 2018

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