Обратное преобразование ГЛМ гамма-излучения в натуральные единицы, чтобы иметь возможность прогнозировать значения в несоответствующих местах - PullRequest
0 голосов
/ 06 марта 2019

Я работаю с экологическими данными, где я использовал камеры для выборки обнаружений животных (в пересчете на биомассу) и запускаю различные модели для определения наилучшей подходящей модели, выбранной путем просмотра диагностических графиков, AIC и величины эффекта параметра. Модель представляет собой гамма GLM (из-за непрерывной реакции биомассы) с лог-ссылкой. Выбранная модель имеет предикторные переменные расстояния до воды («dist_water») и расстояния до участка леса («dist_F3»). Это резюме модели:

    glm(formula = RAI_biomass ~ Dist_water.std + Dist_F3.std, family = Gamma(link = "log"), 
    data = biomass_RAI)
Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.3835  -1.0611  -0.3937   0.4355   1.5923  

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept)      5.3577     0.2049  26.143 2.33e-16 ***
Dist_water.std  -0.7531     0.2168  -3.474  0.00254 ** 
Dist_F3.std      0.5831     0.2168   2.689  0.01452 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Gamma family taken to be 0.9239696)

    Null deviance: 41.231  on 21  degrees of freedom
Residual deviance: 24.232  on 19  degrees of freedom
AIC: 287.98

Number of Fisher Scoring iterations: 7

Ковариаты были стандартизированы до запуска модели. Теперь мне нужно сделать обратное преобразование этой модели в натуральные единицы, чтобы предсказать значения биомассы в несопоставленных местах (в данном случае на фермах). Я составил таблицу для каждой фермы с указанием расстояния до воды и участка леса. Я думал, что способ сделать это будет использовать exp(coef(biomass_glm)), но когда я это сделал, коэффициент dist_water.std изменил направление и стал положительным.

exp(coef(biomass_glm8))
## Intercept       Dist_water.std     Dist_F3.std 
## 212.2369519      0.4709015         1.7915026

Мне это кажется проблематичным, так как в оригинальном GLM увеличение расстояния до воды означало уменьшение биомассы (это имеет смысл) - но теперь мы видим обратное? Рассчитанный отклик биомассы имел очень узкий диапазон - 210,97-218,9331 (для сравнения, в исходных данных биомасса составляла 3,04-2227,99.

Затем я попытался взять показатель степени всей модели, не принимая показатель каждого коэффициента в отдельности:

farms$biomass_est2 <- exp(5.3577 + (-0.7531*farms$Farm_dist_water_std) + (0.5831*farms$Farm_dist_F3_std))

, и это дало мне новый отклик биомассы, который имеет немного больше смысла, то есть больше вариаций, учитывая вариации в двух ковариатах (2.93-1088.84).

Затем я попытался преобразовать оценки коэффициентов, выполнив e ^ B - 1, что снова дало другие результаты, хотя большинство было похоже на результаты, полученные с помощью exp(coef(biomass_glm)):

(e^(-0.7531))-1  #dist_water = -0.5290955
(e^(0.5831))-1   #dist_F3 = 0.7915837
(e^(5.3577))-1   #intercept = 211.2362

У меня вопрос: почему эти оценки отличаются, и каков наилучший способ взять эту гамма-версию GLM со ссылкой журнала и преобразовать ее в формат, который можно использовать для вычисления прогнозных значений? Любая помощь будет принята с благодарностью!

...