quietly: infile ptid female age dose put0 put6 put12 put15 /// spd0 spd6 spd12 spd15 spm0 spm6 spm12 spm15 using /// "http://www.emersonstatistics.com/datasets/dfmowide.txt" drop in 1 replace dose= 1000 * dose g rat0 = spd0 / spm0 g rat6 = spd6 / spm6 g rat12 = spd12 / spm12 g rat15 = spd15 / spm15 tabstat female age put0 spd0 spm0 rat0, by(dose) stat(n mean sd min q max) col(stat) long tabstat put0 put6 put12 put15 spd0 spd6 spd12 spd15 spm0 spm6 spm12 spm15 /// rat0 rat6 rat12 rat15, /// by(dose) stat(n mean sd min q max) col(stat) long summ put0 if put0 > 0 summ put6 if put6 > 0 summ put12 if put12 > 0 summ put15 if put15 > 0 g lput0 = log(put0) replace lput0 = log(.002/2) if put0==0 g lput6 = log(put6) replace lput6 = log(.002/2) if put6==0 g lput12 = log(put12) replace lput12 = log(.002/2) if put12==0 g lput15 = log(put15) replace lput15 = log(.002/2) if put15==0 summ spd0 if spd0 > 0 summ spd6 if spd6 > 0 summ spd12 if spd12 > 0 summ spd15 if spd15 > 0 g lspd0 = log(spd0) replace lspd0 = log(.293/2) if spd0==0 g lspd6 = log(spd6) replace lspd6 = log(.293/2) if spd6==0 g lspd12 = log(spd12) replace lspd12 = log(.293/2) if spd12==0 g lspd15 = log(spd15) replace lspd15 = log(.293/2) if spd15==0 summ spm0 if spm0 > 0 summ spm6 if spm6 > 0 summ spm12 if spm12 > 0 summ spm15 if spm15 > 0 g lspm0 = log(spm0) replace lspm0 = log(1.45/2) if spm0==0 g lspm6 = log(spm6) replace lspm6 = log(1.45/2) if spm6==0 g lspm12 = log(spm12) replace lspm12 = log(1.45/2) if spm12==0 g lspm15 = log(spm15) replace lspm15 = log(1.45/2) if spm15==0 g lrat0= lspd0 - lspm0 g lrat6= lspd6 - lspm6 g lrat12= lspd12 - lspm12 g lrat15= lspd15 - lspm15 replace lrat0=. if spd0==0 & spm0==0 replace lrat6=. if spd6==0 & spm6==0 replace lrat12=. if spd12==0 & spm12==0 replace lrat15=. if spd15==0 & spm15==0 tabstat lput0 lput6 lput12 lput15 lspd0 lspd6 lspd12 lspd15 lspm0 lspm6 lspm12 lspm15 /// lrat0 lrat6 lrat12 lrat15, /// by(dose) stat(n mean sd min q max) col(stat) long *********** ** Problem 2 *********** g dose1000= dose/1000 g dose100= dose/10 recode dose 1/max=1, gen(anyDFMO) g dosesqr= dose100^2 g dosecub= dose100^3 *** Problem 2a regress lspd12 i.dose, robust eform("GM (ratio)") predict fit2a di exp(1.101382), exp(.9464642), exp(1.256299) regress spd12 i.dose, robust predict fit2am *** Problem 2b regress lspd12 ib75.dose, robust eform("GM (ratio)") predict fit2b tabstat fit2a fit2b, by(dose) stat(mean) *** Problem 2c regress lspd12 dose100, robust eform("GM (ratio)") predict fit2c regress lspd12 dose1000, robust eform("GM (ratio)") regress spd12 dose100, robust *** Problem 2d regress lspd12 dose100 dosesqr, robust eform("GM (ratio)") predict fit2d regress spd12 dose100 dosesqr, robust *** Problem 2e regress lspd12 anyDFMO, robust eform("GM (ratio)") predict fit2e regress spd12 anyDFMO, robust *** Problem 2f regress lspd12 anyDFMO dose100, robust eform("GM (ratio)") predict fit2f regress lspd12 anyDFMO dose1000, robust eform("GM (ratio)") regress spd12 anyDFMO dose100, robust *** Problem 2g regress lspd12 dose100 dosesqr dosecub, robust eform("GM (ratio)") predict fit2g test dosesqr dosecub regress spd12 dose100 dosesqr dosecub, robust test dosesqr dosecub *** Problem 2h tabstat fit2a fit2b fit2c fit2d fit2e fit2f fit2g, stat(mean) by(dose) *********** ** Problem 3 *********** *** Problem 3a regress lspd12 i.dose lspd0, robust eform("GM (ratio)") testparm i.dose regress spd12 spd0 i.dose, robust testparm i.dose *** Problem 3c regress lspd12 dose100 lspd0, robust eform("GM (ratio)") regress lspd12 dose1000 lspd0, robust eform("GM (ratio)") regress spd12 dose100 lspd0, robust *** Problem 3d regress lspd12 dose100 dosesqr lspd0, robust eform("GM (ratio)") testparm dose* regress spd12 dose100 dosesqr spd0, robust testparm dose* *** Problem 3e regress lspd12 anyDFMO lspd0, robust eform("GM (ratio)") regress spd12 anyDFMO spd0, robust *** Problem 3f regress lspd12 anyDFMO dose100 lspd0, robust eform("GM (ratio)") regress lspd12 anyDFMO dose1000 lspd0, robust eform("GM (ratio)") test anyDFMO dose1000 regress spd12 anyDFMO dose100 spd0, robust test anyDFMO dose100 *** Problem 3g regress lspd12 dose100 dosesqr dosecub lspd0, robust eform("GM (ratio)") testparm dose* test dosesqr dosecub regress spd12 dose100 dosesqr dosecub spd0, robust testparm dose* test dosesqr dosecub *********** ** Problem 4 *********** g decrspd= 0 replace decrspd=1 if spd12 < spd0 replace decrspd=. if spd12==. | spd0==. *** Problem 4a logistic decrspd i.dose predict fit4a *** Problem 4b logistic decrspd dose100 predict fit4b *** Problem 4c logistic decrspd dose100 dosesqr predict fit4c *** Problem 4d logistic decrspd anyDFMO predict fit4d *** Problem 4e logistic decrspd anyDFMO dose100 predict fit4e *** Problem 4f logistic decrspd dose100 dosesqr dosecub predict fit4f test dosesqr dosecub regress spd12 dose100 dosesqr dosecub, robust test dosesqr dosecub *** Problem 4gh tabstat fit4a fit4b fit4c fit4d fit4e fit4f, stat(mean) by(dose)