R Extraxt Time изменяющиеся параметры сглаживания - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь извлечь изменяющийся во времени параметр моей игры.

Это модель:

gam1 <- gam(as.numeric(A5_1)~s(tt,k=k)+s(tt,by=A5_1L,k=k)+s(tt,by=A5_2L,k=k)+
            s(tt,by=A5_5L,k=k)+s(tt,by=A5_9L,k=k),data=data_subset)
gam2 <- gam(as.numeric(A5_2)~s(tt,k=k)+s(tt,by=A5_1L,k=k)+s(tt,by=A5_2L,k=k)+
            s(tt,by=A5_5L,k=k)+s(tt,by=A5_9L,k=k),data=data_subset)
gam5 <- gam(as.numeric(A5_5)~s(tt,k=k)+s(tt,by=A5_1L,k=k)+s(tt,by=A5_2L,k=k)+
            s(tt,by=A5_5L,k=k)+s(tt,by=A5_9L,k=k),data=data_subset)
gam9 <- gam(as.numeric(A5_9)~s(tt,k=k)+s(tt,by=A5_1L,k=k)+s(tt,by=A5_2L,k=k)+
            s(tt,by=A5_5L,k=k)+s(tt,by=A5_9L,k=k),data=data_subset)

summary(gam1) выглядит так:

enter image description here

Я могу создавать графики, показывающие параметры сглаживания с течением времени, вот так:

plot(gam1, select=2,ylim=c(-3,1),rug=F,xlab="time points",
     ylab=substitute(paste("Joy",italic("(t-1)"), "on Joy",italic("(t)"))))

График выглядит так:

plot_gam

До сих пор я нашел функцию predict.gam():

predict.gam(gam1, type = "terms")

Функция прогнозирования дает мне:

predict_gam

(nrows = 103)

Однако выходные данные не соответствуют графику.Линия на графике начинается около 0,2, а параметр сглаживания из predict.gam() составляет около 1,1.Как я могу извлечь правильные параметры сглаживания во времени?

В общем, я хочу эти параметры, чтобы я мог создавать различные qgraphs () с течением времени.Один qgraph в начале, середине и конце.Как и графики сетевого анализа.Если есть прямой способ создания нескольких графиков qgraph () из изменяющейся во времени игры, я с удовольствием приму это также.

Может быть, я даже буду использовать qgraph.animate (), как только я создаю матрицу этих параметров.

Большое спасибо!

1 Ответ

0 голосов
/ 19 декабря 2018

Это не будет похоже на график, потому что график показывает оценочный эффект для 100 упорядоченных значений в наблюдаемом диапазоне tt.Вызов predict() возвращает вам подогнанные значения для ваших данных, потому что вы ничего не указали для аргумента newdata.

Два варианта:

  1. Сохранить вывод из plot.gam(): plt <- plot.gam(....)

    Теперь plt будет содержать объект со всеми данными, использованными для создания графика.Если вы построите все сглаживания, а не только одно, вы получите список с объектом данных на сглаживание.

  2. Подготовьте некоторые новые данные для прогнозирования и передайте их predict()как newdata.Вам нужно будет предоставить данные для tt плюс все переменные by, используемые в модели.expand.grid() полезно для этого.

...