Setup

library(tidyr)
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.2.1     ✓ dplyr   1.0.3
## ✓ tibble  3.1.1     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.4.0
## ✓ purrr   0.3.3
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(dplyr)
library(readr)
library(psych)
## 
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
library(stringr)
library(ggplot2)
library(lm.beta)
library(forcats)
library(apaTables)

Load and clean raw data

rawdata <- read_csv("single_review_exp2.csv", col_names = TRUE) %>%
slice(-(1:2)) %>%
filter(Progress == 97 | Progress == 100) %>%
select(`Duration (in seconds)`, RecordedDate, ResponseId,`initial_timing_Page Submit`,certainty:initial_choice, `positive_timing_scen_Page Submit`, `positive_timing_cho_Page Submit`, positive_choice, `negative_timing_scen_Page Submit`, `negative_timing_cho_Page Submit`, negative_choice, `noreview_timing_scen_Page Submit`, `noreview_timing_cho_Page Submit`, noreview_choice, manipulation_check:gender,Review) %>%
rename("Duration" = "Duration (in seconds)", "ID" = "ResponseId","positive_scenario_time" = "positive_timing_scen_Page Submit", "positive_choice_time" = "positive_timing_cho_Page Submit", "negative_scenario_time" = "negative_timing_scen_Page Submit", "negative_choice_time" = "negative_timing_cho_Page Submit", "noreview_scenario_time" = "noreview_timing_scen_Page Submit", "noreview_choice_time" = "noreview_timing_cho_Page Submit", "attention_check" = "attention_check_1", "choose_feature_other" = "choose_feature_7_TEXT") %>%
mutate(scenario_time = case_when(
  Review == "Positive" ~ positive_scenario_time,
  Review == "Negative" ~ negative_scenario_time,
  Review == "No Review" ~ noreview_scenario_time)) %>%
mutate(choice_time = case_when(
  Review == "Positive" ~ positive_choice_time,
  Review == "Negative" ~ negative_choice_time,
  Review == "No Review" ~ noreview_choice_time)) %>%
  select(-c(positive_scenario_time, negative_scenario_time, noreview_scenario_time,  positive_choice_time, negative_choice_time, noreview_choice_time)) %>%
  filter(manipulation_check == 1 & attention_check == 7) %>%
  mutate(certainty = as.numeric(certainty), preference_strength = as.numeric(preference_strength), gender = as.numeric(gender), age = as.numeric(age), `initial_timing_Page Submit` = as.numeric(`initial_timing_Page Submit`)) %>%
  filter(`initial_timing_Page Submit` >= 2)
## Parsed with column specification:
## cols(
##   .default = col_character()
## )
## See spec(...) for full column specifications.
pos <- rawdata %>%
  filter(Review == "Positive") %>%
  select(-c(negative_choice,noreview_choice)) %>%
  rename("final_choice" = "positive_choice")

neg <- rawdata %>%
  filter(Review == "Negative") %>%
  select(-c(positive_choice,noreview_choice)) %>%
  rename("final_choice" = "negative_choice")

none <- rawdata %>%
  filter(Review == "No Review") %>%
  select(-c(positive_choice,negative_choice)) %>%
  rename("final_choice" = "noreview_choice")

sr_data2 <- rbind(pos,neg,none) %>%
  mutate(initial_choice = ifelse(initial_choice == 1, 1, 0)) %>%
  mutate(final_choice = ifelse(final_choice == 1, 1, 0)) 

# product preferences

sr_data2$durability <- ifelse(grepl(1, sr_data2$select_features), 1, 0)
sr_data2$comfort <- ifelse(grepl(2, sr_data2$select_features), 1, 0)
sr_data2$nicelywrite <- ifelse(grepl(3, sr_data2$select_features), 1, 0)
sr_data2$made <- ifelse(grepl(4, sr_data2$select_features), 1, 0)
sr_data2$specifications <- ifelse(grepl(5, sr_data2$select_features), 1, 0)
sr_data2$shipping <- ifelse(grepl(6, sr_data2$select_features), 1, 0)

sr_data2 <- sr_data2 %>%
  mutate(experiential_pref = (durability + comfort + nicelywrite)/3) %>%
  mutate(search_pref = (made + specifications + shipping)/3) %>%
  mutate(pref_most_type = ifelse(choose_feature <= 3, "Experiential","Search")) %>%
  mutate(favor_experience = experiential_pref - search_pref) %>%
  mutate(switch_choice = ifelse(initial_choice == final_choice,0,1)) %>%
  mutate(favor_experience = as.numeric(favor_experience))

write.csv(sr_data2, "single_review_exp2_clean.csv")

Load clean data

sr_data2 <- read_csv("single_review_exp2_clean.csv")
## Warning: Missing column names filled in: 'X1' [1]
## Parsed with column specification:
## cols(
##   .default = col_double(),
##   RecordedDate = col_datetime(format = ""),
##   ID = col_character(),
##   select_features = col_number(),
##   choose_feature_other = col_character(),
##   Review = col_character(),
##   pref_most_type = col_character()
## )
## See spec(...) for full column specifications.

Descriptive stats of target product choice

sr_data2 %>%
  group_by(Review) %>%
  summarise(
    initial_choice = mean(initial_choice, na.rm = TRUE),
    final_choice = mean(final_choice, na.rm = TRUE),
    n = n()
  )
## # A tibble: 3 x 4
##   Review    initial_choice final_choice     n
## * <chr>              <dbl>        <dbl> <int>
## 1 Negative           0.539        0.785   980
## 2 No Review          0.535        0.541   981
## 3 Positive           0.523        0.628   965
# switching

sr_data2 %>%
count(initial_choice)
## # A tibble: 2 x 2
##   initial_choice     n
## *          <dbl> <int>
## 1              0  1368
## 2              1  1558
sr_data2 %>%
filter(initial_choice == 0) %>%
group_by(Review) %>%
count(switch_choice) %>%
mutate(switch_choice = ifelse(switch_choice == 0,"did not switch","switched to target"))
## # A tibble: 6 x 3
## # Groups:   Review [3]
##   Review    switch_choice          n
##   <chr>     <chr>              <int>
## 1 Negative  did not switch       205
## 2 Negative  switched to target   247
## 3 No Review did not switch       423
## 4 No Review switched to target    33
## 5 Positive  did not switch       337
## 6 Positive  switched to target   123

Hypothesis 1. Consumers’ product choice will be influenced by a single positive or negative product review

Analysis 1. We will first examine whether people are more likely to choose the target product as their final choice as compared to the initial choice (when no reviews are present). To do so, we will calculate McNemar’s tests comparing the proportion of individuals who selected the target product between initial and final choices for each of the three review conditions (i.e., positive, negative, no review).

sr_data2 %>%
  group_by(Review) %>%
  count(initial_choice)
## # A tibble: 6 x 3
## # Groups:   Review [3]
##   Review    initial_choice     n
##   <chr>              <dbl> <int>
## 1 Negative               0   452
## 2 Negative               1   528
## 3 No Review              0   456
## 4 No Review              1   525
## 5 Positive               0   460
## 6 Positive               1   505
sr_data2 %>%
  group_by(Review) %>%
  count(final_choice)
## # A tibble: 6 x 3
## # Groups:   Review [3]
##   Review    final_choice     n
##   <chr>            <dbl> <int>
## 1 Negative             0   211
## 2 Negative             1   769
## 3 No Review            0   450
## 4 No Review            1   531
## 5 Positive             0   359
## 6 Positive             1   606
# no review: McNemar's chi-squared = 5.6164, df = 1, p-value = 0.01779

choice_no_reviews <-
matrix(c(456, 450, 525, 531),
       nrow = 2,
       dimnames = list(
                       "choice_time" = c("initial_choice", "final_choice"),
                       "product_choice" = c("choose_other", "choose_target")))

mcnemar.test(choice_no_reviews)
## 
##  McNemar's Chi-squared test with continuity correction
## 
## data:  choice_no_reviews
## McNemar's chi-squared = 5.6164, df = 1, p-value = 0.01779
# positive review: McNemar's chi-squared = 24.334, df = 1, p-value = 8.098e-07

choice_positive <-
matrix(c(460, 359, 505, 606),
       nrow = 2,
       dimnames = list(
                       "choice_time" = c("initial_choice", "final_choice"),
                       "product_choice" = c("choose_other", "choose_target")))

mcnemar.test(choice_positive)
## 
##  McNemar's Chi-squared test with continuity correction
## 
## data:  choice_positive
## McNemar's chi-squared = 24.334, df = 1, p-value = 8.098e-07
# negative review: McNemar's chi-squared = 135.12, df = 1, p-value < 2.2e-16

choice_negative <-
matrix(c(452, 211, 528, 769),
       nrow = 2,
       dimnames = list(
                       "choice_time" = c("initial_choice", "final_choice"),
                       "product_choice" = c("choose_other", "choose_target")))

mcnemar.test(choice_negative)
## 
##  McNemar's Chi-squared test with continuity correction
## 
## data:  choice_negative
## McNemar's chi-squared = 135.12, df = 1, p-value < 2.2e-16

Analysis 2. We will also examine whether people are more likely to choose the target product as their final choice when provided a positive or negative single product review as compared to no review. We will run a logistic regression predicting if review condition affects the likelihood of choosing the target product as the final choice, controlling for demographics (age and gender).

# set referent condition as 'control' (no reviews)

sr_data2 <- within(sr_data2, Review <- as.factor(Review)) 
sr_data2 <- within(sr_data2, Review <- relevel(Review, ref = "No Review"))

# logistic regression
sr_data2 %>%
gather("choice_time", "choose_target", c(initial_choice, final_choice)) %>%
glm(choose_target ~  Review*choice_time + age + gender, data = ., family = binomial) %>%
   summary(.)
## 
## Call:
## glm(formula = choose_target ~ Review * choice_time + age + gender, 
##     family = binomial, data = .)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.7795  -1.2369   0.7016   1.1101   1.1707  
## 
## Coefficients:
##                                          Estimate Std. Error z value Pr(>|z|)
## (Intercept)                               0.15833    0.09506   1.666  0.09579
## ReviewNegative                            1.12628    0.10077  11.176  < 2e-16
## ReviewPositive                            0.36294    0.09256   3.921 8.81e-05
## choice_timeinitial_choice                -0.02461    0.09058  -0.272  0.78583
## age                                       0.01149    0.02116   0.543  0.58718
## gender                                   -0.04257    0.05438  -0.783  0.43382
## ReviewNegative:choice_timeinitial_choice -1.11455    0.13551  -8.225  < 2e-16
## ReviewPositive:choice_timeinitial_choice -0.40724    0.12972  -3.139  0.00169
##                                             
## (Intercept)                              .  
## ReviewNegative                           ***
## ReviewPositive                           ***
## choice_timeinitial_choice                   
## age                                         
## gender                                      
## ReviewNegative:choice_timeinitial_choice ***
## ReviewPositive:choice_timeinitial_choice ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 7900.2  on 5841  degrees of freedom
## Residual deviance: 7678.0  on 5834  degrees of freedom
##   (10 observations deleted due to missingness)
## AIC: 7694
## 
## Number of Fisher Scoring iterations: 4
# graph
sr_data2 %>%
  group_by(Review) %>%
  gather("choice_time", "choose_target", c(initial_choice, final_choice)) %>%
  group_by(Review, choice_time) %>%
  summarise(Prop = mean(choose_target),  
            sd = sqrt((sum(choose_target==1)/n())*(1-(sum(choose_target==1)/n()))),
            n = n(), 
            SE = ((sum(choose_target==1)/n())*(1-(sum(choose_target==1)/n())))/sqrt(n())) %>%
ggplot(.) + aes(x = reorder(Review, Prop), y = Prop, fill = reorder(choice_time, Prop)) +
      geom_bar(stat = "summary", fun.y = "mean", position=position_dodge2(preserve = "single")) + xlab("Review Condition") + 
       ylab("Proportion Select Target Product") + theme_classic() + theme(legend.position="bottom", legend.title = element_blank()) + labs(x = NULL) + geom_errorbar(aes(ymin=Prop-SE, ymax=Prop+SE), position = position_dodge(width = .9), width=.1) + geom_text(aes(label=round(Prop,digits=2)), position=position_dodge(width=.9), vjust=5) + scale_x_discrete(labels = c("No Reivew","Positive Review","Negative Review")) + scale_fill_manual(values=c( "#c3caa7","#64a49d"), labels = c("Initial Choice", "Final Choice"))
## `summarise()` has grouped output by 'Review'. You can override using the `.groups` argument.

ggsave(file="pen-choice-exp2.jpeg", width=8, height=4)

Next, we will filter the data to only those subjects who did not select the “target product” (i.e., a positive review on product 1 and a negative review on product 2 are both intended to nudge the consumer towards the “target” product 1) as their initial choice, before any reviews were shown. This is because only those who did not originally choose the target would have the opportunity to be swayed by a review for the second choice point.

Analysis 3. We will examine whether consumer uncertainty, preference strength, and value of experiential (over search) features predict people’s decision to switch to the target product as their final choice, after seeing a single review. The dependent variable will be whether they switched from the non-target product at their initial choice to the target product as their final choice. We will use a logistic regression predicting product choice by each of the individual difference factors (consumer uncertainty, consumer preference strength, and consumer value of experiential features), review condition (negative and positive coded as “with review” and compared to the “no review” referent condition), the interaction between review condition and each of the individual difference factors (e.g., uncertainty * review condition), while controlling for demographics (age and gender).

Table Separate by neg v. pos

# Correlations amongst individual difference factors: raw scores

ind_differences <- sr_data2 %>%
  select(certainty,preference_strength, favor_experience)

cor.plot(ind_differences)

apa.cor.table(ind_differences, filename = "cortable_raw.doc", table.number = 2, show.conf.interval = TRUE, landscape = TRUE)
## 
## 
## Table 2 
## 
## Means, standard deviations, and correlations with confidence intervals
##  
## 
##   Variable               M    SD   1           2           
##   1. certainty           3.77 0.98                         
##                                                            
##   2. preference_strength 3.91 1.46 .48**                   
##                                    [.45, .51]              
##                                                            
##   3. favor_experience    0.03 0.44 -.00        -.07**      
##                                    [-.04, .04] [-.10, -.03]
##                                                            
## 
## Note. M and SD are used to represent mean and standard deviation, respectively.
## Values in square brackets indicate the 95% confidence interval.
## The confidence interval is a plausible range of population correlations 
## that could have caused the sample correlation (Cumming, 2014).
## * indicates p < .05. ** indicates p < .01.
## 
# logistic regression

sr_data2 %>%
filter(initial_choice == 0) %>%
mutate(with_review = ifelse(Review == "No Review",0,1)) %>%
glm(switch_choice ~  with_review*certainty + with_review*preference_strength + with_review*experiential_pref + age + gender, data = ., family = binomial) %>%
summary(.)
## 
## Call:
## glm(formula = switch_choice ~ with_review * certainty + with_review * 
##     preference_strength + with_review * experiential_pref + age + 
##     gender, family = binomial, data = .)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.4596  -0.9415  -0.4118   1.1529   2.5757  
## 
## Coefficients:
##                                 Estimate Std. Error z value Pr(>|z|)   
## (Intercept)                     -1.19405    0.69792  -1.711  0.08711 . 
## with_review                      2.18501    0.74451   2.935  0.00334 **
## certainty                       -0.05429    0.19029  -0.285  0.77543   
## preference_strength             -0.20661    0.14192  -1.456  0.14543   
## experiential_pref               -0.06945    0.51635  -0.134  0.89301   
## age                             -0.13681    0.05251  -2.605  0.00918 **
## gender                           0.04362    0.13089   0.333  0.73893   
## with_review:certainty           -0.15001    0.20628  -0.727  0.46710   
## with_review:preference_strength  0.10433    0.15155   0.688  0.49119   
## with_review:experiential_pref    0.39449    0.55295   0.713  0.47558   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1657.2  on 1365  degrees of freedom
## Residual deviance: 1431.9  on 1356  degrees of freedom
##   (2 observations deleted due to missingness)
## AIC: 1451.9
## 
## Number of Fisher Scoring iterations: 5
# graph (separate no review, negative review, positive review)

sr_data2 %>%
  filter(initial_choice == 0) %>%
  mutate(z_certainty = ((certainty - mean(certainty))/sd(certainty))) %>%
  mutate(z_preference_strength = ((preference_strength - mean(preference_strength))/sd(preference_strength))) %>%
  mutate(favor_experience_pos = favor_experience + 1) %>%
  mutate(z_favor_experience = ((favor_experience_pos - mean(favor_experience_pos))/sd(favor_experience_pos))) %>%
  gather("individual_diff_factor","z_score",c(z_certainty,z_preference_strength,z_favor_experience)) %>%
  ggplot() + aes(x = z_score, y = switch_choice, color = factor(individual_diff_factor), group = individual_diff_factor) +
  labs(x = "Standardized Score", y = "Proportion Switched Choice to Target Product", color = "Individual Difference Metric") +  geom_smooth(method = "lm")  +  theme_classic() + theme(legend.position = "bottom") + scale_color_manual(values=c("#CC6666", "#9999CC", "#66CC99","#5dBAE8"), labels=c("Certainty","Favor Experience","Preference")) + facet_wrap(vars(Review)) %>%
  print()
## <ggproto object: Class FacetWrap, Facet, gg>
##     compute_layout: function
##     draw_back: function
##     draw_front: function
##     draw_labels: function
##     draw_panels: function
##     finish_data: function
##     init_scales: function
##     map_data: function
##     params: list
##     setup_data: function
##     setup_params: function
##     shrink: TRUE
##     train_scales: function
##     vars: function
##     super:  <ggproto object: Class FacetWrap, Facet, gg>

# graph (no review vs with review)

sr_data2 %>%
  filter(initial_choice == 0) %>%
  mutate(with_review = ifelse(Review == "No Review","No Review","With Review")) %>%
  mutate(z_certainty = ((certainty - mean(certainty))/sd(certainty))) %>%
  mutate(z_preference_strength = ((preference_strength - mean(preference_strength))/sd(preference_strength))) %>%
  mutate(favor_experience_pos = favor_experience + 1) %>%
  mutate(z_favor_experience = ((favor_experience_pos - mean(favor_experience_pos))/sd(favor_experience_pos))) %>%
  gather("individual_diff_factor","z_score",c(z_certainty,z_preference_strength,z_favor_experience)) %>%
  ggplot() + aes(x = z_score, y = switch_choice, color = factor(individual_diff_factor), group = individual_diff_factor) +
  labs(x = "Standardized Score", y = "Proportion Switched Choice to Target Product", color = "Individual Difference Metric") +  geom_smooth(method = "lm")  +  theme_classic() + theme(legend.position = "bottom") + scale_color_manual(values=c("#CC6666", "#9999CC", "#66CC99","#5dBAE8"), labels=c("Certainty","Favor Experience","Preference")) + facet_wrap(vars(with_review)) %>%
  print()
## <ggproto object: Class FacetWrap, Facet, gg>
##     compute_layout: function
##     draw_back: function
##     draw_front: function
##     draw_labels: function
##     draw_panels: function
##     finish_data: function
##     init_scales: function
##     map_data: function
##     params: list
##     setup_data: function
##     setup_params: function
##     shrink: TRUE
##     train_scales: function
##     vars: function
##     super:  <ggproto object: Class FacetWrap, Facet, gg>

Exploratory logistic regressions investigating switching by review type

# no review switching (not significant)
sr_data2 %>%
filter(initial_choice == 0) %>%
mutate(with_review = ifelse(Review == "No Review",0,1)) %>%
filter(with_review == 0) %>%
glm(switch_choice ~ certainty + preference_strength + experiential_pref + age + gender, data = ., family = binomial) %>%
summary(.)
## 
## Call:
## glm(formula = switch_choice ~ certainty + preference_strength + 
##     experiential_pref + age + gender, family = binomial, data = .)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -0.6064  -0.4088  -0.3645  -0.2958   2.5816  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)
## (Intercept)         -1.21027    0.80194  -1.509    0.131
## certainty           -0.04218    0.19029  -0.222    0.825
## preference_strength -0.20453    0.14121  -1.448    0.147
## experiential_pref   -0.08217    0.51403  -0.160    0.873
## age                 -0.02322    0.15510  -0.150    0.881
## gender              -0.56127    0.35032  -1.602    0.109
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 236.87  on 455  degrees of freedom
## Residual deviance: 230.60  on 450  degrees of freedom
## AIC: 242.6
## 
## Number of Fisher Scoring iterations: 5
# with review switching 

sr_data2 %>%
filter(initial_choice == 0) %>%
mutate(with_review = ifelse(Review == "No Review",0,1)) %>%
filter(with_review == 1) %>%
glm(switch_choice ~ certainty + preference_strength + favor_experience + age + gender, data = ., family = binomial) %>%
summary(.)
## 
## Call:
## glm(formula = switch_choice ~ certainty + preference_strength + 
##     favor_experience + age + gender, family = binomial, data = .)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.4841  -1.0197  -0.8419   1.2633   1.7267  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)    
## (Intercept)          1.12537    0.32983   3.412 0.000645 ***
## certainty           -0.20816    0.07986  -2.607 0.009140 ** 
## preference_strength -0.09861    0.05355  -1.842 0.065523 .  
## favor_experience     0.23384    0.15228   1.536 0.124647    
## age                 -0.15082    0.05582  -2.702 0.006900 ** 
## gender               0.15953    0.14225   1.121 0.262105    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1229.6  on 909  degrees of freedom
## Residual deviance: 1197.6  on 904  degrees of freedom
##   (2 observations deleted due to missingness)
## AIC: 1209.6
## 
## Number of Fisher Scoring iterations: 4
sr_data2 %>%
filter(initial_choice == 0) %>%
mutate(with_review = ifelse(Review == "No Review",0,1)) %>%
filter(with_review == 1) %>%
glm(switch_choice ~ certainty + preference_strength + pref_most_type + age + gender, data = ., family = binomial) %>%
summary(.)
## 
## Call:
## glm(formula = switch_choice ~ certainty + preference_strength + 
##     pref_most_type + age + gender, family = binomial, data = .)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.5103  -1.0212  -0.8427   1.2466   1.7403  
## 
## Coefficients:
##                      Estimate Std. Error z value Pr(>|z|)    
## (Intercept)           1.31322    0.33888   3.875 0.000107 ***
## certainty            -0.21120    0.07995  -2.642 0.008248 ** 
## preference_strength  -0.09431    0.05362  -1.759 0.078624 .  
## pref_most_typeSearch -0.31678    0.14001  -2.263 0.023658 *  
## age                  -0.16084    0.05601  -2.872 0.004085 ** 
## gender                0.16363    0.14245   1.149 0.250692    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1229.6  on 909  degrees of freedom
## Residual deviance: 1194.8  on 904  degrees of freedom
##   (2 observations deleted due to missingness)
## AIC: 1206.8
## 
## Number of Fisher Scoring iterations: 4
# no gender/age

sr_data2 %>%
filter(initial_choice == 0) %>%
mutate(with_review = ifelse(Review == "No Review",0,1)) %>%
filter(with_review == 1) %>%
glm(switch_choice ~ certainty + preference_strength + favor_experience, data = ., family = binomial) %>%
summary(.)
## 
## Call:
## glm(formula = switch_choice ~ certainty + preference_strength + 
##     favor_experience, family = binomial, data = .)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.4537  -1.0226  -0.8692   1.2761   1.6641  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)   
## (Intercept)          0.77609    0.27738   2.798  0.00514 **
## certainty           -0.19734    0.07922  -2.491  0.01273 * 
## preference_strength -0.10793    0.05321  -2.028  0.04253 * 
## favor_experience     0.23811    0.15139   1.573  0.11576   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1231.7  on 911  degrees of freedom
## Residual deviance: 1208.3  on 908  degrees of freedom
## AIC: 1216.3
## 
## Number of Fisher Scoring iterations: 4
sr_data2 %>%
filter(initial_choice == 0) %>%
mutate(with_review = ifelse(Review == "No Review",0,1)) %>%
filter(with_review == 1) %>%
glm(switch_choice ~ certainty + preference_strength + pref_most_type, data = ., family = binomial) %>%
summary(.)
## 
## Call:
## glm(formula = switch_choice ~ certainty + preference_strength + 
##     pref_most_type, family = binomial, data = .)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.3995  -1.0149  -0.8645   1.2615   1.6166  
## 
## Coefficients:
##                      Estimate Std. Error z value Pr(>|z|)   
## (Intercept)           0.91941    0.28477   3.229  0.00124 **
## certainty            -0.19939    0.07925  -2.516  0.01187 * 
## preference_strength  -0.10584    0.05324  -1.988  0.04680 * 
## pref_most_typeSearch -0.27853    0.13875  -2.007  0.04471 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 1231.7  on 911  degrees of freedom
## Residual deviance: 1206.7  on 908  degrees of freedom
## AIC: 1214.7
## 
## Number of Fisher Scoring iterations: 4
# with review switching, split by review valence
sr_data2 %>%
filter(initial_choice == 0) %>%
filter(Review == "Positive") %>%
glm(switch_choice ~ certainty + preference_strength + favor_experience, data = ., family = binomial) %>%
summary(.)
## 
## Call:
## glm(formula = switch_choice ~ certainty + preference_strength + 
##     favor_experience, family = binomial, data = .)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.3242  -0.8367  -0.6470   1.2618   2.0390  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)  
## (Intercept)          0.45782    0.42182   1.085   0.2778  
## certainty           -0.19525    0.12441  -1.569   0.1165  
## preference_strength -0.20107    0.08723  -2.305   0.0212 *
## favor_experience     0.41562    0.23742   1.751   0.0800 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 534.20  on 459  degrees of freedom
## Residual deviance: 513.43  on 456  degrees of freedom
## AIC: 521.43
## 
## Number of Fisher Scoring iterations: 4
sr_data2 %>%
filter(initial_choice == 0) %>%
filter(Review == "Negative") %>%
glm(switch_choice ~ certainty + preference_strength + favor_experience , data = ., family = binomial) %>%
summary(.)
## 
## Call:
## glm(formula = switch_choice ~ certainty + preference_strength + 
##     favor_experience, family = binomial, data = .)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.5918  -1.2184   0.9317   1.1030   1.3347  
## 
## Coefficients:
##                     Estimate Std. Error z value Pr(>|z|)   
## (Intercept)          1.25719    0.40149   3.131  0.00174 **
## certainty           -0.19470    0.11089  -1.756  0.07911 . 
## preference_strength -0.08542    0.07261  -1.176  0.23941   
## favor_experience     0.13354    0.21363   0.625  0.53191   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 622.70  on 451  degrees of freedom
## Residual deviance: 614.22  on 448  degrees of freedom
## AIC: 622.22
## 
## Number of Fisher Scoring iterations: 4