drop _all set seed 123456789 set obs 400 gen edu = invnorm(uniform()) gen exp = int(30*uniform()) label var exp "work experience" gen inc = edu + log(0.1+10*exp) + 1*invnorm(uniform()) orthpoly exp, degree(3) gen(exp1 exp2 exp3) regress inc edu exp exp2 graphf exp regress inc edu exp exp2 exp3 graphf exp, cb(value) mkspline Exp 4 = exp regress inc edu Exp* graphf exp, cb(envelop) drop Exp* gen Exp0 = (exp-15)^2 forv i = 1/3 { gen Exp`i' = max(0,exp-7.5*`i')^2 } regress inc edu Exp* graphf exp, cb(bs)