У меня есть сценарий, который с учетом переменной ответа и предикторов генерирует все возможные комбинации моделей. Я сохранил все комбинации для своих данных в списке (длина 155). Я написал цикл, который на каждой итерации использует следующую формулу в списке:
prico.models.exp <- foreach(z = 1:length(model.formulae), .packages=c("nlme")) %dopar% {
gls(as.formula(model.formulae[z]),data=prico,subset=Freq>50,correlation=corExp(form=~x+y, nugget=T),na.action=na.omit,method="ML",control=xx)
}
Когда я просматриваю сводки моделей для каждого вывода, модель указана как as.formula(model.formulae[z])
, а не фактическая формула (в моем примере модель 1 будет richness ~ lai
). Правильный ответ и предикторы были использованы, поскольку коэффициенты модели верны. Например:
Generalized least squares fit by maximum likelihood
Model: as.formula(model.formulae[z])
Data: prico
Subset: Freq > 50
Log-likelihood: 66.02798
Coefficients:
(Intercept) lai
3.149229862 0.007314029
Correlation Structure: Exponential spatial correlation
Formula: ~x + y
Parameter estimate(s):
range nugget
3.634669e+04 2.123560e-11
Degrees of freedom: 88 total; 86 residual
Residual standard error: 0.2020574
Важно, чтобы модель была перенесена из списка в сводку модели, поскольку для работы других функций (например, model.avg в MuMIn) требуется формула в сводке модели. Можно ли использовать цикл и сохранить формулу в сводке модели?