*Note - many of the variables used in the analysis here are constructed in the Data cleaning.do file clear clear matrix mata: mata clear capture log close set more off **Making global directories** *Where Clean data will be stored global clean_data "~/Dropbox/WTP_Cooking_Dar_Nairobi/DATA/PLOS_submission_DAR/clean_data" global dofiles "~/Dropbox/WTP_Cooking_Dar_Nairobi/DATA/PLOS_submission_DAR/dofiles" global results "~/Dropbox/WTP_Cooking_Dar_Nairobi/DATA/PLOS_submission_DAR/results" *Set this path to where the Nairobi data file is stored. global kenya_data "~/Dropbox/WTP_Cooking_Dar_Nairobi/DATA/PLOS_submission_DAR/clean_data" *------------------------------------------------------------------------------- *Figure 1. Descriptive graph of WTP for different fuels in both locations *------------------------------------------------------------------------------- *In order to make this figure import excel "$clean_data/wtp_graphs.xlsx", sheet("Sheet1") firstrow clear *The wtp_graphs.xlsx contains the percentage of respondents who are willing to maintain their current fuel use for a given price increase. twoway connected dar_char Price , lcolor(maroon) mcolor(maroon) || connected nairobi_char Price, lcolor(maroon) mcolor(maroon) lpattern(dash) msymbol(T) || connected dar_lpg Price, lcolor(magenta) mcolor(magenta) || connected nairobi_lpg Price, lcolor(magenta) mcolor(magenta) lpattern(dash) msymbol(T) || connected dar_wood Price ,lcolor(dkorange) mcolor(dkorange) || connected nairobi_kero Price, lpattern(dash) msymbol(T) lcolor(black) mcolor(black) xtitle("Price in USD") ytitle("Percentage WTP") plotregion(fcolor(white)) graphregion(color(white)) legend(label(1 "Charcoal - Dar") label(2 "Charcoal - Nairobi") label(3 "LPG - Dar") label(4 "LPG - Nairobi") label(5 "Firewood - Dar") label(6 "Kerosene - Nairobi")) legend(size(small)) *------------------------------------------------------------------------------- *Figure 2. Descriptive graph of changes in fuel use with different price increases *------------------------------------------------------------------------------- *Descriptive statistics - what fuels do charcoal users switch to when faced with a price increase? *How does this vary for low income and high income residents? cd "$clean_data" *Start with cleaned household survey data file use "$clean_data/clean_tz_data.dta", clear *First we restrict the sample to charcoal users keep if main_cooking_fuel==1 *Tabulate the responses of charcoal users to initial bid price increases tab charcv1contin~h *Categorize initial bid price increases into low and high price increases. *We say low = 25-50% increases and high=100-200% increases. gen high_low =. replace high_low = 0 if charinc == 1 | charinc ==2 replace high_low = 1 if charinc == 3 | charinc ==4 label define hl 0"25-50% Increase" 1"100-200% Increase" label values high_low hl keep if high_low!=. *Divide the income distribution (OF charcoal users) into 2 xtile bottomtop=lpc_monthlyexp, n(2) *What do Low income households do when faced with low price increases vs high price increases tab charcv1contin if high_low==0 & bottomtop==1 tab charcv1contin if high_low==1 & bottomtop==1 *What do High income households do when faced with low price increases vs high price increases tab charcv1contin if high_low==0 & bottomtop==2 tab charcv1contin if high_low==1 & bottomtop==2 *Plot the data. In the plot editing - I manually hide the 0 category which is required by slideplot set scheme plotplainblind slideplot bar charcv1contin if bottomtop==1, by(high_low) pos(1 2 3 4 5) neg(0) percent ytitle("") title("a. Low Income Households - Dar Es Salaam") subtitle("Baseline charcoal users") note("N=336") graph save "$results/low_dar.gph", replace slideplot bar charcv1contin if bottomtop==2, by(high_low) pos(1 2 3 4 5) neg(0) percent ytitle("") title("b. High Income Households - Dar Es Salaam") subtitle("Baseline charcoal users") note("N=336") graph save "$results/high_dar.gph", replace *We do the same for the Kenya data use "$kenya_data/Kenya_rosterdata_anon_28Nov2023.dta", clear keep if primary_fuel==1 *Tabulate the responses of kerosene users to initial bid price increases tab f_3b *Categorize initial bid price increases into low and high price increases. *We say low = 25-50% increases and high=100-200% increases. gen high_low =. replace high_low = 0 if percentage_label_a == 25 | percentage_label_a == 50 replace high_low = 1 if percentage_label_a == 100 | percentage_label_a == 200 label define hl 0"25-50% Increase" 1"100-200% Increase" label values high_low hl keep if high_low!=. *Divide the income distribution (OF kerosene users) into 2 xtile bottomtop=lpc_monthlyexp, n(2) *What do Low income households do when faced with low price increases vs high price increases tab f_3b if high_low==0 & bottomtop==1 tab f_3b if high_low==1 & bottomtop==1 *What do High income households do when faced with low price increases vs high price increases tab f_3b if high_low==0 & bottomtop==2 tab f_3b if high_low==1 & bottomtop==2 *Plot the data. In the plot editing - I manually hide the 0 category which is required by slideplot set scheme plotplain set scheme plotplainblind slideplot bar f_3b if bottomtop==1, by(high_low) pos(1 2 3 4 5) neg(0) percent ytitle("") title("c. Low Income Households - Nairobi") subtitle("Baseline kerosene users") note("N=52") graph save "$results/low_nairobi.gph", replace slideplot bar f_3b if bottomtop==2, by(high_low) pos(1 2 3 4 5) neg(0) percent ytitle("") title("d. High Income Households - Nairobi") subtitle("Baseline kerosene users") note("N=51") graph save "$results/high_nairobi.gph", replace *Figure 2 in the text. graph combine "$results/low_dar.gph" "$results/high_dar.gph" "$results/low_nairobi.gph" "$results/high_nairobi.gph" *------------------------------------------------------------------------------- *Figure S1. *Data source: WHO Global Household Energy Database *https://www.who.int/data/gho/data/indicators/indicator-details/GHO/gho-phe-primary-reliance-on-clean-fuels-and-technologies-proportion *------------------------------------------------------------------------------- import excel "$clean_data/clean_cooking.xlsx", sheet("data") firstrow clear replace Country = "Tanzania" if Country=="United Republic of Tanzania" twoway connected Cleancook year if Country=="Tanzania" || connected Cleancook year if Country=="Kenya" || connected Cleancook year if Country=="Ethiopia" || connected Cleancook year if Country=="Mozambique" || connected Cleancook year if Country=="Uganda" *------------------------------------------------------------------------------- *Figure S2. *Data sources: *Nairobi 2015: Kenya Integrated Household Budget Survey 2015-2016 for Nairobi City County *Nairobi 2020: Kenya Continuous Household Survey Programme (KCHSP) - 2020 Annual data for Nairobi City County (N=795) *Dar es Salaam 2015: 2014/15 Tanzanian National Panel Survey data for Dar es Salaam Region (N=552) *Dar es Salaam 2020: 2014/15 Tanzanian National Panel Survey data for Dar es Salaam Region (N=552) *------------------------------------------------------------------------------- import excel "$clean_data/cooking_fuels.xlsx", sheet("Sheet1") firstrow clear set scheme plotplainblind graph bar charcoal kero lpg elec firewood other if city=="Nairobi", over(year,gap(10)) stack /// legend(label(1 "Charcoal") label(2 "Kerosene") label(3 "LPG") label(4 "Electricity") label(5 "Firewood") label(6 "Other")) title("Dar es Salaam") title("Nairobi") graph save g1.gph, replace graph bar charcoal kero lpg elec firewood other if city=="Dar Es Salaam", over(year, gap(5)) stack /// legend(label(1 "Charcoal") label(2 "Kerosene") label(3 "LPG") label(4 "Electricity") label(5 "Firewood") label(6 "Other")) title("Dar es Salaam") graph save g2.gph , replace graph combine g1.gph g2.gph *------------------------------------------------------------------------------- * Contingent Valuation using Double-Bounded Dichotomous Choice *ssc install doubleb * https://ideas.repec.org/c/boc/bocode/s457168.html * cd "$clean_data" /* (Commented out steps to create the clean data file) *Start with cleaned household survey data file use "$clean_data/efd_hhsurvey_cleaned.dta", clear *Merge in household level data derived from individual roster data (e.g. head gender,hhsize etc) merge 1:1 hhid using "$clean_data/hh_memroster_collapsed.dta" drop if _merge==1 *Merge in stove data derrived from stove roster (e.g. main stove) cap drop _merge merge 1:1 hhid using "$clean_data/stoves_roster_collapsed.dta" *merge in fuel data from fuel roster cap drop _merge merge 1:1 hhid using "$clean_data/fuelroster_wide.dta" drop if _merge==2 *merge in asset counts from assetroster cap drop _merge merge 1:1 hhid using "$clean_data/assetroster_wide.dta" drop if _merge==1 save "$clean_data/clean_tz_data.dta", replace */ use "$clean_data/clean_tz_data.dta", clear *Using a simple count of number of fuels used for cooking egen stack_simple = rowtotal(use_wood use_char use_kero use_lpg use_elec) replace stack_simple = . if stack_simple==0 label var stack_simple "Number of cooking fuels used in last 12 months" *Using spending *create variable for each fuel - capturing what percentage of HH fuel spending goes to this fuel *Note Here spend_cook excludes spending on electricity (difficult to differentiate cooking from non cooking elec use) *Need to decide whether to exclude firewood here. gen var1 = (spend_lpg/spend_cook)*100 gen var2 = (spend_wood/spend_cook)*100 gen var3 = (spend_ker/spend_cook)*100 gen var4 = (spend_char/spend_cook)*100 forval j=1/4{ replace var`j' = 0 if var`j'==. } gen total = 100 *Hirschman Hirfendal index gen hhi=0 forval j=1/4{ replace hhi = hhi+(var`j'/total)^2 } *Stacking index is the inverse of the HHI measure of concentration *Households that score higher have a more diversified fuel expenditure bundle gen stackindex = 1-hhi *Binary stacking measure = 1 if hh uses more than 1 fuel gen binary_stack = . replace binary_stack=0 if stack_simple ==1 replace binary_stack=1 if stack_simple > 1 *Categorical stacking measure gen cat_stack = . replace cat_stack=0 if use_char==1 & use_kero==0 & use_wood==0 & use_lpg==0 replace cat_stack=1 if stack_simple>1 replace cat_stack=2 if use_lpg==1 & stack_simple==1 *Continuous stacking measure - From NEPAL study replace lpg_mj = 0 if lpg_mj ==. replace char_mj = 0 if char_mj==. replace kero_mj = 0 if kero_mj==. replace wood_mj = 0 if wood_mj==. egen mj_month = rowtotal(lpg_mj char_mj kero_mj wood_mj) gen LPGstackperc = lpg_mj/mj_month replace LPGstackperc = 0 if LPGstackperc==. tab LPGstackperc gen CHARstackperc = char_mj / mj_month replace CHARstackperc = 0 if CHARstackperc==. tab CHARstackperc gen KEROstackperc = kero_mj / mj_month replace KEROstackperc = 0 if KEROstackperc==. tab KEROstackperc gen WOODstackperc = wood_mj / mj_month replace WOODstackperc = 0 if WOODstackperc==. tab WOODstackperc gen stackperc = . replace stackperc = CHARstackperc if main_cooking_fuel==1 replace stackperc = LPGstackperc if main_cooking_fuel==3 replace stackperc = WOODstackperc if main_cooking_fuel==2 *------------------------------------------------------------------------------- * Summary statistics of variables used in analysis (Based on variables summarized in Kenya study) *------------------------------------------------------------------------------- *Note: In the TZ questionnaire, information was not collected about self-help group membership *Dummies of primary stove categories to make summarizing easier tab primary_stove, gen(prim) label var prim1 "Charcoal" label var prim2 "Kerosene" label var prim3 "LPG" label var prim4 "Firewood" label var prim5 "Other" rename prim1 char_c rename prim2 kero rename prim3 lpg rename prim4 firewood rename prim5 other *piped water in house or yard. gen piped_water = watersource ==1 *private flush toilet gen flush_toilet = toilet==3 *------------------------------------------------------------------------------- *Drop observations with missing variables *------------------------------------------------------------------------------- //drop observations with missing values foreach var of varlist female_head head_age depratio hhsize pc_monthlyexp dollar_pc char_c kero lpg firewood other piped_water flush_toilet savings loan grid_connect { drop if `var'==. } *Summary statistics by District eststo dt: estpost summarize female_head head_age depratio hhsize pc_monthlyexp dollar_pc char_c kero lpg firewood other minutes_wood minutes_char minutes_kero minutes_lpg piped_water flush_toilet savings loan grid_connect eststo d1: estpost summarize female_head head_age depratio hhsize pc_monthlyexp dollar_pc char_c kero lpg firewood other minutes_wood minutes_char minutes_kero minutes_lpg piped_water flush_toilet savings loan grid_connect if district==1 eststo d2: estpost summarize female_head head_age depratio hhsize pc_monthlyexp dollar_pc char_c kero lpg firewood other minutes_wood minutes_char minutes_kero minutes_lpg piped_water flush_toilet savings loan grid_connect if district==2 eststo d3: estpost summarize female_head head_age depratio hhsize pc_monthlyexp dollar_pc char_c kero lpg firewood other minutes_wood minutes_char minutes_kero minutes_lpg piped_water flush_toilet savings loan grid_connect if district==3 esttab dt d1 d2 d3 using "$results/summ.xls" , cells(mean(fmt(3)) sd(fmt(3) par)) replace *Womens empowerment measures //Around 90% of main cook's could read and maintain household accounts //For these reasons these two variables are not used - not much variation. *------------------------------------------------------------------------------- * VIF (Charcoal, LPG, Kerosene) *------------------------------------------------------------------------------- gen charcoal = main_cooking_fuel == 1 gen lpgmain = main_cooking_fuel==3 gen kerosene = main_cooking_fuel ==4 reg charcoal l_dollarpc hhsize head_age female_head i.head_educ i.district, vce(robust) outreg2 using "$results/vif.xls", se dec (3) stats (coef se) e(r2_p) label replace reg charcoal l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet piped_water savings grid_connect minutes_market i.district, vce(robust) outreg2 using "$results/vif.xls", se dec (3) stats (coef se) e(r2_p) label append reg kerosene l_dollarpc hhsize head_age female_head i.head_educ i.district, vce(robust) outreg2 using "$results/vif.xls", se dec (3) stats (coef se) e(r2_p) label append reg kerosene l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet piped_water savings grid_connect minutes_market i.district, vce(robust) outreg2 using "$results/vif.xls", se dec (3) stats (coef se) e(r2_p) label append reg lpgmain l_dollarpc hhsize head_age female_head i.head_educ i.district, vce(robust) outreg2 using "$results/vif.xls", se dec (3) stats (coef se) e(r2_p) label append reg lpgmain l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet piped_water savings grid_connect minutes_market i.district, vce(robust) outreg2 using "$results/vif.xls", se dec (3) stats (coef se) e(r2_p) label append *------------------------------------------------------------------------------- * MLOGIT of fuel choice (Charcoal, LPG, Kerosene) *------------------------------------------------------------------------------- *Three categories of main cooking fuel //At the moment all other responses are set to missing - need to discuss gen cooking_3 = . replace cooking_3 = 1 if main_cooking_fuel==1 replace cooking_3 = 2 if main_cooking_fuel==3 replace cooking_3 = 3 if main_cooking_fuel==4 label define cook_3 1"Charcoal" 2"LPG" 3"Kerosene" label values cooking_3 cook_3 label var cooking_3 "Main cooking fuel - char,lpg,kero only" *We use two asset/Wealth indexes the one is a pca and the other is a Wealth index derived in Nepal analysis. *IN TZ data we have no count data for: numfans, DVDplayer, bednet, jewelry (+ Here I included refrigerators) *We have many missing values for total value of house. *I need to impute these by saying the value of the house is equal to the average value for households in the same income quintile *total_value polychoricpca rooms own_house televisions motorcycles cellphones pressure_cook bicycles radio refrigerators , score(index) nscore(1) nolog rename index Wealthindex *PCA for assetindex (Counts of each asset) pca refrigerators radio cellphone television motorcycle predict assetindex xtile Q_assets = assetindex, nq(5) tab Q_assets, gen(assetindex) mean refrigerators radio cellphone television motorcycle , over(Q_assets) label var assetindex "PCA of fridge,radio,cell,TV & motorbike counts" *Mlogit regressions // Variables in analysis MLOGIT + STACKING // per cap, hhsize, age head, female head, educ of head, educ of cook, depratio, flush toilet, savings, electricity, distance // KEEP Wealthindex in Nepal analysis. ************************************************************************************************************** ** MLOGIT of fuel choice (Charcoal, LPG, Kerosene) (w/ log per capita monthly expenditures) ** ************************************************************************************************************** mlogit cooking_3 l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) margins, dydx(*) post predict (outcome(Kerosene)) outreg2 using "$results/mlogit.xls", se dec (3) stats (coef se) e(r2_p) label append mlogit cooking_3 l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) margins, dydx(*) post predict (outcome(LPG)) outreg2 using "$results/mlogit.xls", se dec (3) stats (coef se) e(r2_p) label append mlogit cooking_3 l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) margins, dydx(*) post predict (outcome(Charcoal)) outreg2 using "$results/mlogit.xls", se dec (3) stats (coef se) e(r2_p) label append ************************************************************************************************************** ** MLOGIT of fuel choice (Charcoal, LPG, Kerosene) (w/ wealth index) ** ************************************************************************************************************** mlogit cooking_3 Wealthindex hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) margins, dydx(*) post predict (outcome(Kerosene)) outreg2 using "$results/mlogit.xls", se dec (3) stats (coef se) e(r2_p) label append mlogit cooking_3 Wealthindex hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) margins, dydx(*) post predict (outcome(LPG)) outreg2 using "$results/mlogit.xls", se dec (3) stats (coef se) e(r2_p) label append mlogit cooking_3 Wealthindex hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) margins, dydx(*) post predict (outcome(Charcoal)) outreg2 using "$results/mlogit.xls", se dec (3) stats (coef se) e(r2_p) label append *------------------------------------------------------------------------------- * Stacking *------------------------------------------------------------------------------- *Stacking with LPC monthly per capita expenditure reg stack_simple l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label replace reg stackindex l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append reg binary_stack l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append reg CHARstackperc l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append reg KEROstackperc l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append reg LPGstackperc l_dollarpc hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append *With Wealthindex reg stack_simple Wealthindex hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append reg stackindex Wealthindex hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append reg binary_stack Wealthindex hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append reg CHARstackperc Wealthindex hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append reg KEROstackperc Wealthindex hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append reg LPGstackperc Wealthindex hhsize head_age female_head i.head_educ i.cook_educ depratio flush_toilet savings grid_connect minutes_market , vce(robust) outreg2 using "$results/stack.xls", se dec (3) stats (coef se) e(r2_p) label append * ---------- Charcoal users * (A) 25% Increase originally * tab charcv1continue_switch if charinc==1, m * (B) 50% Increase originally * tab charcv1continue_switch if charinc==2, m * (C) 100% Increase * tab charcv1continue_switch if charinc==3, m * (D) 200% Increase * tab charcv1continue_switch if charinc==4, m * ---------- LPG users * (A) 25% Increase originally * tab lpgcv1continue_switch if lpginc==1, m * (B) 50% Increase originally * tab lpgcv1continue_switch if lpginc==2, m * (C) 100% Increase * tab lpgcv1continue_switch if lpginc==3, m * (D) 200% Increase * tab lpgcv1continue_switch if lpginc==4, m * ---------- Wood users * (A) 25% Increase originally * tab woodcv1continue_switch if woodinc==1, m * (B) 50% Increase originally * tab woodcv1continue_switch if woodinc==2, m * (C) 100% Increase * tab woodcv1continue_switch if woodinc==3, m * (D) 200% Increase * tab woodcv1continue_switch if woodinc==4, m *Monetary values of the initial bids for each fuel tab woodinc tab charinc tab lpginc *------------------------------------------------------------------------------- * Probability of willingness to pay for cooking fuels at various hypothetical prices *------------------------------------------------------------------------------- ******************************************************************************* ** CHARCOAL ** ******************************************************************************* *generate variables indicating choice to continue using charcoal gen resp_charcoal = charcv1continue_switch==1 label define rc 0"Switch" 1"Continue using charcoal" label values resp_charcoal rc label var resp_charcoal "Continue or Switch from charcoal in First BID" replace resp_charcoal=. if main_cooking_fuel!=1 *Hypothetical price of charcoal (based on CV bids) - here the price is given in USD gen fuel_price_char = . replace fuel_price_char = (2500/2333.34)/4 if charinc==1 replace fuel_price_char = (3000/2333.34)/4 if charinc==2 replace fuel_price_char = (4000/2333.34)/4 if charinc==3 replace fuel_price_char = (6000/2333.34)/4 if charinc==4 *Electrical appliance counts gen app_count = refrigerators + cellphones + televisions *Setting minutes to zero if minutes=. replace minutes_char = 0 if minutes_char==. replace minutes_lpg = 0 if minutes_lpg==. replace minutes_wood = 0 if minutes_wood==. ******************************************************************************* ** WTP for CHARCOAL ** ******************************************************************************* foreach var of varlist female_head head_age head_educ hhsize depratio savings grid_connect minutes_char binary_stack { drop if `var'==. } probit resp_charcoal fuel_price_char if cooking_3==1, ro margins, dydx(_all) post outreg2 using "$results/Tanzania_char.xls", se dec (3) stats (coef se) e(r2_p) label replace probit resp_charcoal fuel_price_char l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_char binary_stack if cooking_3==1, ro margins, dydx(_all) post outreg2 using "$results/Tanzania_char.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_charcoal fuel_price_char l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_char CHARstackperc if cooking_3==1, ro margins, dydx(_all) post outreg2 using "$results/Tanzania_char.xls", se dec (3) stats (coef se) e(r2_p) label append ** Change in percentage cooking for non-switchers ** *Create variable indicating how much cooking would be reduced if the respondent continues using charcoal destring cv1howmuch_reduce, replace *note - we define reduction as 0 if respondent indicates they will not reduce cooking gen perc_cooking_charcoal = . replace perc_cooking_charcoal = 0 if resp_charcoal==1 & cv1_reducecook==0 replace perc_cooking_charcoal= cv1howmuch_reduce if resp_charcoal==1 & cv1_reducecook==1 reg perc_cooking_charcoal fuel_price_char, ro outreg2 using "$results/Tanzania_char2.xls", se dec (3) stats (coef se) e(r2_p) label replace reg perc_cooking_charcoal fuel_price_char l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect minutes_char , ro outreg2 using "$results/Tanzania_char2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_charcoal fuel_price_char Wealthindex female_head head_age i.head_educ hhsize depratio savings grid_connect minutes_char , ro outreg2 using "$results/Tanzania_char2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_charcoal fuel_price_char l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect minutes_char stack_simple, ro outreg2 using "$results/Tanzania_char2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_charcoal fuel_price_char l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect minutes_char stackindex, ro outreg2 using "$results/Tanzania_char2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_charcoal fuel_price_char l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_char binary_stack, ro outreg2 using "$results/Tanzania_char2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_charcoal fuel_price_char l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_char CHARstackperc, ro outreg2 using "$results/Tanzania_char2.xls", se dec (3) stats (coef se) e(r2_p) label append ******************************************************************************* ** LPG ** ******************************************************************************* *generate variables indicating choice to continue using LPG gen resp_lpg = lpgcv1continue_switch==1 replace resp_lpg=. if main_cooking_fuel!=3 *Hypothetical price of lpg (based on CV bids) - here the price is given in USD gen price_lpg = . replace price_lpg = (25000/2333.34)/13 if lpginc==1 replace price_lpg = (30000/2333.34)/13 if lpginc==2 replace price_lpg = (40000/2333.34)/13 if lpginc==3 replace price_lpg = (60000/2333.34)/13 if lpginc==4 ******************************************************************************* ** WTP for LPG ** ******************************************************************************* probit resp_lpg price_lpg if cooking_3==2, ro margins, dydx(_all) post outreg2 using "$results/Tanzania_lpg.xls", se dec (3) stats (coef se) e(r2_p) label replace probit resp_lpg price_lpg l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_lpg binary_stack if cooking_3==2, ro margins, dydx(_all) post outreg2 using "$results/Tanzania_lpg.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_lpg price_lpg l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_lpg LPGstackperc if cooking_3==2, ro margins, dydx(_all) post outreg2 using "$results/Tanzania_lpg.xls", se dec (3) stats (coef se) e(r2_p) label append ** Change in percentage cooking for non-switchers ** *Create variable indicating how much cooking would be reduced if the respondent continues using charcoal destring cv1howmuch_reduce, replace *note - we define reduction as 0 if respondent indicates they will not reduce cooking gen perc_cooking_lpg = . replace perc_cooking_lpg = 0 if resp_lpg==1 & cv1_reducecook==0 replace perc_cooking_lpg = cv1howmuch_reduce if resp_lpg==1 & cv1_reducecook==1 reg perc_cooking_lpg price_lpg, ro outreg2 using "$results/Tanzania_lpg2.xls", se dec (3) stats (coef se) e(r2_p) label replace reg perc_cooking_lpg price_lpg l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect minutes_lpg minutes_market, ro outreg2 using "$results/Tanzania_lpg2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_lpg price_lpg Wealthindex female_head head_age i.head_educ hhsize depratio savings grid_connect minutes_lpg minutes_market, ro outreg2 using "$results/Tanzania_lpg2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_lpg price_lpg l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect minutes_lpg minutes_market stack_simple , ro outreg2 using "$results/Tanzania_lpg2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_lpg price_lpg l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect minutes_lpg minutes_market stackindex, ro outreg2 using "$results/Tanzania_lpg2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_lpg price_lpg l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_lpg binary_stack, ro outreg2 using "$results/Tanzania_lpg2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_lpg price_lpg l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_lpg LPGstackperc, ro outreg2 using "$results/Tanzania_lpg2.xls", se dec (3) stats (coef se) e(r2_p) label append ******************************************************************************* ** FIREWOOD ** ******************************************************************************* *generate variables indicating choice to continue using LPG gen resp_wood = woodcv1continue_switch==1 replace resp_wood=. if main_cooking_fuel!=2 *Hypothetical price of wood (based on CV bids) - here the price is given in 1000's of TZS gen price_wood = . replace price_wood = (3750/2333.34)/15 if woodinc==1 replace price_wood = (4500/2333.34)/15 if woodinc==2 replace price_wood = (6000/2333.34)/15 if woodinc==3 replace price_wood = (9000/2333.34)/15 if woodinc==4 probit resp_wood price_wood, ro margins, dydx(_all) post outreg2 using "$results/Tanzania_wood.xls", se dec (3) stats (coef se) e(r2_p) label replace probit resp_wood price_wood l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_wood binary_stack , ro margins, dydx(_all) post outreg2 using "$results/Tanzania_wood.xls", se dec (3) stats (coef se) e(r2_p) label append *Not reported in paper : does not converge (too few observations) *probit resp_wood price_wood l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_wood WOODstackperc, ro *margins, dydx(_all) post *outreg2 using "$results/Tanzania_wood.xls", se dec (3) stats (coef se) e(r2_p) label append ** Change in percentage cooking for non-switchers ** *note - we define reduction as 0 if respondent indicates they will not reduce cooking gen perc_cooking_wood = . replace perc_cooking_wood = 0 if resp_wood==1 & cv1_reducecook==0 replace perc_cooking_wood = cv1howmuch_reduce if resp_wood==1 & cv1_reducecook==1 reg perc_cooking_wood price_wood, ro outreg2 using "$results/Tanzania_wood2.xls", se dec (3) stats (coef se) e(r2_p) label replace reg perc_cooking_wood price_wood l_dollarpc minutes_wood female_head head_age i.head_educ hhsize depratio savings grid_connect, ro outreg2 using "$results/Tanzania_wood2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_wood price_wood Wealthindex minutes_wood female_head head_age i.head_educ hhsize depratio savings grid_connect, ro outreg2 using "$results/Tanzania_wood2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_wood price_wood l_dollarpc minutes_wood female_head head_age i.head_educ hhsize depratio savings grid_connect stack_simple, ro outreg2 using "$results/Tanzania_wood2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_wood price_wood l_dollarpc minutes_wood female_head head_age i.head_educ hhsize depratio savings grid_connect stackindex, ro outreg2 using "$results/Tanzania_wood2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_wood price_wood l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect minutes_lpg binary_stack, ro outreg2 using "$results/Tanzania_wood2.xls", se dec (3) stats (coef se) e(r2_p) label append ******************************************************************************* ** POOLED MODEL ** *Pooling all fuels and running WTP analysis ******************************************************************************* *generate variables indicating choice to continue using the fuel gen resp_cv = 0 replace resp_cv=1 if woodcv1continue_switch==1 replace resp_cv=1 if lpgcv1continue_switch==1 replace resp_cv=1 if charcv1continue_switch==1 *Hypothetical price (based on CV bids) - here the price is given in USD. We assume an exchange rate of 2333 TZS per USD gen price_fuel = . replace price_fuel = (3750/2333.34)/15 if woodinc==1 replace price_fuel = (4500/2333.34)/15 if woodinc==2 replace price_fuel = (6000/2333.34)/15 if woodinc==3 replace price_fuel = (9000/2333.34)/15 if woodinc==4 replace price_fuel = (25000/2333.34)/13 if lpginc==1 replace price_fuel = (30000/2333.34)/13 if lpginc==2 replace price_fuel = (40000/2333.34)/13 if lpginc==3 replace price_fuel = (60000/2333.34)/13 if lpginc==4 replace price_fuel = (2500/2333.34)/4 if charinc==1 replace price_fuel = (3000/2333.34)/4 if charinc==2 replace price_fuel = (4000/2333.34)/4 if charinc==3 replace price_fuel = (6000/2333.34)/4 if charinc==4 *Fuel type in CV gen fuel_type=. replace fuel_type=1 if main_cooking ==1 replace fuel_type=2 if main_cooking ==3 replace fuel_type=3 if main_cooking ==2 label def ft 1"Charcoal" 2"LPG" 3"Firewood" label values fuel_type ft *Fuel collection time * need to check this gen fuel_coll=. replace fuel_coll = minutes_char if main_cooking==1 replace fuel_coll = minutes_lpg if main_cooking==3 replace fuel_coll = minutes_wood if main_cooking==2 replace fuel_coll =0 if fuel_coll==. probit resp_cv price_fuel, ro margins, dydx(_all) post outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label replace probit resp_cv price_fuel i.fuel_type, ro margins, dydx(_all) post outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_cv price_fuel i.fuel_type c.price_fuel##i.fuel_type, ro outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_cv price_fuel i.fuel_type c.price_fuel##i.fuel_type l_dollarpc fuel_coll minutes_market female_head head_age i.head_educ hhsize depratio savings grid_connect, ro outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_cv price_fuel i.fuel_type c.price_fuel##i.fuel_type Wealthindex fuel_coll female_head head_age i.head_educ hhsize depratio savings grid_connect, ro outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_cv price_fuel i.fuel_type l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect fuel_coll binary_stack, ro margins, dydx(_all) post outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_cv price_fuel i.fuel_type l_dollarpc fuel_coll minutes_market female_head head_age i.head_educ hhsize depratio savings grid_connect stack_simple, ro outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_cv price_fuel i.fuel_type l_dollarpc fuel_coll minutes_market female_head head_age i.head_educ hhsize depratio savings grid_connect stackindex, ro outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_cv price_fuel i.fuel_type l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect fuel_coll CHARstackperc LPGstackperc WOODstackperc, ro margins, dydx(_all) post outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_cv price_fuel i.fuel_type c.price_fuel##i.fuel_type l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect binary_stack, ro margins, dydx(_all) post outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append probit resp_cv price_fuel i.fuel_type c.price_fuel##i.fuel_type l_dollarpc fuel_coll minutes_market female_head head_age i.head_educ hhsize depratio savings grid_connect CHARstackperc LPGstackperc KEROstackperc, ro margins, dydx(_all) post outreg2 using "$results/pool.xls", se dec (3) stats (coef se) e(r2_p) label append ** Change in percentage cooking for non-switchers ** gen perc_cooking_all = . replace perc_cooking_all = 0 if resp_wood==1 & cv1_reducecook==0 replace perc_cooking_all = 0 if resp_char==1 & cv1_reducecook==0 replace perc_cooking_all = 0 if resp_lpg==1 & cv1_reducecook==0 replace perc_cooking_all = cv1howmuch_reduce if cv1_reducecook==1 reg perc_cooking_all price_fuel i.fuel_type, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label replace reg perc_cooking_all price_fuel i.fuel_type, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_all price_fuel i.fuel_type c.price_fuel##i.fuel_type, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_all price_fuel i.fuel_type c.price_fuel##i.fuel_type l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect fuel_coll minutes_market, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_all price_fuel i.fuel_type c.price_fuel##i.fuel_type Wealthindex female_head head_age i.head_educ hhsize depratio savings grid_connect fuel_coll minutes_market, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_all price_fuel i.fuel_type l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect fuel_coll binary_stack, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_all price_fuel i.fuel_type l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect fuel_coll minutes_market stack_simple, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_all price_fuel i.fuel_type l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect fuel_coll minutes_market stackindex, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_all price_fuel i.fuel_type l_dollarpc hhsize head_age female_head i.head_educ depratio savings grid_connect fuel_coll CHARstackperc LPGstackperc WOODstackperc, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_all price_fuel i.fuel_type c.price_fuel##i.fuel_type l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect fuel_coll minutes_market binary_stack, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append reg perc_cooking_all price_fuel i.fuel_type c.price_fuel##i.fuel_type l_dollarpc female_head head_age i.head_educ hhsize depratio savings grid_connect fuel_coll minutes_market CHARstackperc LPGstackperc WOODstackperc, ro outreg2 using "$results/pool2.xls", se dec (3) stats (coef se) e(r2_p) label append **------------------------------------------------------------------------------****************************************************************************** ** 5. CALCULATING WILLINGNESS TO PAY:** **------------------------------------------------------------------------------****************************************************************************** *Creating scalar values for calculating WTP with nlcom after doubleb* sum l_dollarpc, meanonly scalar l_dollarpc_m = r(mean) sum female_head, meanonly scalar female_head_m = r(mean) sum head_age, meanonly scalar head_age_m = r(mean) sum head_educ, meanonly scalar head_educ = r(mean) sum hhsize, meanonly scalar hhsize_m = r(mean) sum depratio, meanonly scalar depratio_m = r(mean) sum savings, meanonly scalar savings_m = r(mean) sum grid_connect, meanonly scalar grid_connect_m = r(mean) sum minutes_char, meanonly scalar minutes_char_m = r(mean) sum minutes_lpg, meanonly scalar minutes_lpg_m = r(mean) sum minutes_wood, meanonly scalar minutes_wood_m = r(mean) sum fuel_coll, meanonly scalar fuel_coll_m = r(mean) sum piped_water, meanonly scalar piped_water_m = r(mean) sum flush_toilet, meanonly scalar flush_toilet_m = r(mean) sum binary_stack, meanonly scalar binary_stack_m = r(mean) sum CHARstackperc, meanonly scalar CHARstackperc_m = r(mean) sum LPGstackperc, meanonly scalar LPGstackperc_m = r(mean) sum WOODstackperc, meanonly scalar WOODstackperc_m = r(mean) sum stackperc, meanonly scalar stackperc_m = r(mean) ************ *Charcoal ************ *Create variable for second bid. *generate variables indicating choice to continue using charcoal in SECOND BID gen resp_charcoal_second = charcv2continue_switch==1 replace resp_charcoal_second = 1 if charcv3continue_switch==1 label define cs 0"Switch" 1"Continue using charcoal" label values resp_charcoal_second cs label var resp_charcoal_second "Continue or Switch from charcoal in Second BID" replace resp_charcoal_second = . if main_cooking_fuel!=1 *Hypothetical price of charcoal (based on SECOND CV bids) - here the price is given in USD gen price_char_second = . replace price_char_second = 3000/2333.34 if charinc==1 & resp_charcoal ==1 replace price_char_second = 4000/2333.34 if charinc==2 & resp_charcoal ==1 replace price_char_second = 6000/2333.34 if charinc==3 & resp_charcoal ==1 replace price_char_second = 10000/2333.34 if charinc==4 & resp_charcoal ==1 replace price_char_second = 2250/2333.34 if charinc==1 & resp_charcoal ==0 replace price_char_second = 2500/2333.34 if charinc==2 & resp_charcoal ==0 replace price_char_second = 3000/2333.34 if charinc==3 & resp_charcoal ==0 replace price_char_second = 4000/2333.34 if charinc==4 & resp_charcoal ==0 *Price per kilogram for second bids replace price_char_second = price_char_second/4 * DOUBLEB CHARCOAL doubleb fuel_price_char price_char_second resp_charcoal resp_charcoal_second outreg2 using "$results/doublebchar.xls", se dec (3) stats (coef se) e(r2_p) label replace doubleb fuel_price_char price_char_second resp_charcoal resp_charcoal_second l_dollarpc minutes_char female_head head_age hhsize depratio savings grid_connect nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+grid_connect_m*_b[grid_connect]+minutes_char_m*_b[minutes_char])), noheader outreg2 using "$results/doublebchar.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb fuel_price_char price_char_second resp_charcoal resp_charcoal_second l_dollarpc minutes_char female_head head_age hhsize depratio savings grid_connect binary_stack nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+binary_stack_m*_b[binary_stack]+grid_connect_m*_b[grid_connect]+minutes_char_m*_b[minutes_char])), noheader outreg2 using "$results/doublebchar.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb fuel_price_char price_char_second resp_charcoal resp_charcoal_second l_dollarpc minutes_char female_head head_age hhsize depratio savings grid_connect CHARstackperc nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+CHARstackperc_m*_b[CHARstackperc]+grid_connect_m*_b[grid_connect]+minutes_char_m*_b[minutes_char])), noheader outreg2 using "$results/doublebchar.xls", se dec (3) stats (coef se) e(r2_p) label append ************ *LPG ************ *Create variable for second bid. *generate variables indicating choice to continue using LPG in SECOND BID gen resp_lpg_second = lpgcv2continue_switch==1 replace resp_lpg_second=1 if lpgcv3continue_switch==1 label define ls 0"Switch" 1"Continue using lpg" label values resp_lpg_second ls label var resp_lpg_second "Continue or Switch from LPG in Second BID" replace resp_lpg_second=. if main_cooking_fuel!=3 *We create prices PER KG for first bids (question is based on a 13kg cylinder that holds 22.4 L). *Hypothetical price of LPG (based on SECOND CV bids) - here the price is given in USD gen price_lpg_second = . replace price_lpg_second = 30000/2333.34 if lpginc==1 & resp_lpg ==1 replace price_lpg_second = 40000/2333.34 if lpginc==2 & resp_lpg ==1 replace price_lpg_second = 60000/2333.34 if lpginc==3 & resp_lpg ==1 replace price_lpg_second = 100000/2333.34 if lpginc==4 & resp_lpg ==1 replace price_lpg_second = 22500/2333.34 if lpginc==1 & resp_lpg ==0 replace price_lpg_second = 25000/2333.34 if lpginc==2 & resp_lpg ==0 replace price_lpg_second = 30000/2333.34 if lpginc==3 & resp_lpg ==0 replace price_lpg_second = 40000/2333.34 if lpginc==4 & resp_lpg ==0 *Price per litre for second bids replace price_lpg_second = price_lpg_second/13 * DOUBLEB LPG doubleb price_lpg price_lpg_second resp_lpg resp_lpg_second outreg2 using "$results/doubleblpg.xls", se dec (3) stats (coef se) e(r2_p) label replace doubleb price_lpg price_lpg_second resp_lpg resp_lpg_second l_dollarpc minutes_lpg female_head head_age hhsize depratio savings grid_connect nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+grid_connect_m*_b[grid_connect]+minutes_lpg_m*_b[minutes_lpg])), noheader outreg2 using "$results/doubleblpg.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb price_lpg price_lpg_second resp_lpg resp_lpg_second l_dollarpc minutes_lpg female_head head_age hhsize depratio savings grid_connect binary_stack nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+ binary_stack_m*_b[binary_stack]+grid_connect_m*_b[grid_connect]+minutes_lpg_m*_b[minutes_lpg])), noheader outreg2 using "$results/doubleblpg.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb price_lpg price_lpg_second resp_lpg resp_lpg_second l_dollarpc minutes_lpg female_head head_age hhsize depratio savings grid_connect LPGstackperc nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+ LPGstackperc_m*_b[LPGstackperc]+ grid_connect_m*_b[grid_connect]+minutes_lpg_m*_b[minutes_lpg])), noheader outreg2 using "$results/doubleblpg.xls", se dec (3) stats (coef se) e(r2_p) label append ************ *Wood ************ *Create variable for second bid. *generate variables indicating choice to continue using LPG in SECOND BID gen resp_wood_second = woodcv2continue_switch==1 replace resp_wood_second=woodcv3continue_switch==1 replace resp_wood_second=. if main_cooking_fuel!=2 label define ws 0"Switch" 1"Continue using wood" label values resp_wood_second ws label var resp_wood_second "Continue or Switch from Wood in Second BID" *We create prices PER KG for first bids (question is based on a 15kg bundle). *Hypothetical price of wood (based on SECOND CV bids) - here the price is given in USD gen price_wood_second = . replace price_wood_second = 4500/2333.34 if woodinc==1 & resp_wood ==1 replace price_wood_second = 6000/2333.34 if woodinc==2 & resp_wood ==1 replace price_wood_second = 9000/2333.34 if woodinc==3 & resp_wood ==1 replace price_wood_second = 15000/2333.34 if woodinc==4 & resp_wood ==1 replace price_wood_second = 3375/2333.34 if woodinc==1 & resp_wood ==0 replace price_wood_second = 3750/2333.34 if woodinc==2 & resp_wood ==0 replace price_wood_second = 4500/2333.34 if woodinc==3 & resp_wood==0 replace price_wood_second = 6000/2333.34 if woodinc==4 & resp_wood ==0 *Price per litre for second bids replace price_wood_second = price_wood_second/15 * DOUBLEB Wood doubleb price_wood price_wood_second resp_wood resp_wood_second outreg2 using "$results/doublebwood.xls", se dec (3) stats (coef se) e(r2_p) label replace doubleb price_wood price_wood_second resp_wood resp_wood_second l_dollarpc minutes_wood female_head head_age hhsize depratio savings grid_connect nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+grid_connect_m*_b[grid_connect]+minutes_wood_m*_b[minutes_wood])), noheader outreg2 using "$results/doublebwood.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb price_wood price_wood_second resp_wood resp_wood_second l_dollarpc minutes_wood female_head head_age hhsize depratio savings grid_connect binary_stack nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+ binary_stack_m*_b[binary_stack]+grid_connect_m*_b[grid_connect]+minutes_wood_m*_b[minutes_wood])), noheader outreg2 using "$results/doublebwood.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb price_wood price_wood_second resp_wood resp_wood_second l_dollarpc minutes_wood female_head head_age hhsize depratio savings grid_connect WOODstackperc nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+ WOODstackperc_m*_b[WOODstackperc]+ grid_connect_m*_b[grid_connect]+minutes_wood_m*_b[minutes_wood])), noheader outreg2 using "$results/doublebwood.xls", se dec (3) stats (coef se) e(r2_p) label append ************ *All fuels DOUBLEB ************ gen resp_second = . replace resp_second = resp_wood_second if main_cooking_fuel==2 replace resp_second = resp_charcoal_second if main_cooking_fuel==1 replace resp_second = resp_lpg_second if main_cooking_fuel==3 label define as 0"Switch" 1"Continue using fuel" label values resp_second as label var resp_second "Continue or Switch from fuel in Second BID" *Hypothetical price (based on SECOND CV bids) - here the price is given in 1000's of TZS gen price_second = . replace price_second = price_wood_second if main_cooking_fuel==2 replace price_second = price_char_second if main_cooking_fuel==1 replace price_second = price_lpg_second if main_cooking_fuel==3 *The price above is a price per kilogram. *We now run doubleb for just the price per kilogram doubleb price_fuel price_second resp_cv resp_second outreg2 using "$results/doubleball.xls", se dec (3) stats (coef se) e(r2_p) label replace doubleb price_fuel price_second resp_cv resp_second l_dollarpc fuel_coll female_head head_age hhsize depratio savings grid_connect nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+grid_connect_m*_b[grid_connect]+fuel_coll_m*_b[fuel_coll])), noheader outreg2 using "$results/doubleball.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb price_fuel price_second resp_cv resp_second l_dollarpc fuel_coll female_head head_age hhsize depratio savings grid_connect binary_stack nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+binary_stack_m*_b[binary_stack]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+grid_connect_m*_b[grid_connect]+fuel_coll_m*_b[fuel_coll])), noheader outreg2 using "$results/doubleball.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb price_fuel price_second resp_cv resp_second l_dollarpc fuel_coll female_head head_age hhsize depratio savings grid_connect stackperc nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+ stackperc_m*_b[stackperc]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+grid_connect_m*_b[grid_connect]+fuel_coll_m*_b[fuel_coll])), noheader outreg2 using "$results/doubleball.xls", se dec (3) stats (coef se) e(r2_p) label append **Above we have price per KG, we now convert this to price per MJ gen price_fuelmj=. replace price_fuelmj = price_fuel/(48.325*0.53) if main_cooking_fuel==3 // LPG 48.325MJ per kilogram and 53% fuel efficiency replace price_fuelmj = price_fuel/(30*0.2) if main_cooking_fuel==1 // Charcoal 30MJ per kilogram and 20% fuel efficiency replace price_fuelmj = price_fuel/(18*0.15) if main_cooking_fuel==2 // Firewood 18MJ/kg and 15% efficiency gen price_secondmj =. replace price_secondmj = price_second/(48.325*0.53) if main_cooking_fuel==3 replace price_secondmj = price_second/(30*0.2) if main_cooking_fuel==1 replace price_secondmj = price_second/(18*0.15) if main_cooking_fuel==2 doubleb price_fuelmj price_secondmj resp_cv resp_second outreg2 using "$results/doubleball2.xls", se dec (3) stats (coef se) e(r2_p) label replace doubleb price_fuelmj price_secondmj resp_cv resp_second l_dollarpc fuel_coll female_head head_age hhsize depratio savings grid_connect nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+grid_connect_m*_b[grid_connect]+fuel_coll_m*_b[fuel_coll])), noheader outreg2 using "$results/doubleball2.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb price_fuelmj price_secondmj resp_cv resp_second l_dollarpc fuel_coll female_head head_age hhsize depratio savings grid_connect binary_stack nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+grid_connect_m*_b[grid_connect]+fuel_coll_m*_b[fuel_coll] +binary_stack_m*_b[binary_stack])), noheader outreg2 using "$results/doubleball2.xls", se dec (3) stats (coef se) e(r2_p) label append doubleb price_fuelmj price_secondmj resp_cv resp_second l_dollarpc fuel_coll female_head head_age hhsize depratio savings grid_connect LPGstackperc CHARstackperc WOODstackperc nlcom (WTP: (_b[_cons]+female_head_m*_b[female_head]+head_age_m*_b[head_age]+hhsize_m*_b[hhsize]+depratio_m*_b[depratio]+l_dollarpc_m*_b[l_dollarpc]+savings_m*_b[savings]+grid_connect_m*_b[grid_connect]+fuel_coll_m*_b[fuel_coll] +LPGstackperc_m*_b[LPGstackperc] +CHARstackperc_m*_b[CHARstackperc] +WOODstackperc_m*_b[WOODstackperc])), noheader outreg2 using "$results/doubleball2.xls", se dec (3) stats (coef se) e(r2_p) label append *CONTINGENT VALUATION SECTION DESCRIPTIVE STATISTICS (SECTION F IN THE QUESTIONNAIRE) ******************************************************************************** *FIREWOOD* ******************************************************************************** *To see what initial random price increases were generated for households that cook mainly with firewood *randomly generated original increase tab woodinc *doulbe original increase tab double_woodinc *half original increase tab half_woodinc * (A) 25% Increase originally * tab woodcv1continue_switch if woodinc==1, m *Double 25% if they choose to continue with wood in (A) tab woodcv2continue_switch if (woodinc==1 & woodcv1continue_switch==1), m *Half 25% if they switched from wood in (A) tab woodcv3continue_switch if (woodinc==1 & woodcv1continue_switch!=1), m * (B) 50% Increase originally * tab woodcv1continue_switch if woodinc==2, m *Double 50 if they choose to continue with wood in (B) tab woodcv2continue_switch if (woodinc==2 & woodcv1continue_switch==1), m *Half 50 if they switched from wood in (B) tab woodcv3continue_switch if (woodinc==2 & woodcv1continue_switch!=1), m * (C) 100% Increase * tab woodcv1continue_switch if woodinc==3, m *Double 100 if they choose to continue with wood in (C) tab woodcv2continue_switch if (woodinc==3 & woodcv1continue_switch==1), m *Half 100 if they switched from wood in (C) tab woodcv3continue_switch if (woodinc==3 & woodcv1continue_switch!=1), m * (D) 200% Increase * tab woodcv1continue_switch if woodinc==4, m *Double 200 if they choose to continue with wood in (D) tab woodcv2continue_switch if (woodinc==4 & woodcv1continue_switch==1), m *Half 200 if they switched from wood in (D) tab woodcv3continue_switch if (woodinc==4 & woodcv1continue_switch!=1), m ******************************************************************************** *CHARCOAL* ******************************************************************************** *To see what random numbers have been generated* *randomly generated original increase tab charinc *doulbe original increase tab double_charinc *half original increase tab half_charinc * (A) 25% Increase originally * tab charcv1continue_switch if charinc==1, m *Double 25% if they choose to continue with charcoal in (A) tab charcv2continue_switch if (charinc==1 & charcv1continue_switch==1), m *Half 25% if they switched from charcoal in (A) tab charcv3continue_switch if (charinc==1 & charcv1continue_switch!=1), m * (B) 50% Increase originally * tab charcv1continue_switch if charinc==2, m *Double 50 if they choose to continue with charcoal in (B) tab charcv2continue_switch if (charinc==2 & charcv1continue_switch==1), m *Half 50 if they switched from charcoal in (B) tab charcv3continue_switch if (charinc==2 & charcv1continue_switch!=1), m * (C) 100% Increase * tab charcv1continue_switch if charinc==3, m *Double 100 if they choose to continue with charcoal in (C) tab charcv2continue_switch if (charinc==3 & charcv1continue_switch==1), m *Half 100 if they switched from charcoal in (C) tab charcv3continue_switch if (charinc==3 & charcv1continue_switch!=1), m * (D) 200% Increase * tab charcv1continue_switch if charinc==4, m *Double 200 if they choose to continue with charcoal in (D) tab charcv2continue_switch if (charinc==4 & charcv1continue_switch==1), m *Half 200 if they switched from charcoal in (D) tab charcv3continue_switch if (charinc==4 & charcv1continue_switch!=1), m ******************************************************************************** *LPG ******************************************************************************** *To see what random numbers have been generated* *randomly generated original increase tab lpginc *doulbe original increase tab double_lpginc *half original increase tab half_lpginc * (A) 25% Increase originally * tab lpgcv1continue_switch if lpginc==1, m *Double 25% if they choose to continue with lpg in (A) tab lpgcv2continue_switch if (lpginc==1 & lpgcv1continue_switch==1), m *Half 25% if they switched from lpg in (A) tab lpgcv3continue_switch if (lpginc==1 & lpgcv1continue_switch!=1), m * (B) 50% Increase originally * tab lpgcv1continue_switch if lpginc==2, m *Double 50 if they choose to continue with lpg in (B) tab lpgcv2continue_switch if (lpginc==2 & lpgcv1continue_switch==1), m *Half 50 if they switched from lpg in (B) tab lpgcv3continue_switch if (lpginc==2 & lpgcv1continue_switch!=1), m * (C) 100% Increase * tab lpgcv1continue_switch if lpginc==3, m *Double 100 if they choose to continue with charcoal in (C) tab lpgcv2continue_switch if (lpginc==3 & lpgcv1continue_switch==1), m *Half 100 if they switched from lpg in (C) tab lpgcv3continue_switch if (lpginc==3 & lpgcv1continue_switch!=1), m * (D) 200% Increase * tab lpgcv1continue_switch if lpginc==4, m *Double 200 if they choose to continue with lpg in (D) tab lpgcv2continue_switch if (lpginc==4 & lpgcv1continue_switch==1), m *Half 200 if they switched from lpg in (D) tab lpgcv3continue_switch if (lpginc==4 & lpgcv1continue_switch!=1), m ************ *Why current fuel ************ tab why_currentfuel if main_cooking_fuel==1 replace why_currentfuel=. if why_currentfuel==-77 catplot why_currentfuel if main_cooking_fuel==1, percent ******************************************************************************** *Which clean fuel, and adherence to a ban ******************************************************************************** *Which clean fuel do you prefer tab which_clean if main_cooking_fuel==1