R
為什麼當我對結果變量進行日誌轉換時,我的空模型的截距不等於平均值?我如何解釋它?
我有一個右偏的結果變量,所以我對它進行了日誌轉換。我製作了一個只有對數轉換結果變量的空模型,但是當我對估計值求冪時,它不等於平均值。
考慮到我的數據有問題,我製作了一個樣本數據集,發現了同樣的差異。為什麼是這樣?在這個模型中截距代表什麼?
這是示例數據和 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))
第二個版本也應該在您的僅攔截示例中工作。