Lors de la sélection d'un nombre approprié de nœuds pour un GAM, on peut vouloir prendre en compte le nombre de données et d'incréments sur l'axe des x.
Et si nous avons 100 incréments sur l'axe des x avec 1000 points de données à chaque incrément.
L'info ici dit:
S'ils ne sont pas fournis, les nœuds de la spline sont placés uniformément dans les valeurs de covariables auxquelles le terme se réfère: Par exemple, si l'ajustement de 101 données avec une spline de 11 nœuds de x, il y aurait un nœud à chaque 10ème (ordonné) valeur x.
Donc, un départ de base devrait être de 9 nœuds dans cet exemple? Je ne suis tout simplement pas sûr de la plage de nœuds qui conviendrait à cet ensemble de données, car il est possible d'adapter des nombres très petits à très grands.
set.seed(1)
dat <- data.frame(y = rnorm(10000), x = 100)
library(ggplot)
ggplot(dat, aes(x = x, y = y)) +
geom_point(size= 0.5) +
stat_smooth(method = "gam",
formula = y ~ s(x, bs = "cs"),k=9, col = "black")
Si k = 25 fournissait un ajustement utile, serait-il raisonnable pour ces données?
bs = "cs"
terme dans la spline?k
équivaut à spécifierk=-1
?D'où vient l'idée que GCV choisira automatiquement le nombre de nœuds? Le nombre de nœuds (c'est-à-dire la dimension de base) est fixe et ne peut pas être modifié pendant l'ajustement du modèle. Ce que le score GCV dans la fonction gam () fait "automatiquement" n'est pas de choisir la dimension de base k, comme le dit Ira S, mais de choisir le niveau lisse de chaque spline de base en introduisant une pénalité de lueur dans le minimiseur ou l'objectif d'ajustement. Pour choisir le nombre de nœuds k, vous devez utiliser une valeur supérieure au nombre de degrés de liberté que vous attendez. Citant l'aide de choose.k: "le choix exact de k n'est généralement pas critique: il doit être choisi suffisamment grand pour que vous soyez raisonnablement sûr d'avoir suffisamment de degrés de liberté pour représenter raisonnablement bien la" vérité "sous-jacente, mais assez petit pour maintenir une efficacité de calcul raisonnable ". Donc, augmentez essentiellement k par grandes étapes jusqu'à ce que vous ne voyiez aucun changement dans votre tracé, par exemple. En résumé: il n'y a rien de tel qu'un choix "automatique" pour k comme le dit Ira S, l'utilisateur devraitchoisissez toujours une valeur k dans le cadre de la conception du modèle. Sinon, vous sous-adaptez probablement votre modèle!
la source