Я давний пользователь STATA, наконец пытаюсь освоить R, чтобы я мог улучшить свою графику. В следующем коде я подгоняю GAM к выходной переменной y1, используя 5 переменных воздействия x1 - x5, а затем строю графики прогнозов для x1.
Что я хочу сделать, так это иметь два цикла, один встроенный в другой так что первый l oop итерирует по 5 результатам, подгоняя GAM для каждого, а затем, во встроенной второй l oop, он итерирует по 5 экспозициям, составляя прогнозы для каждого. Результат будет двадцать пять участков 5 переменных от каждого из пяти GAM. В реальной базе данных переменные не нумеруются, поэтому для имен переменных в виде строк необходимо l oop.
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)
Если это поможет, вот как это будет go в 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’…
}
}
Надеюсь, вы можете помочь.
Спасибо.
Джо sh