In this study, we examined how degrees of Taylor Swift fandom impacts people’s moral reasoning processes. Participants were be randomly assigned to two experimental conditions. In the first, control condition, they saw information related to a behavior some view as morally problematic (excessive private jet use, pollution) by a famous celebrity (Taylor Swift). They were asked to rate the perceived morality (or immorality) of this behavior.
Another group will view the same information but with a weak reason for excusing this behavior provided (other celebrities pollute more). We predict an interaction between Taylor Swift fandom and whether a weak excuse was offered for her behavior on participants’ morality judgments.
We predict that, as fandom of Taylor Swift increases, the more moral they will find her jet use when a weak excuse is given.
This prediction would be consistent with cognitive dissonance theory (Festinger, 1957). According to cognitive dissonance theory, people experience discomfort when they experience conflicting cognitions. For instance, stronger Taylor Swift fans might have to process the two ideas that “I love Taylor Swift” and “Taylor Swift does a bad thing.” The resulting discomfort from these conflicting ideas motivates people to justify or rationalize their beliefs (or behaviors) in a way that will reduce the discomfort and create more feelings of consistency.
In the present study, participants who are stronger fans of Taylor Swift are predicted to experience cognitive dissonance in both conditions (no excuse, excuse provided). However, in the condition where an excuse is provided, participants will have an immediate justification available to reduce their feelings of cognitive dissonance. By contrast, participants in the control group, where no excuse is provided, will have to reduce dissonance on their own, either by justifying Taylor Swift’s behavior through their own effort or by acknowledging the immorality of her jet fuel use to some degree and rate it, on average, as being less moral compared to Taylor Swift fans in the experimental group (where an excuse is provided).
First, I import the data and remove instances where the lab was still refining/editing the survey (i.e., “Survey Preview”) or where Qualtrics puts those extra header rows.
co2 <- read.csv("CO2_June 19, 2024_14.13.csv")
co2=subset(co2,co2$Status != "Survey Preview") # Don't keep any "Survey Preview" rows
co2=co2[-c(1:2),]
Next, we recode the the moral question so that, e.g., “Very immoral” answers are turned to “1”, “Slightly immoral” is turned to “2”, and so on. We end by scaling the row means for the moral questions. This makes it to where they will have a mean of 0 and standard deviation of 1.
moral=cbind(
as.numeric(car::recode(co2$moral1, "'Very immoral'=1; 'Slightly immoral'=2; 'Neither moral nor immoral'=3; 'Slightly moral'=4; 'Very moral'=5;")),
as.numeric(car::recode(co2$moral2, "'Very problematic'=1; 'Slightly problematic'=2; 'Neither unproblematic nor problematic'=3; 'Slightly unproblematic'=4; 'Very unproblematic'=5;")),
as.numeric(car::recode(co2$moral3, "'Very wrong'=1; 'Slightly wrong'=2; 'Neither right nor wrong'=3; 'Slightly right'=4; 'Very right'=5;"))
)
moral=scale(rowMeans(moral))
Do the same thing for the fandomm questions:
fandom=cbind(
as.numeric(car::recode(co2$fan1, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7")),
as.numeric(car::recode(co2$fan2, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7")),
as.numeric(car::recode(co2$fan3, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7")),
8-as.numeric(car::recode(co2$fan4.R, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7")),
as.numeric(car::recode(co2$fan5, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7"))
)
fandom=scale(rowMeans(fandom))
Add these new recoded, averaged, scaled variables back into the dataframe “co2” for easier access later.
co2$moral=moral
co2$fandom=fandom
We want to know if people’s moral judgments of Taylor Swift’s CO2 use “moral” depends on one’s fandom of Taylor Swift and whether they were in the control or experimental condition “condition”. The “moral” variable is lower when people judged her CO2 use as more immoral and higher when people judged it as more moral/permissible. In fact, we want to know if “fandom” and “condition” interact. So we have “moral” predicted by the interaction: “fandom*condition”. We save this model as “mod1” for later use.
mod1=lm(moral~fandom*condition,co2)
summary(mod1)
##
## Call:
## lm(formula = moral ~ fandom * condition, data = co2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.86488 -0.76403 0.00773 0.65144 2.72872
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.25323 0.09572 -2.645 0.008822 **
## fandom 0.21538 0.09511 2.264 0.024641 *
## conditionnot.even 0.46399 0.13274 3.496 0.000585 ***
## fandom:conditionnot.even 0.04563 0.13300 0.343 0.731895
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9368 on 196 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.1189, Adjusted R-squared: 0.1054
## F-statistic: 8.816 on 3 and 196 DF, p-value: 1.642e-05
The “(Intercept)” represents the predicted morality judgments for people who have “average” levels of Taylor Swift fandom who are in the control condition. Since R dummy codes everything alphabetically, 0 = “control” and 1 = “cannot.even”. I don’t know why I nicknamed the experimental condition “cannot.even”, but that’s what I did. The fact that the intercept is statistically significant only means that it’s probably not 0. Whoopdie doo.
The coefficient for “fandom” is positive and statistically significant. For every 1 standard deviation increase in Taylor Swift fandom there is about 0.21538 standard deviations increase in judgments of morality. So, the more of a Taylor Swift fan someone is, the more permissible they think her CO2 use is.
The coefficient for the experimental condition was also positive and significant. This means that, the predicted change in morality judgments increase by 0.46399 standard deviations when we move from the control condition to the experimental condition. That’s a pretty big change!
Unfortunately, our predicted interaction was not statistically significant. p was equal to 0.731895. Thus, we cannot infer that the rate at which fandom influences moral judgments are different between the control and experimental conditions.
Final note, \(R^2\) was 0.1189. So the model can account for about 12% of the total variation in morality judmgents. In the behavioral sciences… that’s not bad. Not bad at all.
So the interaction term wasn’t signficant, but p-values are only one side of the story. They only tell you how likely the data are when you assume the null hypothesis is true. But that’s not necessarily my only question. Another of my questions is: Which is more likely, that there is an interaction or that there’s no interaction? Which “model” fits the data better? Bayes factors can help with that. I calculate an approximation of a Bayes factor below:
null.mod=lm(moral~fandom+condition,co2)
bf01=exp((BIC(mod1)-BIC(null.mod))/2)
bf01
## [1] 13.31803
\(BF_{01}\) represents the relative likelihood of the data when the null hypothesis (no interactions) is assumed versus when the alternative (with interactions). \(BF_{01}\) turned out to be 13.31803, which means that the data are about thirteen times more likely in the null model than in the alternative model. Based on our present data, then, we really can feel confident that there is no interaction.
It’s bad to deviate from your planned analyses in order to achieve a desired result. Our interaction between fandom and experimental condition is a desired results. Honestly, I’m hoping after I do a few justifiable things coming up, that this result will appear. If you do things like this, you should be transparent about it. Or, in our case, we have a pre-registration of the study, so people could theoretically figure out that we deviated from the original plan. Also, I just want to explore the data some more and learn a bit more about this fandom stuff.
The code below creates variables for people attitudes in general towards CO2 use “co2.att”, cleans up the age and gender data, and their politics “pols”. The higher “pols” is, the more conservative they are.
co2.att=cbind(
as.numeric(car::recode(co2$CO2.1, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7")),
as.numeric(car::recode(co2$CO2.2, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7")),
8-as.numeric(car::recode(co2$CO2.3.R, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7")),
as.numeric(car::recode(co2$CO2.4, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7")),
as.numeric(car::recode(co2$CO2.5, "'Strongly disagree'=1; 'Disagree'=2; 'Somewhat disagree'=3; 'Neither agree nor disagree'=4; 'Somewhat agree'=5; 'Agree'=6; 'Strongly agree'=7")),
as.numeric(car::recode(co2$CO2.6, "'Very unimportant'=1; 'Somewhat unimportant'=2; 'Neither important nor unimportant'=3; 'Somewhat important'=4; 'Very important'=5;")),
as.numeric(car::recode(co2$CO2.7, "'Very unworried'=1; 'Somewhat unworried'=2; 'Neither worried nor unworried'=3; 'Somewhat worried'=4; 'Very worried'=5"))
)
co2.att=scale(rowMeans(co2.att))
co2$age=as.numeric(co2$age)
co2$female=ifelse(co2$gender=="Female",1,0)
pols=cbind(
as.numeric(car::recode(co2$politics, "'Very liberal'=1; 'Somewhat liberal'=2; 'Neutral, independent'=3; 'Somewhat conservative'=4; 'Very conservative'=5"))
)
co2$pols=scale(pols)
Below, we redo the model from before, where moral judgments are predicted based on fandom, condition, and the interaction between the two. However, we also add CO2 attitudes, age, gender, and political affiliation into the model as covariates.
mod2=lm(moral~fandom*condition+co2.att+age+female+pols
,co2)
summary(mod2)
##
## Call:
## lm(formula = moral ~ fandom * condition + co2.att + age + female +
## pols, data = co2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.44255 -0.56336 -0.03838 0.51099 2.58673
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1.050461 0.204496 -5.137 6.84e-07 ***
## fandom 0.226557 0.082995 2.730 0.006928 **
## conditionnot.even 0.409608 0.114784 3.568 0.000453 ***
## co2.att -0.197175 0.074161 -2.659 0.008505 **
## age 0.019895 0.004926 4.039 7.77e-05 ***
## female 0.174101 0.118148 1.474 0.142230
## pols 0.227198 0.073415 3.095 0.002264 **
## fandom:conditionnot.even 0.121266 0.114989 1.055 0.292942
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.807 on 192 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.3595, Adjusted R-squared: 0.3362
## F-statistic: 15.4 on 7 and 192 DF, p-value: 6.123e-16
Fandom is still a statistically significant, positive predictor of moral judgments. The more of a Taylor Swift fan you are, the more permissible you think her CO2 use is. People in the experimental condition “conditionnot.even” still find her CO2 use way more permissible than people in the control condition.
People who have more negative attitudes towards CO2 use (higher “co2.att”) think Taylor Swift’s CO2 use is less permissible. The older someone is, the more permissible they think the CO2 use is. Men and women do not differ in their moral judgments because p is above .05.
(Strictly speaking, I should say that “women and non-women” because I dummy coded women as 1 and left everything else as 0, including people with gender identities other than “Male”)
We also find that higher conservatism is associated with more judgments of moral permissibly.
Even after “adjusting for” all these other variables, the interaction is still not signficant!