Я давний пользователь STATA, наконец, пытаюсь освоить R, чтобы улучшить свою графику. В следующем коде я подгоняю GAM к переменной результата y1, используя 5 переменных воздействия x1–x5, а затем строю прогнозы для x1.
Что я хочу сделать, так это иметь два цикла, один из которых встроен в другой, так что первый цикл повторяется по 5 результатам, подбирая GAM для каждого, а затем во встроенном втором цикле он повторяет 5 экспозиций, строя прогнозы. для каждого. В результате получится двадцать пять графиков по 5 переменных для каждого из пяти GAM. В реальной базе данных переменные не пронумерованы, поэтому она должна перебирать имена переменных как строки.
y1.gam <- mgcv::gam(y1~s(x1,bs="cr",fx=TRUE)+
s(x2,bs="cr",fx=TRUE)+
s(x3,bs="cr",fx=TRUE)+
s(x4,bs="cr",fx=TRUE)+
s(x5,bs="cr",fx=TRUE)+
family = poisson(link = "log"),
data = data)
y1.x1.plot <- plotGAM(gamFit = y1.gam , smooth.cov = "x1", groupCovs = NULL,
plotCI=TRUE, orderedAsFactor = FALSE)
Если это поможет, вот как это будет выглядеть в STATA:
global outcome y1 y2 y3 y4 y5
global exposure x1 x2 x3 x4 x5
foreach v of varlist $outcome {
gam `v’ $exposure, …
foreach w of varlist $exposure{
plot `w’…
}
}
Надеюсь, вы можете помочь.
Спасибо.
Джош
dput(my_data)
), это облегчит людям помощь. Также был бы полезен рисунок, показывающий желаемый сюжет. - person Richard Telford   schedule 28.03.2020