Интерпретация контурных графиков (мгкв) - PullRequest
0 голосов
/ 27 апреля 2020

Когда мы строим модель GAM с использованием пакета mgcv с изотропными сглаживателями, мы имеем контурный график примерно такой:

  • x ось для одного предиктора,
  • ось y для другого предиктора,
  • главная функция s (x1, x2) (isotropi c smother).

Предположим, что в этой модели у нас много других изотропий c сглаживает как: y ~ s (x1, x2) + s (x3, x4) + s (x5, x6)

Мои сомнения:
При интерпретации контурного графика для s (x1 , х2) что происходит с другими изотропными c сглаживателями?
Они "фиксированы в своих медианах"?
Можно ли интерпретировать как (х1, х2) график отдельно?

1 Ответ

1 голос
/ 27 апреля 2020

Поскольку эта модель является аддитивной в функциях, вы можете интерпретировать функции (отдельные члены s()) отдельно, но не обязательно как отдельные эффекты ковариат на ответ. В вашем случае нет перекрытия между ковариатами в каждом из двумерных сглаживаний, поэтому вы также можете интерпретировать их как влияние ковариат на отклик отдельно от других сглаживателей.

Все гладкие функции как правило, при условии ограничения суммы до нуля, чтобы постоянный член модели (перехват) был идентифицируемым параметром. Таким образом, линия 0 на каждом графике является значением константы модели (в масштабе функции связи или линейного предиктора).

Графики, показанные в выходных данных plot.gam(model), представляют собой графики частичных эффектов или частичные участки. Вы можете по существу игнорировать другие термины, если вы заинтересованы в понимании влияния этого термина на ответ как функцию ковариат для термина.

Если в модели есть другие термины, которые могут включать один или Чем больше ковариат в других терминах, и вы хотите посмотреть, как меняется ответ при изменении этого термина или коавриации, то вам следует предсказать из модели в диапазоне интересующих вас переменных, удерживая другие переменные в некоторых значениях представления, скажем, их средние значения или медианы.

Например, если у вас было

model <- gam(y ~ s(x, z) + s(x, v), data = foo, method = 'REML')

, и вы хотите знать, как изменяется ответ как функция x только вы можете зафиксировать z и v в репрезентативных значениях, а затем прогнозировать диапазон значений для x:

newdf <- with(foo, expand.grid(x = seq(min(x), max(x), length = 100),
                               z = median(z)
                               v = median(v)))
newdf <- cbind(newdf, fit = predict(model, newdata = newdf, type = 'response'))
plot(fit ~ x, data = newdf, type = 'l')

Также см. ?vis.gam в mgcv * Упаковка 1027 * как средство для подготовки подобных участков, но там, где она выполняет тяжелую работу.

...