diff --git a/Scripts/MAKE_FILE.R b/Scripts/MAKE_FILE.R index de11490e275b6b7a7238581748affc4b881cb914..1f4f98df088ac50d8059345afb8b09a6fd397ab8 100644 --- a/Scripts/MAKE_FILE.R +++ b/Scripts/MAKE_FILE.R @@ -86,3 +86,5 @@ mxl_wtp_case_c_rentINT <- apollo_loadModel("Estimation_results/mxl/MXL_wtp_Case_ source("Scripts/visualize_models.R") source("Scripts/compare_split_samples.R") + +source("Scripts/create_tables.R") \ No newline at end of file diff --git a/Scripts/create_tables.R b/Scripts/create_tables.R index 6f97b008ac8870b144712df6778f63058c905629..d7d998d0b53d838d0de45be6a22a360e07a37f8c 100644 --- a/Scripts/create_tables.R +++ b/Scripts/create_tables.R @@ -17,43 +17,69 @@ texreg(l=list(ols_percentage_correct_A, ols_percentage_correct_control_A, ols_p custom.header = list("Dependent Variable: Percentage of correct quiz statements" = 1:4), custom.coef.map = list_ols, stars = c(0.01, 0.05, 0.1), float.pos="tb", custom.note = "%stars. Standard errors in parentheses.", + label = "tab:mani", file="Tables/ols/manipulation.tex") # Net interview time texreg(l=list(ols_time_spent_A, ols_time_spent_control_A, ols_time_spent_C, ols_time_spent_control_C), custom.model.names = c("Case A", "with Controls", "Case C", "with Controls"), + custom.header = list("Dependent variable: Net interview time" = 1:4), custom.coef.map = list_ols, stars = c(0.01, 0.05, 0.1), float.pos="tb", - custom.note = "%stars. Standard errors in parentheses. Dependent variable: Net interview time.", + custom.note = "%stars. Standard errors in parentheses.", + label = "tab:net_int", file="Tables/ols/interviewtime.tex") # CC Time texreg(l=list(ols_time_cc_A, ols_time_cc_control_A, ols_time_cc_C, ols_time_cc_control_C), custom.model.names = c("Case A", "with Controls", "Case C", "with Controls"), + custom.header = list("Dependent variable: Mean choice card time" = 1:4), custom.coef.map = list_ols, stars = c(0.01, 0.05, 0.1), float.pos="tb", - custom.note = "%stars. Standard errors in parentheses. Dependent variable: Mean choice card time.", + custom.note = "%stars. Standard errors in parentheses.", + label = "tab:cctime", file="Tables/ols/cctime.tex") # Consequentiality texreg(l=list(conseq_model_A, conseq_model_control_A, conseq_model_C, conseq_model_control_C), custom.model.names = c("Case A", "with Controls", "Case C", "with Controls"), + custom.header = list("Dependent variable: Consequentiality score" = 1:4), custom.coef.map = list_ols, stars = c(0.01, 0.05, 0.1), float.pos="tb", - custom.note = "%stars. Standard errors in parentheses. Dependent variable: Consequentiality score.", + custom.note = "%stars. Standard errors in parentheses.", + label = "tab:conseq", file="Tables/ols/consequentiality.tex") # Opt Out texreg(l=list(ols_opt_out_A, ols_opt_out_control_A, ols_opt_out_C, ols_opt_out_control_C), custom.model.names = c("Case A", "with Controls", "Case C", "with Controls"), + custom.header = list("Dependent variable: Number of opt-out choices" = 1:4), custom.coef.map = list_ols, stars = c(0.01, 0.05, 0.1), float.pos="tb", - custom.note = "%stars. Standard errors in parentheses. Dependent variable: Number of opt-out choices.", + custom.note = "%stars. Standard errors in parentheses.", + label = "tab:optout", file="Tables/ols/optout.tex") +# NR +texreg(l=list(nr_model_treat_A), + custom.model.names = c("OLS regression"), + custom.header = list("Dependent variable: NR-Index" = 1), + custom.coef.map = list("(Intercept)" = "Intercept", "as.factor(Treatment_A)Treated" = "Treated", "as.factor(Treatment_A)Vol_Treated" = "Vol. Treated", + "as.factor(Treatment_C)No Info 2" = "No Info 2", "as.factor(Treatment_C)No Video 1" = "Text 1", + "as.factor(Treatment_C)No Video 2" = "Text 2", "as.factor(Treatment_C)Video 1" = "Video 1", + "as.factor(Treatment_C)Video 2" = "Video 2", "Z_Mean_NR" = "NR-Index", "as.factor(Gender)2" = "Female", + "Age_mean" = "Age", "QFIncome" = "Income", "Uni_degree" = "University Degree", "Kids_Dummy" = "Children", + "Naturalness_SQ" = "Naturalness SQ", "WalkingDistance_SQ" = "Walking Distance SQ"), + stars = c(0.01, 0.05, 0.1), float.pos="tb", + custom.note = "%stars. Standard errors in parentheses.", + label = "tab:nr_ols", + file="Tables/ols/nr_ols.tex") + #### Logit ##### texreg(l=list(logit_choice_treat_uni), stars = c(0.01, 0.05, 0.1), float.pos="tb", - custom.header = list("Voluntary Information Access" = 1), + custom.model.names = c("Logit regression"), + custom.header = list("Dependent variable: Voluntary Information Access" = 1), custom.coef.map = list_ols, custom.note = "%stars. Standard errors in parentheses.", + label = "tab:logit_vt", file="Tables/logit/chose_treatment.tex") @@ -75,11 +101,29 @@ texreg(c(case_A_cols[1], remGOF(case_A_cols[2:4])), "wd" = "Walking Distance", "asc" = "ASC SQ"), custom.model.names = c("Mean", "SD", "Treated", "Voluntary Treated"), custom.note = "%stars. Standard errors in parentheses.", stars = c(0.01, 0.05, 0.1), float.pos="tb", + label = "tab:mxl_A", file="Tables/mxl/case_A_rent_INT.tex") ### Baseline case C case_C <- quicktexregapollo(mxl_wtp_case_c_rentINT) +coef_names <- case_C@coef.names +coef_names <- sub("^(mu_)(.*)(1|2|info)$", "\\2\\3", coef_names) +coef_names[4] <- "mu_ASC_sq" +case_C@coef.names <- coef_names + + +case_C_cols <- map(c("^mu_", "^sig_", "_vid1$", "_vid2$", "_nv1$", "_nv2$", "_no_info$"), subcoef, case_C) + +texreg(c(case_C_cols[1], remGOF(case_C_cols[2:7])), + custom.coef.map = list("natural" = "Naturalness", "walking" = "Walking Distance", "rent" = "Rent", + "ASC_sq" = "ASC SQ", "_natural" = "Naturalness", "nat" = "Naturalness", + "wd" = "Walking Distance", "asc" = "ASC SQ", + "ASC_sq_info" = "ASC SQ", "rent_info" = "Rent", "nat_info" = "Naturalness", "walking_info" = "Walking Distance"), + custom.model.names = c("Mean", "SD", "Video 1", "Video 2", "Text 1", "Text 2", "No Info"), custom.note = "%stars. Standard errors in parentheses.", + stars = c(0.01, 0.05, 0.1), float.pos="tb", + label = "tab:mxl_C", + file="Tables/mxl/case_C_rent_INT.tex") # Main model # texreg(l=list(mxl_wtp_case_a_rentINT), diff --git a/Scripts/ols/ols_nr.R b/Scripts/ols/ols_nr.R index b76905c2fad291f0b9a611cb6e3db500c1aba552..2ad2e09e81c85f70c4e84fd482d0bafb9cf9ac06 100644 --- a/Scripts/ols/ols_nr.R +++ b/Scripts/ols/ols_nr.R @@ -15,8 +15,8 @@ nr_model_treat <- lm(Z_Mean_NR ~ Age_mean + Uni_degree + Kids_Dummy + Gender_fem summary(nr_model_treat) -nr_model_treat_A <- lm(Z_Mean_NR ~ Age_mean + Uni_degree + Kids_Dummy + Gender_female+ QFIncome + - as.factor(Treatment_A) + Naturalness_SQ, data) +nr_model_treat_A <- lm(Z_Mean_NR ~ as.factor(Treatment_A) + QFIncome + as.factor(Gender)+Age_mean+Uni_degree + Kids_Dummy + + Naturalness_SQ + WalkingDistance_SQ, data) summary(nr_model_treat_A) diff --git a/project_start.qmd b/project_start.qmd index 088a40bf2c5afdb4620b4b395919f5b54bdab068..5c7277d5aff02f2cc25f897504a20f399f4098e3 100644 --- a/project_start.qmd +++ b/project_start.qmd @@ -1,6 +1,6 @@ --- title: "Hot Topic, Cool Choices?" -subtitle: "How information treatments on urban heat islands affect WTP for urban green spaces in Germany" +subtitle: "The Impact of Mandatory vs. Voluntary Treatments on Green Space Valuation" title-slide-attributes: data-background-image: Grafics/iDiv_logo_item.png data-background-size: contain @@ -15,6 +15,7 @@ format: smaller: true logo: Grafics/iDiv_logo_item.PNG scrollable: true + embed-resources: true --- ```{r, include=FALSE, cache=FALSE} @@ -24,6 +25,7 @@ source("Scripts/MAKE_FILE.R") ```{r loadlibs, include=FALSE} library(tidyverse) library(apollo) +library(texreg) ``` ## Motivation @@ -34,15 +36,16 @@ library(apollo) - We employ DCE to test influence of additional information on urban heat island on the valuation of UGS -**Research questions:** +## Research questions 1. How does an information treatment about urban heat islands affect survey engagement (interview time, cc time), quiz questions, consequentially and NR-Index? -2. How does additional information on urban heat islands affect the willingness to pay for UGS in a discrete choice experiment? +2. How do the different treatments affect the WTP for urban green spaces in the choice experiment? 3. Who chooses optional information? -4. Do people who choose voluntary information have a different WTP/preferences? +4. Do people who choose **voluntary** information have a different WTP/preferences? + ## Discrete Choice Experiment @@ -50,6 +53,7 @@ library(apollo) - Main attribute of interest here: naturalness defined by five-level graphical scale ▶ Range: hardly natural to very natural - Three survey rounds; paper by Bronnmann et al. (2023) based on round 1 & 2, round 3 just finished end of February + ## Choice Card {width="300"} @@ -78,9 +82,15 @@ library(apollo) ## Methods -- OLS and Logit regressions +- OLS and Logit regressions: -- Mixed logit model with interactions: +```{=tex} +\begin{equation} + Y = \beta_0 + \beta_{Treat} \cdot v_{Treat} + \beta_{Control} \cdot v_{Control} + \epsilon + \label{ols} +\end{equation} +``` +- Mixed logit model with interactions in WTP space: ```{=tex} \begin{equation} @@ -111,8 +121,11 @@ datatable(treatment_socio_C) ::: ::: + ## NR OLS +**Hypotheses:** Individuals with greater Nature Relatedness (NR) are more inclined to autonomously seek information about environmental subjects, such as the impact of urban green spaces on urban heat islands. Consequently, any observed increase in the willingness to pay among the treated group may be attributed to the individuals' higher NR rather than the treatment itself. + ```{r} summary(nr_model_treat_A) ``` @@ -122,16 +135,18 @@ summary(nr_model_treat_A) Characteristics of the voluntarily treated persons ```{r} -summary(logit_choice_treat) +summary(logit_choice_treat_uni) ``` -## Logit Regression: "Protest voting" +<!-- ## Logit Regression: "Protest voting" --> -Does treatment affect "protest" voting? +<!-- Does treatment affect "protest" voting? --> -```{r} -summary(logit_choice_prot_tr) -``` +<!-- ```{r} --> + +<!-- summary(logit_choice_prot_tr) --> + +<!-- ``` --> ## Engagement: Interview Time @@ -415,8 +430,6 @@ summary(ols_opt_out_control_C) ``` ::: - - ## OLS: Consequentiality with controls @@ -476,33 +489,37 @@ summary(mxl_wtp_case_c_rentINT) ``` ::: -## MXL: WTP space without protesters +<!-- ## MXL: WTP space without protesters --> -As protesting is not affected by the treatment we might see a treatment affect removing the protesters, which always choose opt-out. +<!-- As protesting is not affected by the treatment we might see a treatment affect removing the protesters, which always choose opt-out. --> -::: panel-tabset -### Scenario A +<!-- ::: panel-tabset --> -```{r} -summary(mxl_wtp_case_a_prot) -``` +<!-- ### Scenario A --> -### Scenario B +<!-- ```{r} --> -```{r} -summary(mxl_wtp_case_b_prot) -``` +<!-- summary(mxl_wtp_case_a_prot) --> -### Scenario C +<!-- ``` --> -```{r} -summary(mxl_wtp_case_c_prot) -``` -::: +<!-- ### Scenario B --> -## NR Index +<!-- ```{r} --> -**Hypotheses:** Individuals with greater Nature Relatedness (NR) are more inclined to autonomously seek information about environmental subjects, such as the impact of urban green spaces on urban heat islands. Consequently, any observed increase in the willingness to pay among the treated group may be attributed to the individuals' higher NR rather than the treatment itself. +<!-- summary(mxl_wtp_case_b_prot) --> + +<!-- ``` --> + +<!-- ### Scenario C --> + +<!-- ```{r} --> + +<!-- summary(mxl_wtp_case_c_prot) --> + +<!-- ``` --> + +<!-- ::: --> ## MXL: WTP space @@ -528,100 +545,100 @@ summary(mxl_wtp_case_c_NR) ``` ::: -## MXL: WTP space +<!-- ## MXL: WTP space --> -::: panel-tabset -### Scenario A +<!-- ::: panel-tabset --> +<!-- ### Scenario A --> -```{r} -apollo_modelOutput(mxl_wtp_case_a) -``` +<!-- ```{r} --> +<!-- apollo_modelOutput(mxl_wtp_case_a) --> +<!-- ``` --> -### Scenario B +<!-- ### Scenario B --> -```{r} -apollo_modelOutput(mxl_wtp_case_b) -``` +<!-- ```{r} --> +<!-- apollo_modelOutput(mxl_wtp_case_b) --> +<!-- ``` --> -### Scenario C +<!-- ### Scenario C --> -```{r} -apollo_modelOutput(mxl_wtp_case_c) -``` -::: +<!-- ```{r} --> +<!-- apollo_modelOutput(mxl_wtp_case_c) --> +<!-- ``` --> +<!-- ::: --> -## MXL: WTP space Graphs +<!-- ## MXL: WTP space Graphs --> -::: panel-tabset -### Scenario A +<!-- ::: panel-tabset --> +<!-- ### Scenario A --> -::: panel-tabset -### Naturalness +<!-- ::: panel-tabset --> +<!-- ### Naturalness --> -```{r} -wtp_nat_a -``` +<!-- ```{r} --> +<!-- wtp_nat_a --> +<!-- ``` --> -### Walking Distance +<!-- ### Walking Distance --> -```{r} -wtp_wd_a -``` -::: +<!-- ```{r} --> +<!-- wtp_wd_a --> +<!-- ``` --> +<!-- ::: --> -### Scenario B +<!-- ### Scenario B --> -::: panel-tabset -### Naturalness +<!-- ::: panel-tabset --> +<!-- ### Naturalness --> -```{r} -wtp_nat_b -``` +<!-- ```{r} --> +<!-- wtp_nat_b --> +<!-- ``` --> -### Walking Distance +<!-- ### Walking Distance --> -```{r} -wtp_wd_b -``` -::: +<!-- ```{r} --> +<!-- wtp_wd_b --> +<!-- ``` --> +<!-- ::: --> -### Scenario C +<!-- ### Scenario C --> -::: panel-tabset -### Naturalness +<!-- ::: panel-tabset --> +<!-- ### Naturalness --> -```{r} -wtp_nat_c -``` +<!-- ```{r} --> +<!-- wtp_nat_c --> +<!-- ``` --> -### Walking Distance +<!-- ### Walking Distance --> -```{r} -wtp_wd_c -``` -::: -::: +<!-- ```{r} --> +<!-- wtp_wd_c --> +<!-- ``` --> +<!-- ::: --> +<!-- ::: --> -## MXL: WTP space +<!-- ## MXL: WTP space --> -with NR index +<!-- with NR index --> -::: panel-tabset -### Scenario A +<!-- ::: panel-tabset --> +<!-- ### Scenario A --> -```{r} -apollo_modelOutput(mxl_wtp_case_a_NR) -``` +<!-- ```{r} --> +<!-- apollo_modelOutput(mxl_wtp_case_a_NR) --> +<!-- ``` --> -### Scenario B +<!-- ### Scenario B --> -```{r} -apollo_modelOutput(mxl_wtp_case_b_NR) -``` +<!-- ```{r} --> +<!-- apollo_modelOutput(mxl_wtp_case_b_NR) --> +<!-- ``` --> -### Scenario C +<!-- ### Scenario C --> -```{r} -apollo_modelOutput(mxl_wtp_case_c_NR) -``` -::: +<!-- ```{r} --> +<!-- apollo_modelOutput(mxl_wtp_case_c_NR) --> +<!-- ``` --> +<!-- ::: -->