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