10 Sep 2020
// page 82
clear
set seed 399323
qui set obs 20
gen x=_n
local a=0.2
local b=0.3
local sigma=0.5
gen y=`a' + `b'*x + `sigma'*rnormal()
qui regress y x
esttab,b(2) se wide mtitle("Coef.") scalars("rmse sigma") ///
coef(_cons "Intercept" rmse "sigma") nonum noobs nostar var(15)
// we are going to use this output format a lot, let's store it
local gelman_output esttab,b(1) se wide mtitle("Coef.") scalars("rmse sigma") ///
coef(_cons "Intercept" rmse "sigma") nonum noobs nostar var(15)
───────────────────────────────────────── Coef. ───────────────────────────────────────── x 0.3 (0.0) Intercept 0.4 (0.2) ───────────────────────────────────────── sigma 0.5 ───────────────────────────────────────── Standard errors in parentheses
predict yhat
twoway (scatter y x, ) ///
(line yhat x), xtitle("fake x") ytitle("fake y") ///
legend(off) text(3 10 "y=0.49 + 0.27*x", place(e))
// page 84
import delimited https://raw.githubusercontent.com/avehtari/ROS-Examples/master/Earnings/data/earnings.csv, clear
qui regress earnk height male
`gelman_output'
(15 vars, 1,816 obs) ───────────────────────────────────────── Coef. ───────────────────────────────────────── height 0.6 (0.2) male 10.6 (1.5) Intercept -25.9 (12.0) ───────────────────────────────────────── sigma 21.4 ───────────────────────────────────────── Standard errors in parentheses
. * Compare residual standard deviation to standard deviation of the data . * residual variance is stored as the root mean squared error e(rmse) . sum earnk // obtain standard deviation of the y variable Variable │ Obs Mean Std. Dev. Min Max ─────────────┼───────────────────────────────────────────────────────── earnk │ 1,816 21.1473 22.53177 0 400 . di round((e(rmse))^2/r(sd)^2,.01) // calculate proportion not explained .9 . di round(1-(e(rmse))^2/r(sd)^2,.01) // calulate proportion explained .1
// page 86-87
import delimited https://raw.githubusercontent.com/avehtari/ROS-Examples/master/PearsonLee/data/Heights.txt,clear delim(" ")
li in 1/5
qui regress daughter mother
`gelman_output'
┌─────────────────────┐ │ daught~t mother~t │ ├─────────────────────┤ 1. │ 52.5 59.5 │ 2. │ 52.5 59.5 │ 3. │ 53.5 59.5 │ 4. │ 53.5 59.5 │ 5. │ 55.5 59.5 │ └─────────────────────┘ ───────────────────────────────────────── Coef. ───────────────────────────────────────── mother_height 0.5 (0.0) Intercept 29.8 (0.8) ───────────────────────────────────────── sigma 2.3 ───────────────────────────────────────── Standard errors in parentheses
twoway (scatter daughter mother,jitter(10) msize(tiny)) ///
(function _b[mother]*x+_b[_cons],range(54 71)) ///
, xtitle("Mother's height (inches)") legend(off) ///
ytitle("Adult daughter's height (inches)")
clear
qui set obs 1000
set seed 3293
gen true_ability=rnormal(50,10)
gen noise_1=rnormal(0,10)
gen noise_2=rnormal(0,10)
gen midterm=true_ability + noise_1
gen final=true_ability + noise_2
qui regress final midterm
`gelman_output'
───────────────────────────────────────── Coef. ───────────────────────────────────────── midterm 0.5 (0.0) Intercept 25.7 (1.5) ───────────────────────────────────────── sigma 12.3 ───────────────────────────────────────── Standard errors in parentheses
. twoway (scatter final midterm,msize(tiny)) /// > (function _b[midterm]*x+_b[_cons],range(0 100)) /// > , xtitle("Midterm exam score") xlabel(,grid glstyle(minor_grid) ) /// > ytitle("Final exam score") ylabel(,grid glstyle(minor_grid) ) /// > ysize(5) xsize(5) legend(off) scheme(s1mono) . quietly graph export img/gr6_5.svg, replace