OK. Good luck moving forward. If at some time you want to return to this issue, just post back continuing the thread.
-
Login or Register
- Log in with
by country_lvl, sort: egen Y_mean = mean(Y) gen Y_demeaned = Y - Y_mean mkspline X_spline = X, cubic regress Y_demeaned c.(X_spline*) the_usual_covariates predict Yhat, xb
summ Yhat local nadir = r(min) local ysd = r(sd) summ X if inrange(Yhat, `nadir'-`ysd', `nadir'+`ysd'), detail local x_left = r(min) local x_right = r(max) local x_middle = r(p50)
regress Y_demeaned X the_usual_covariates if X < `x_middle' matrix M = r(table) local t_left = M["t", "X"] regress Y_demeaned X the_usual_covariates if X > `x_middle' local t_right = M["t", "X"]
local percentile = round(100*`t_right'/(`t_left'+`t_right')) centile X if inrange(Yhat, `nadir'-`ysd', `nadir'+`ysd'), centile(`percentile') local x_middle = r(c_1)
regress Y_demeaned X the_usual_covariates if X < `x_middle' regress Y_demeaned X the_usual_covariates if X > `x_middle'
clear* set obs 100 set seed 12345 gen x = _n gen y1 = log(x) + rnormal(0, 0.25) regress y1 c.x##c.x local vertex = -_b[x]/(2*_b[c.x#c.x]) label define side 0 "Left" 1 "Right" gen int side:side = 0.5*(sign(x-`vertex')+1) if x != `vertex' predict resid, resid ranksum resid, by(side) ksmirnov resid, by(side) separate resid, by(side) qqplot resid0 resid1, name(log) gen y2 = 0.001*(x-80)^2 + rnormal(0, 1) regress y2 c.x##c.x local vertex = -_b[x]/(2*_b[c.x#c.x]) replace side = 0.5*(sign(x-`vertex')+1) if x != `vertex' drop resid* predict resid, resid ranksum resid, by(side) ksmirnov resid, by(side) separate resid, by(side) qqplot resid0 resid1, name(quadratic)
clear* set obs 100 set seed 12345 gen x = _n gen y1 = log(x) + rnormal(0, 0.25) regress y1 c.x##c.x local vertex = -_b[x]/(2*_b[c.x#c.x]) label define side 0 "Left" 1 "Right" gen int side:side = 0.5*(sign(x-`vertex')+1) if x != `vertex' predict resid, resid ranksum resid, by(side) ksmirnov resid, by(side) separate resid, by(side) qqplot resid0 resid1, name(log) gen y2 = 0.001*(x-80)^2 + rnormal(0, 1) regress y2 c.x##c.x local vertex = -_b[x]/(2*_b[c.x#c.x]) replace side = 0.5*(sign(x-`vertex')+1) if x != `vertex' drop resid* predict resid, resid ranksum resid, by(side) ksmirnov resid, by(side) separate resid, by(side) qqplot resid0 resid1, name(quadratic)
Comment