STATA statistical code for estimation of Millimet et al. (2002) econometric worklife model

The STATA code for estimating the Millimet et a;. (2002) econometric worklife model can be found below. The code  will need to be adjusted to fit your purposes. However, the basic portions are here.

use 1992-2013, clear

drop if A_W==0
keep if A_A>=16 & A_A<86

*drop if A_MJO==0
*drop if A_MJO==14

A_MJO==15gen curr_wkstate = A_W>1
lab var curr_wkstate “1= active in current period”
gen prev_wkstate = prev_W>1
lab var prev_wkstate “1= active in previous period”
gen age = A_A
gen age2 = age*age
gen married = A_MA<4
gen white = A_R==1
gen male = A_SE==1

gen mang_occ = A_MJO<3 gen tech_occ = A_MJO>2 & A_MJO<7 gen serv_occ = A_MJO>6 & A_MJO<9 gen oper_occ = A_MJO>8

gen occlevel = 0
replace occlevel = 1 if mang_occ==1
replace occlevel = 2 if tech_occ==1
replace occlevel = 3 if serv_occ==1
replace occlevel = 4 if oper_occ ==1

gen lessHS = A_HGA<=38 gen HS = A_HGA==39 gen Coll = A_HGA>42
gen someColl = A_HGA>39 & A_HGA<43 gen white_age = white*age gen white_age2 = white*age2 gen married_age = married*age gen child_age = HH5T*age /* gen mang_occ_age = mang_occ*age gen tech_occ_age = tech_occ*age gen serv_occ_age = serv_occ*age gen oper_occ_age = oper_occ*age */ merge m:1 age using mortalityrates keep if _m==3 drop _m gen edlevel = 1*lessHS + 2*HS + 3*someColl + 4*Coll save anbasemodel, replace */ Active to Active and Active to Inactive probabilities local g = 0 local e = 1 forvalues g = 0/1 { forvalues e = 1/4 { use anbasemodel, clear xi: logit curr_wkstate age age2 white white_age white_age2 married married_age HH5T i.year_out if prev_wk==1 & male==`g’ & HS==1 *Gives you conditional probability *summing these figures gives the average predicted probabilities predict AAprob keep if occlevel==`e’ *collapse (mean) AAprob mortality, by(age) collapse (mean) AAprob mortality (rawsum) MARS [aweight=MARS], by(age) gen AIprob = 1-AAprob replace AAprob = AAprob*(1-mortality) replace AIprob = AIprob*(1-mortality) save Active_probs, replace *Calculates Inactive first period probabiliteis use anbasemodel, clear xi: logit curr_wkstate age age2 white white_age white_age2 married married_age HH5T i.year_out if prev_wk==0 & male==`g’ & HS==1 predict IAprob keep if occlevel==`e’ *collapse (mean) IAprob mortality , by(age) collapse (mean) IAprob mortality (rawsum) MARS [aweight=MARS], by(age) gen IIprob = 1-IAprob save Inactive_probs, replace *Calculates WLE for Active and Inactive merge 1:1 age using Active_probs drop _m order AAprob AIprob IAprob IIprob *Set the probablilties for end period T+1 *Note the top age changes to 80 in the later data sets gen WLE_Active = 0 replace WLE_Active = AAprob[_n-1]*(1+AAprob) + AIprob[_n-1]*(0.5 + IAprob) gen WLE_Inactive = 0 replace WLE_Inactive = IAprob[_n-1]*(0.5+AAprob) + IIprob[_n-1]*IAprob gen WLE_Active_2 = 0 replace WLE_Active_2 = WLE_Active if age==85 gen WLE_Inactive_2 = 0 replace WLE_Inactive_2 = WLE_Inactive if age==85 local x = 1 local y = 80 – `x’ forvalues x = 1/63 { replace WLE_Active_2 = AAprob*(1+WLE_Active_2[_n+1]) + AIprob*(0.5 + WLE_Inactive_2[_n+1]) if age==`y’ replace WLE_Inactive_2 = IAprob*(0.5 + WLE_Active_2[_n+1]) + IIprob*WLE_Inactive_2[_n+1] if age==`y’ local x = `x’ + 1 local y = 80 – `x’ } keep age WLE_Active_2 WLE_Inactive_2 rename WLE_Active_2 WLE_Active_`g’_`e’ rename WLE_Inactive_2 WLE_Inactive_`g’_`e’ save WLE_`g’_`e’, replace keep age WLE_Active_`g’_`e’ save WLE_Active_`g’_`e’, replace use WLE_`g’_`e’, clear keep age WLE_Inactive_`g’_`e’ save WLE_Inactive_`g’_`e’, replace di `e’ /**End of Active to Active and Active to Inactive probabilities*/ local e = `e’ + 1 } local g = `g’ + 1 } local g = 0 local e = 1 forvalues g = 0/1 { forvalues e = 1/4{ if `e’ == 1 { use WLE_Active_`g’_`e’, clear save WLE_Active_`g’_AllOccLevels, replace use WLE_Inactive_`g’_`e’, clear save WLE_Inactive_`g’_AllOccLevels, replace } if `e’ > 1 {

use WLE_Active_`g’_AllOccLevels, replace
merge 1:1 age using WLE_Active_`g’_`e’
drop _m
save WLE_Active_`g’_AllOccLevels, replace

use WLE_Inactive_`g’_AllOccLevels, replace
merge 1:1 age using WLE_Inactive_`g’_`e’
drop _m
save WLE_Inactive_`g’_AllOccLevels, replace

}

local e = `e’ + 1
}

if `g’ ==1 {
use WLE_Active_0_AllOccLevels, clear
merge 1:1 age using WLE_Active_1_AllOccLevels
drop _m
save WLE_Active_BothGenders_AllOccLevels, replace
use WLE_Inactive_0_AllOccLevels, clear
merge 1:1 age using WLE_Inactive_1_AllOccLevels
drop _m
save WLE_Inactive_BothGenders_AllOccLevels, replace
}

local g = `g’ + 1

}

!del anbasemodel.dta

Related Posts

Posted by Matt Rigling | U.S. Economy

A narrative description of the Millimet et. al (2002) econometric worklife model

The following describes the approach used by Millimet et al (2002) to estimate U.S. worker worklife expectancy. The pdf version can be found here: Millimet (2002) Methodology Description  Methodology First, transition […]

Posted by Matt Rigling | U.S. Economy

Big BLS employment data, disability, and worklife expectancy

Big Data. Bureau of Labor Statistics. Survey data. Employment Big Data.  Those are all things that calculating worklife expectancy for U.S. workers requires.  Worklife expectancy is similar to life expectancy and […]

Posted by Matt Rigling | BLS Data | Earnings | Industry | U.S. Economy | Wage and hour cases

FLSA OT report for individuals working in Derrick, rotary drill, and services unit operators, oil, gas, and mining occupations

In this post, we look at the weekly overtime (OT) hours typically worked by those who work in Derrick, rotary drill, and services unit operators, oil, gas, and mining occupations. Many […]

Posted by Matt Rigling | U.S. Economy

Younger workers today have slightly less attachment to the workforce than younger workers in the past

Big Data. Bureau of Labor Statistics. Survey data. Employment Big Data.  Those are all things that calculating worklife expectancy for U.S. workers requires.  Worklife expectancy is similar to life expectancy and […]

Posted by Matt Rigling | BLS Data | Job openings | U.S. Economy

Elementary and Middle School Teachers experienced the largest increase of job openings nationwide for Dec

Elementary and Middle School teachers experienced the largest increase of new openings of all occupations in the US for the month of December with 4,017 new job openings. Month Occupation […]

Posted by Matt Rigling | U.S. Economy

Replication of the Millimet et al. (2002) work was sufficient and yielded similar results

Big Data. Bureau of Labor Statistics. Survey data. Employment Big Data.  Those are all things that calculating worklife expectancy for U.S. workers requires.  Worklife expectancy is similar to life expectancy and […]

Posted by Matt Rigling | BLS Data | Job openings | U.S. Economy

Tallahassee, FL experienced largest increase in job openings of all US MSAs for Dec

The Tallahassee, FL MSA (metropolitan statistical area) experienced the largest increase of job openings of all MSAs in the United States for the month of December with 155 new openings. Month MSA Total […]

Posted by Matt Rigling | BLS Data | Earnings | Industry | U.S. Economy | Wage and hour cases

FLSA OT report for individuals working in roofing occupations

In this post, we look at the weekly overtime (OT) hours typically worked by those who work in roofing occupations. Many of the employees that work in these jobs are not exempt […]

Posted by Matt Rigling | U.S. Economy

Steward and Gaylor (2015) Matched CPS Sample Sizes for 1993-2013 time period

Big Data. Bureau of Labor Statistics. Survey data. Employment Big Data.  Those are all things that calculating worklife expectancy for U.S. workers requires.  Worklife expectancy is similar to life expectancy and […]

Posted by Matt Rigling | BLS Data | Earnings | Industry | U.S. Economy | Wage and hour cases

FLSA OT report for individuals working in automotive body and related repair occupations

In this post, we look at the weekly overtime (OT) hours typically worked by those who work in automotive body and related repair occupations. Many of the employees that work in […]