Regression
對數變換後報告回歸統計
我對如何在對因變量進行對數轉換後報告線性回歸統計數據感到有些困擾。
我想我應該報告轉換後的係數,但它們會很容易解釋嗎?
在回歸圖中,我應該使用轉換後的值還是原始值?而秒數會比繪製轉換後產生的回歸線更清晰。
有什麼方向嗎?
在結果的對數線性模型中具有連續未轉換的解釋變量和一個虛擬解釋變量:
- 是百分比變化對於一個小小的改變(上或下)
- 如果 d 從 0 變為 1,則百分比變化是.
- 如果 d 從 1 變為 0,則百分比變化是
就個人而言,我發現這種半彈性解釋比虛擬變量的幾何基線平均值(指數截距)的乘法效應更容易理解,. 如果是一個比率,也許這會更有意義。
對於圖表,您可以繪製兩條重新轉換的線 反對 x,一個與和一個:
這個表達式的第二部分是困難的部分。如果我們假設正態性和獨立性,我們可以將第二項近似為我們將記錄回歸中的 RMSE 用於未觀察到的. 或者我們可以使用一個較弱的假設在,並使用來自對數模型的取冪殘差的樣本平均值作為第二項。這就是段“抹黑”的做法。取兩個平均值可能是有意義的:一個用於觀察和一個如果您有理由相信兩組之間存在異方差。
最後,所有這些重新轉換的廢話也可以通過使用 GLM 模型來避免。
下面是一個使用 Stata 的例子:
. sysuse auto, clear (1978 Automobile Data) . gen lnp=ln(price) . reg lnp i.foreign mpg Source | SS df MS Number of obs = 74 -------------+------------------------------ F( 2, 71) = 17.80 Model | 3.74819416 2 1.87409708 Prob > F = 0.0000 Residual | 7.47533892 71 .105286464 R-squared = 0.3340 -------------+------------------------------ Adj R-squared = 0.3152 Total | 11.2235331 73 .153747029 Root MSE = .32448 ------------------------------------------------------------------------------ lnp | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- foreign | Foreign | .2824445 .0897634 3.15 0.002 .1034612 .4614277 mpg | -.0421151 .0071399 -5.90 0.000 -.0563517 -.0278785 _cons | 9.4536 .1485422 63.64 0.000 9.157415 9.749785 ------------------------------------------------------------------------------
國外溢價為 32% 且顯著:
. nlcom 100*(exp(_b[1.foreign])-1) _nl_1: 100*(exp(_b[1.foreign])-1) ------------------------------------------------------------------------------ lnp | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- _nl_1 | 32.63681 11.90594 2.74 0.006 9.301603 55.97202 ------------------------------------------------------------------------------
以下是指數係數:
. reg, eform(b) Source | SS df MS Number of obs = 74 -------------+------------------------------ F( 2, 71) = 17.80 Model | 3.74819416 2 1.87409708 Prob > F = 0.0000 Residual | 7.47533892 71 .105286464 R-squared = 0.3340 -------------+------------------------------ Adj R-squared = 0.3152 Total | 11.2235331 73 .153747029 Root MSE = .32448 ------------------------------------------------------------------------------ lnp | b Std. Err. t P>|t| [95% Conf. Interval] -------------+---------------------------------------------------------------- foreign | Foreign | 1.326368 .1190594 3.15 0.002 1.109003 1.586337 mpg | .9587594 .0068455 -5.90 0.000 .9452067 .9725066 _cons | 12754 1894.507 63.64 0.000 9484.509 17150.53 ------------------------------------------------------------------------------
國外溢價幾乎相同。國內汽車的幾何平均價格對我來說似乎相當高,但那是因為我們以里程為條件(這些是 Caddies、Lincoln 和 Mercuries)。現在我們手動實現 Duan 的重新轉換方法:
. predict double uhat, residual . predict double lnyhat, xb . gen double expuhat = exp(uhat) . sum expuhat, meanonly . gen double yhat = r(mean)*exp(lnyhat)
您還可以使用 Chris Baum 的
levpredict
:. /* Make Sure I Did Things Right */ . levpredict yhat2, duan . compare yhat yhat2 ---------- difference ---------- count minimum average maximum ------------------------------------------------------------------------ yhat=yhat2 74 ---------- jointly defined 74 0 0 0 ---------- total 74
現在對於圖形代碼:
. tw /// > (line yhat mpg if foreign ==1, sort lcolor(green)) /// > (line yhat mpg if foreign ==0, sort lcolor(orange)) /// > (scatter price mpg if foreign==1, mcolor(green) msymbol(Oh) jitter(2)) /// > (scatter price mpg if foreign==0, mcolor(orange) msymbol(Oh) jitter(2)) /// > ,legend(label(1 "E[Price|Foreign]") label(2 "E[Price|Domestic]") label(3 "Foreign") label(4 "Domestic") rows(1)) /// > ytitle("Dollars") title("Duan Smearing In Action") /// > ylab(, angle(horizontal) format(%9.0fc)) plotregion(fcolor(white) lcolor(white)) graphregion(fcolor(white) lcolor(white)) /// >
看起來很合理: