* The following is STATA v13 code for replicating results reported in the paper entitled "Fine Water: A Hedonic Pricing Approach." The associated data file ("data.txt") was constructed by the author of that paper. See the paper for details on the data. set more off * open log *log close log using ".\log.txt", text replace import delimited ".\data.txt" gen ln_price_per_liter = ln(price_per_liter) *** summary stats *** * prices summarize price_per_liter summarize price_per_liter, detail histogram price_per_liter, frequency normal * log prices summarize ln_price_per_liter summarize ln_price_per_liter, detail histogram ln_price_per_liter, frequency normal *** least squares regressions with and without country dummies *** * w/ country dummies reg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic retailer_aqua_amore retailer_aqua_deli country_belgium country_canada country_croatia country_denmark country_fiji country_finland country_france country_germany country_iceland country_new_zealand country_norway country_portugal country_romania country_slovenia country_spain country_sweden country_usa country_united_kingdom domestic, robust display "results for regression with country dummies" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper } * vif w/ country dummies vif quietly reg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic retailer_aqua_amore retailer_aqua_deli domestic, robust * vif w/o country dummies vif * reg w/o country dummies reg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic retailer_aqua_amore retailer_aqua_deli domestic, robust display "results for regression without country dummies" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper } *** other variations on regression *** * w/o hardness and virginality dummies reg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic domestic, robust display "results for regression w/o hardness and virginality" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper } * w/o minerality dummies reg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic domestic, robust display "results for regression w/o minearlity" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper } *** retailer-specific regressions *** * aqua amore reg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic domestic if retailer_aqua_amore==1, robust display "results for aqua amore regression" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper } * aqua deli reg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic domestic if retailer_aqua_deli==1, robust display "results for aqua deli regression" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper } * aqua maestro reg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic domestic if retailer_aqua_maestro==1, robust display "results for aqua maestro regression" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper } *** quantile regressions *** * * 25th quartile qreg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic retailer_aqua_amore retailer_aqua_deli domestic, quantile(.25) vce(robust, kernel) nolog display "results for 25th quartile regression" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper } * 50th quartile qreg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic retailer_aqua_amore retailer_aqua_deli domestic, quantile(.50) vce(robust, kernel) nolog display "results for 50th quartile regression" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper } * 75th quartile qreg ln_price_per_liter source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high orientation_acidic hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good size_per_bottle_of_0_2 size_per_bottle_of_0_25 size_per_bottle_of_0_3 size_per_bottle_of_0_325 size_per_bottle_of_0_33 size_per_bottle_of_0_35 size_per_bottle_of_0_375 size_per_bottle_of_0_4 size_per_bottle_of_0_66 size_per_bottle_of_0_75 size_per_bottle_of_0_8 size_per_bottle_of_0_83 size_per_bottle_of_0_85 size_per_bottle_of_1 size_per_bottle_of_1_5 size_per_bottle_of_2 bottles_per_case_of_1 bottles_per_case_of_15 bottles_per_case_of_20 bottles_per_case_of_24 bottles_per_case_of_30 bottles_per_case_of_36 bottles_per_case_of_6 bottle_type_aluminum bottle_type_plastic retailer_aqua_amore retailer_aqua_deli domestic, quantile(.75) vce(robust, kernel) nolog display "results for 75th quartile regression" display "var \t point \t se \t z \t p-value \t lower 95% CI \t upper 95% CI" foreach var1 of varlist source_artesian source_well source_iceberg carbonation_effervescent carbonation_light carbonation_classic carbonation_bold orientation_acidic orientation_hint_of_sweet orientation_alkaline minerality_super_low minerality_medium minerality_high minerality_very_high hardness_soft hardness_slightly_hard hardness_moderately_hard hardness_hard virginality_very_good virginality_good { scalar n = e(N) scalar b = _b[`var1'] scalar V = _se[`var1'] ^ 2 scalar point = exp(b - 0.5 * V) - 1 scalar se = sqrt((exp(2 * b) * (exp(-1 * V) - exp(-2 * V)))) scalar z = point / se scalar lower = point - 1.96 * se scalar upper = point + 1.96 * se display "`var1'" " \t " point " \t " se " \t " z " \t " (1 - normal(abs(z))) + (1 - normal(abs(z))) " \t " lower " \t " upper }