如何在R中对线性混合模型对数转换后的BLUEs与BLUPs进行逆变换?
从对数转换的线性混合模型中提取BLUEs/BLUPs并还原原始尺度
1. 提取BLUEs(固定效应估计值)
BLUEs对应模型中固定效应的估计结果,你的模型固定效应包含Year和截距:
- 直接提取固定效应系数:
# 获取固定效应 fixed_effects <- fixef(lm1) # 查看对数尺度下的BLUEs fixed_effects - 若需计算每个
Year水平的调整后均值(BLUE),可使用emmeans包:library(emmeans) # 得到对数尺度下各年份的BLUE year_blue_log <- emmeans(lm1, ~ Year) # 指数转换回原始尺度 year_blue_original <- exp(year_blue_log) # 查看原始尺度的结果 year_blue_original
2. 提取BLUPs(随机效应预测值)
BLUPs是VARIETY_ENG的随机效应预测值,需结合固定截距得到完整的品种预测值:
# 获取品种的随机效应(对数尺度) variety_blup_log <- ranef(lm1)$VARIETY_ENG # 结合固定截距,得到对数尺度下的完整BLUP variety_blup_full_log <- fixef(lm1)[1] + variety_blup_log # 指数转换回原始尺度 variety_blup_original <- exp(variety_blup_full_log) # 查看原始尺度的品种BLUPs variety_blup_original
关键说明
- 因你使用自然对数
log()转换,还原时用exp()即可;若用常用对数log10(),则替换为10^()。 - 若需校正对数转换的均值偏差,可使用
exp(estimate + 0.5*SE^2),但常规分析中直接指数转换已足够。
内容的提问来源于stack exchange,提问作者Muhammad Ammar Bashir
相关产品推荐
相关产品推荐

