| Variable | Description |
|---|---|
| FOMO | FOMO Score (as measured by the 10-item FOMO scale) |
| Age | Age (in years) |
| N | Score on personality items assessing Neuroticism from the Big Five Inventory (BFI) |
| E | Score on personality items assessing Extraversion from the Big Five Inventory (BFI) |
| O | Score on personality items assessing Openness from the Big Five Inventory (BFI) |
| A | Score on personality items assessing Agreeableness from the Big Five Inventory (BFI) |
| C | Score on personality items assessing Conscientiousness from the Big Five Inventory (BFI) |
| TotalFollowers | Total Number of Instagram Followers |
05: Practice write-up
This week (and every fifth week this year), you’ll practice writing up the analysis that was developed live during lectures.
Your goal is to present your analysis in a journal-article-style Results section that a reader could reproduce in any statistical software, not just R.
Quick links to key flash cards:
The example write-ups that will be provided are not perfect.
You must not copy them directly for this write-up or any future assessment, as copying and presenting them as your own work would constitute academic misconduct. But you may refer to them for stylistic guidance.
- Open RStudio.
- Create a new .Rmd file for this week’s exercises.
- Save it somewhere you can find it again.
- Give it a clear name (for example,
dapr2_lab05.Rmd). - In the first code chunk, load the packages you’ll need this week (and install them if you don’t have them already):
tidyversepsychsjPlotkableExtrapatchwork
The data in FOMOdataset.csv contain eight attributes collected from a sample of \(n=3370\) hypothetical individuals across the UK, and include:
The data used for this write-up exercise are simulated, drawing on recent work on Fear of Missing Out (FOMO), socio-demographic factors, and the Big Five personality traits. The simulated data are based on the findings of this work, and acted to expand upon the methods and results reported in the following paper:
Rozgonjuk, D., Sindermann, C., Elhai, J. D., & Montag, C. (2021). Individual differences in Fear of Missing Out (FOMO): Age, gender, and the Big Five personality trait domains, facets, and items. Personality and Individual Differences, 171, 110546. https://doi.org/10.1016/j.paid.2020.110546
In the current study, participants were invited to an online study investigating the associations among FOMO, socio-demographic factors, and personality. The final sample comprised 3370 people. Participants completed a FOMO scale and a personality inventory. The 10-item FOMO scale measured the extent of experiencing apprehension regarding missing out on interesting events of others on a 5-point scale (1 = “not at all true of me” to 5 = “extremely true of me”), producing a possible range of scores between 10 and 50. The Big Five Inventory (BFI) is a 45-item personality assessment questionnaire (note that only 44 items were used to match the study above) that uses a five-point response scale (1 = “very inapplicable” to 5 = “very applicable”). The BFI consists of five domains: Neuroticism (8 items; possible range of scores 8-40), Extraversion (8 items; possible range of scores 8-40), Openness to Experience (10 items; possible range of scores 10-50), Agreeableness (9 items; possible range of scores 9-45), and Conscientiousness (9 items; possible range of scores 9-45). We extended the aforementioned study to include an extra socio-demographic variable - a measure of popularity on social media based on the number of followers. Unlike the original study, we do not have measures of gender, education level, or specific country of residence.
RQ1
RQ: How is people’s sense of Fear of Missing Out (FOMO) associated with their age and how many Instagram followers they have?
Specific predictions:
- As age increases, FOMO will decrease.
- As the number of Instagram followers increases, FOMO will increase.
This code should resemble the analysis developed during lectures this week.
# RQ1 example code ----
# Follows workflow here: dapr2/2627/dapr2_flashcards/resources/workflow.html
## Phase 1: Before model fitting ----
### 1a: Set up code and data ----
# Load required R packages
library(tidyverse) # for wrangling
library(psych) # for summarising
library(sjPlot) # for nice tables/plots
library(kableExtra) # for nicely-formatted tables
library(patchwork) # for combining plots into one graphic
# Read in data
fomo <- read_csv("https://uoepsy.github.io/data/FOMOdataset.csv")
# Tidy data if needed
glimpse(fomo) # all numeric, so we'll use psych::describe() to look for weird data
describe(fomo) # min and max look reasonable
table(is.na(fomo)) # no NAs
# good to continue!
### 1b: Set up the variables we'll model ----
# RQ: How is people's sense of Fear of Missing Out (FOMO) associated with their age and how many Instagram followers they have?
# Based on RQ, identify outcome variables and predictors.
# - Outcome: `FOMO`
# - Predictors: `Age`, `TotalFollowers`
# Based on RQ, decide whether to test hypotheses using coefficient significance tests or model comparison.
# - The RQ is about associations between variables, so we'll test it using significance test for coef estimates.
# Set up continuous predictors. (e.g., any transformations?)
# - One option might be to z-score Age and TotalFollowers.
# This would be an important step if Age = 0 and TotalFollowers = 0 were totally meaningless quantities (imagine Height = 0 or ShoeSize = 0 – impossible and nonexistent).
# But Age = 0 means an infant, and TotalFollowers = 0 means someone with no followers.
# So they are reasonable quantities to generate predictions for.
# Explore patterns in the data by plotting outcome and predictor variables together.
p_age <- fomo |>
ggplot(aes(x = Age, y = FOMO)) +
geom_point() +
geom_smooth(method = 'lm', se = FALSE)
p_age
p_followers <- fomo |>
ggplot(aes(x = TotalFollowers, y = FOMO)) +
geom_point() +
geom_smooth(method = 'lm', se = FALSE)
p_followers
p_age + p_followers # combine using patchwork
## Phase 2: Model fitting ----
# Write the mathematical model formulation for your model(s).
# $$
# \text{FOMO} = \beta_0 + (\beta_1 \cdot \text{Age}) + (\beta_2 \cdot \text{Followers}) + \epsilon
# $$
# Explicitly define the hypotheses that your RQ is aiming to test.
# $$
# \begin{align}
# H_0 &: \text{ All } \beta_j = 0 \text{ for } j = 1, 2 \\
# H_1 &: \text{ Any } \beta_j \neq 0 \\
# \end{align}
# $$
# Fit your model(s) using lm().
m1 <- lm(
FOMO ~ Age + TotalFollowers,
data = fomo
)
## Phase 3: After model fitting ----
### 3a: Plot and interpret model estimates ----
# Interpret the coefficient estimates (if appropriate for your RQ).
summary(m1)
confint(m1) |> round(2)
confint(m1) |> round(3) # for TotalFollowers
# - `Intercept`: The estimated FOMO score for someone aged zero with zero total followers is 26.52 points.
# - `Age`: Increasing one year of age is associated with a decrease in FOMO score of 0.17 points (holding follower count constant). This estimate is significantly different from zero (b = –0.17, 95% CI [–0.18, –0.15], p < .001).
# - prediction borne out!
# - `TotalFollowers`: Increasing one follower is associated with an increase in FOMO score of 0.018 points (holding age constant). This estimate is significantly different from zero (b = 0.018, 95% CI [0.016, 0.020], p < .001).
# - prediction borne out!
# - (rounded to 3 dp because otherwise estim and CI bounds are all 0.02)
# Generate a nicely-formatted regression table (if appropriate for your RQ).
tab_model(
m1,
dv.labels = 'Fear of missing out (FOMO)',
pred.labels = c("Age" = "Age (in years)"),
title = "RQ1: Linear model coefficient estimates"
)
# Plot model-fitted values (if appropriate for your RQ).
plot_model(
m1,
type = 'eff',
terms = c('Age', 'TotalFollowers'),
show.data = TRUE
)Set the scene (so the reader knows what you’re talking about).
Describe and show the sample data (so that the reader knows how generalisable your analysis might be).
Visualise and summarise data patterns that address the RQ (so the reader knows the basic pattern of what you found).
-
- Tip: If you transform any continuous predictors for analysis, use the transformed version of the predictor in the plot.
- Tip: In the caption, briefly explain what every geom in the plot represents. Especially error bars/shaded error ribbons! Always tell the reader what they show (standard deviation? standard error? 95% CI?).
- Tip: Academic writing styles vary, but Elizabeth likes it when figure captions give the reader a brief take-home message about what they should see in the plot.
-
- Tip: No inferential stats have been done yet, so we can’t make any claims just yet about whether the predictions were supported. But it is OK to say whether the results appear broadly in line with the prediction.
Introduce your statistical analysis (so the reader can interpret the numbers you will report).
Report the results of your analysis (so the reader knows exactly what you found).
-
- Tip: You don’t need to report every single parameter estimate. Focus on the one(s) you identified as being relevant to your prediction(s).
- Tip: Briefly link the direction and significance of the effect back to your earlier predictions—is the prediction supported by the parameter estimate?
Bonus challenge: RQ2
RQ: Do the Big 5 personality traits significantly predict FOMO, in addition to the effects of age and total Instagram followers?
This code should resemble the analysis developed during lectures this week.
## Phase 1: Before model fitting ----
### 1a: Set up code and data – DONE ----
### 1b: Set up the variables we'll model ----
# RQ: Do the Big 5 personality traits significantly predict FOMO, in addition to the effects of age and total Instagram followers?
# Based on RQ, identify outcome variables and predictors.
# - Outcome: `FOMO`
# - Predictors: `Age`, `TotalFollowers`, and each OCEAN variable
# Based on RQ, decide whether to test hypotheses using coefficient significance tests or model comparison.
# - The RQ asks whether multiple predictors predict an outcome jointly, so it's a model comparison question.
# Set up continuous predictors. (e.g., any transformations?)
# - One option might be to z-score the OCEAN variables.
# Zero is not very meaningful as-is.
# But we actually don't care about interpreting any of those coefficients, just whether their inclusion helps the model.
# So we can leave the OCEAN variables as-is too.
# (Emphasise: this is a choice that could be made either way – just justify it!)
# Explore patterns in the data by plotting outcome and predictor variables together.
# - you could accomplish the same thing by making five plots and patchworking
# them together, but this is a bit less repetitive
fomo |>
rename(
"Outgoingness" = O,
"Conscientiousness" = C,
"Extraversion" = E,
"Agreeableness" = A,
"Neuroticism" = N
) |>
pivot_longer(
cols = Neuroticism:Conscientiousness,
names_to = 'Trait',
values_to = 'Score'
) |>
ggplot(aes(x = Score, y = FOMO)) +
geom_point(alpha = 0.1) +
geom_smooth(method = 'lm', se = F) +
facet_wrap(~ Trait)
## Phase 2: Model fitting ----
# Write the mathematical model formulation for your model(s).
# - First model = model from RQ1. Second model:
# $$
# \text{FOMO} = \beta_0 +
# (\beta_1 \cdot \text{Age}) +
# (\beta_2 \cdot \text{Followers}) +
# (\beta_3 \cdot \text{O}) +
# (\beta_4 \cdot \text{C}) +
# (\beta_5 \cdot \text{E}) +
# (\beta_6 \cdot \text{A}) +
# (\beta_7 \cdot \text{N}) +
# \epsilon
# $$
# Explicitly define the hypotheses that your RQ is aiming to test.
# - The null hypothesis that corresponds to this model comparison is that none of Big 5 predictors are significantly associated with FOMO.
# $$
# \begin{align}
# H_0 &: \text{ All } \beta_j = 0 \text{ for } j = 3, 4, 5, 6, 7 \\
# H_1 &: \text{ Any } \beta_j \neq 0 \\
# \end{align}
# $$
# Fit your model(s) using lm().
m2 <- lm(
FOMO ~ Age + TotalFollowers + O + C + E + A + N,
data = fomo
)
## Phase 3: After model fitting ----
### 3a: Plot and interpret model estimates ----
# Compare models and interpret model comparison statistics (if appropriate for your RQ).
# - Because these models are nested, we can use the incremental F-test via the `anova()` function.
anova(m1, m2)Set the scene (so the reader knows what you’re talking about).
Describe and show the sample data (so that the reader knows how generalisable your analysis might be).
Visualise and summarise data patterns that address the RQ (so the reader knows the basic pattern of what you found).
-
- Tip: If you transform any continuous predictors for analysis, use the transformed version of the predictor in the plot.
- Tip: Academic writing styles vary, but Elizabeth likes it when figure captions give the reader a brief take-home message about what they should see in the plot.
-
- Tip: If you find yourself listing loads of numbers in the text, consider using tables or plots instead (and they’re better for your word count too!).
- Tip: No inferential stats have been done yet, so we can’t make any claims just yet about whether the predictions were supported. But it is OK to say whether the results appear broadly in line with the prediction.
Introduce your statistical analysis (so the reader can interpret the numbers you will report).
Report the results of your analysis (so the reader knows exactly what you found).
-
- Tip: You don’t need to report every single parameter estimate. Focus on the one(s) you identified as being relevant to your prediction(s).
- Tip: Briefly link the direction and significance of the effect back to your earlier predictions—is the prediction supported by the parameter estimate?





