Перестановка осей для GAM с двумя предикторами в r

Прошу прощения за такой простой вопрос, но пока не нашел ответа на сайте. Я пытаюсь построить серию моделей GAM для данных об отлове беспозвоночных в R. Одним из предикторов всегда является сглаженный термин для номера дня года (DOY). Это всегда должно занимать пространство оси x. Ось Y должна быть либо линейным, либо сглаженным предсказателем переменной погоды. С помощью функции vis.gam() я могу создать график контура поверхности с цветовым градиентом, представляющим предсказанные значения отклика для любой пары x-y. Когда второй предиктор нелинейный, например:

totbest=gam(Totallog10pl1~s(DOY)+s(SRVarDetrendDerived),data=poolREplotGAM)

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

vis.gam(totbest, type="response",plot.type="contour",n.grid=50)

Но когда предиктор линейный:

totbest1=gam(Totallog10pl1~s(DOY)+SRVarDetrendDerived,data=poolREplotGAM)

оси переключаются:

vis.gam(totbest1, type="response",plot.type="contour",n.grid=50)

Если у вас есть способ вернуть переменную, связанную со временем, на ось x, это будет очень признательно. Заранее благодарю за любую помощь.

Майк


person user3277394    schedule 14.08.2015    source источник


Ответы (1)


По-видимому, это связано с порядком, в котором возвращается элемент var.summary игрового объекта. Попробуйте totbest$var.summary против totbest1$var.summary.

«Исправление» должно было бы сделать это:

totbest1$var.summary <- totbest1$var.summary[2:1]
vis.gam(totbest1, type="response",plot.type="contour",n.grid=50)

Предупреждение: я недостаточно читал об игровом объекте, чтобы понять, является ли обратный порядок var.summary замыслом.

надеюсь это поможет! Богатый.

person RichAtMango    schedule 14.08.2015
comment
Это сработало, большое спасибо! Я действительно ценю твою помощь. - person user3277394; 15.08.2015
comment
Я ненавижу приползать назад вот так, но я добавил в свою модель морщину, из-за которой, насколько я понимаю, невозможно переориентировать мои фигуры, как указано выше. Я настраивал его и не могу понять это. Я включил фактор/гладкое взаимодействие, например: totbest=gam(Totallog10pl1~s(SRVarDetrendDerived)+s(DOY,by=Plot),na.action=na.omit,data=poolFACTORplotGAM). Изменение порядка сглаживания в коде помещает SRVar и DOY на оси вместо DOY и Plot, но теперь всегда устанавливает DOY на оси Y. @RichAtMango или кто-нибудь еще, может у вас есть предложение? Еще раз спасибо за любую помощь! - person user3277394; 18.08.2015