Created
August 19, 2025 13:43
-
-
Save mynameisvinn/bf69d3508416d8424f300e1119525262 to your computer and use it in GitHub Desktop.
Housing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Optimal Bedroom Calculator in Stata | |
* Calculate the minimum number of bedrooms needed based on household composition | |
* | |
* Rules: | |
* - Children under 5 can be paired two per room | |
* - Children 6-9 of different sex cannot share a bedroom | |
* - Children 6-9 of same sex can share a bedroom | |
* - Anyone over 10, incapacitated, or full-time student gets their own bedroom | |
* Clear existing data and set up | |
clear all | |
* Create example dataset | |
input q1d_1 q1d_2M q1d_2F q1d_2U q1d_3M q1d_3F q1d_3U q1d_4 q1d_5I q1d_5S | |
1 0 1 0 1 0 0 0 0 0 | |
2 1 0 0 2 1 0 0 0 1 | |
0 2 1 0 0 1 0 1 0 0 | |
3 0 0 1 1 2 0 0 0 0 | |
1 1 1 0 0 1 0 1 1 0 | |
0 0 0 0 2 1 1 0 0 2 | |
2 1 0 0 1 2 0 0 0 0 | |
1 0 2 0 0 1 0 1 0 1 | |
0 1 0 1 1 1 0 0 1 0 | |
2 0 1 0 2 0 0 1 0 0 | |
end | |
* Label variables for clarity | |
label var q1d_1 "Children 5 and under" | |
label var q1d_2M "Children 6-9 male" | |
label var q1d_2F "Children 6-9 female" | |
label var q1d_2U "Children 6-9 sex unspecified" | |
label var q1d_3M "Children 10-17 male" | |
label var q1d_3F "Children 10-17 female" | |
label var q1d_3U "Children 10-17 sex unspecified" | |
label var q1d_4 "Children 18-20" | |
label var q1d_5I "Incapacitated children 21-23" | |
label var q1d_5S "Full time student children 21-23" | |
* Calculate optimal bedrooms using generate commands | |
* 1. Children under 5: 2 per room (round up using ceil function) | |
gen bedrooms_under_5 = ceil(q1d_1 / 2) | |
* 2. Children 6-9: Same sex can share, different sex cannot | |
gen bedrooms_6_9_male = ceil(q1d_2M / 2) | |
gen bedrooms_6_9_female = ceil(q1d_2F / 2) | |
* For unspecified sex children 6-9, be conservative - each needs own room | |
gen bedrooms_6_9_unspecified = q1d_2U | |
* Total bedrooms for 6-9 age group | |
gen bedrooms_6_9_total = bedrooms_6_9_male + bedrooms_6_9_female + bedrooms_6_9_unspecified | |
* 3. Everyone else gets their own bedroom | |
gen individual_bedrooms = q1d_3M + q1d_3F + q1d_3U + q1d_4 + q1d_5I + q1d_5S | |
* Total optimal bedrooms | |
gen optimal_bedrooms = bedrooms_under_5 + bedrooms_6_9_total + individual_bedrooms | |
* Label the calculated variables | |
label var bedrooms_under_5 "Bedrooms for children under 5" | |
label var bedrooms_6_9_total "Bedrooms for children 6-9" | |
label var individual_bedrooms "Individual bedrooms (10+, incap, students)" | |
label var optimal_bedrooms "Total optimal bedrooms" | |
* Display results with detailed breakdown | |
list q1d_1 q1d_2M q1d_2F q1d_2U bedrooms_under_5 bedrooms_6_9_total individual_bedrooms optimal_bedrooms, /// | |
title("Household Bedroom Requirements") /// | |
separator(0) /// | |
clean | |
* Summary statistics | |
di "" | |
di "Summary Statistics:" | |
di "==================" | |
summarize optimal_bedrooms, detail | |
* More detailed breakdown for analysis | |
di "" | |
di "Detailed Breakdown by Household:" | |
di "===============================" | |
forvalues i = 1/`=_N' { | |
di "" | |
di "Household `i':" | |
di " Children under 5: " q1d_1[`i'] " → " bedrooms_under_5[`i'] " bedrooms" | |
di " Children 6-9: M:" q1d_2M[`i'] ", F:" q1d_2F[`i'] ", U:" q1d_2U[`i'] " → " bedrooms_6_9_total[`i'] " bedrooms" | |
di " Individual rooms needed: " individual_bedrooms[`i'] " bedrooms" | |
di " TOTAL BEDROOMS: " optimal_bedrooms[`i'] | |
} | |
* Save results if needed | |
* save "bedroom_calculations.dta", replace |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment