R

為什麼當我對結果變量進行日誌轉換時,我的空模型的截距不等於平均值?我如何解釋它?

  • March 3, 2021

我有一個右偏的結果變量,所以我對它進行了日誌轉換。我製作了一個只有對數轉換結果變量的空模型,但是當我對估計值求冪時,它不等於平均值。

考慮到我的數據有問題,我製作了一個樣本數據集,發現了同樣的差異。為什麼是這樣?在這個模型中截距代表什麼?

這是示例數據和 R 代碼:

library(tidyverse)
test <- tibble(salary = c(10000, 23244, 2222222, 2353, 2353463, 5464564),
              perf = c(4, 2, 4, 2, 5, 7))

這是我的空模型:

summary(lm(log(salary) ~ 1 , data = test))

截距等於 11.971,當我使用 exp(11.971) 時,我得到 158102.7:

exp(11.971)

但平均值為 1679308:

mean(test$salary)

而且,作為健全性檢查,當我不記錄轉換結果時,截距確實會產生平均值:

summary(lm(salary ~ 1 , data = test))

我很感激 1)如何解釋截距,2)為什麼它不等於平均值,以及 3)我如何從這個模型中獲得非對數預測。

這是Jensen 不等式的結果。你要 $ E[y|x] $ ,但對數模型中的預測值求冪不會提供無偏估計 $ E[y|x] $ , 作為$$ E[y_i|x_i] = \exp(x'\beta) \cdot E[\exp(u_i)] $$並且在您的計算中省略了第二項。

如果誤差項 $ u \sim N[0,\sigma^2] $ , 然後 $ E[\exp(u)] = \exp(\frac{1}{2}\sigma^2) $ . 該數量可以通過替換來估計 $ \sigma^2 $ 以其一致的估計 $ s^2 $ 從回歸模型。

或者,Duan (1983) 表明,對於 $ iid $ 錯誤(不必是正常的),$$ E[\exp(u)] = \frac{1}{N} \sum_i \exp(e_i), $$在哪裡 $ e_i $ 是殘差。

我在下面實現了段的塗抹變換。本質上,您需要將取冪平均值乘以取冪殘差的平均值:

library(tidyverse)
test <- tibble(salary = c(10000, 23244, 2222222, 2353, 2353463, 5464564),
            perf = c(4, 2, 4, 2, 5, 7))
m<-lm(log(salary) ~ 1 , data = test)
mean(exp(m$fitted.values))*mean(exp(m$residuals))
mean(test$salary)

即使您在模型中有協變量,這也將起作用,儘管您必須稍微調整計算,因為預測現在會因觀察結果而異:

mean(exp(m$fitted.values)*exp(m$residuals))

第二個版本也應該在您的僅攔截示例中工作。

引用自:https://stats.stackexchange.com/questions/512008

comments powered by Disqus