Cultivation Theory suggests that prolonged exposure to media can shape an individual’s perceptions, attitudes, and behaviors over time. Traditionally applied to television, this framework is increasingly relevant in the age of smartphones and digital media. The more time individuals spend on their phones, the more their worldview, satisfaction, and emotional well-being may be influenced by the content they consume. Given the prevalence of smartphones as the primary mode of media engagement today, this study examines whether the number of hours spent on a phone is associated with self-reported happiness levels. Understanding this relationship can help identify potential risks of overuse and shed light on the broader psychological effects of digital media consumption.
Individuals who spend more hours on their phones will report higher levels of unhappiness.
The independent variable (IV) in this study was the number of hours participants reported spending on their phones, treated as a continuous measure. The dependent variable (DV) was unhappiness, also measured on a continuous scale, with higher scores indicating lower levels of happiness. To analyze the relationship between these variables, the dataset was first imported into R and prepared for analysis. Histograms were created to explore the distributions of both phone usage and unhappiness, ensuring the data met basic assumptions for regression. A simple linear regression model was then run to examine whether phone usage significantly predicted unhappiness levels. The results of this model provided an estimate of the direction and strength of the relationship. A scatterplot with a fitted regression line was generated to visualize the findings. Finally, potential outliers were identified using leverage statistics to determine if any influential cases disproportionately affected the results. The model’s regression coefficients and fit statistics were then summarized in tables to assess both the statistical significance and overall explanatory power of phone usage in predicting unhappiness.
The regression model tested the relationship between phone usage and unhappiness. Results provided an estimate of whether the slope (phone hours predicting unhappiness) was statistically significant. If the coefficient for phone hours was positive and significant (p < .05), it indicates that higher phone usage is associated with greater unhappiness, consistent with Cultivation Theory’s suggestion that extensive media exposure can negatively affect well-being.
If the slope was non-significant, this suggests that phone usage alone may not strongly predict unhappiness, implying that other variables (e.g., type of phone use, social support, or individual personality traits) might moderate this relationship.
Model fit (R²) reflects the proportion of variance in unhappiness explained by phone hours. A low R² would suggest phone use only explains a small fraction of happiness outcomes, whereas a higher R² indicates a stronger predictive power.
Overall, the findings contribute to ongoing discussions about the psychological consequences of digital media consumption. Whether significant or not, they highlight the importance of considering not just the quantity of media exposure (hours) but also the quality and context of usage in future research.
Leverage estimates for 10 largest outliers | |
Row # | Leverage |
---|---|
164 | 0.0303 |
360 | 0.0199 |
359 | 0.0190 |
371 | 0.0178 |
72 | 0.0170 |
265 | 0.0164 |
201 | 0.0152 |
392 | 0.0151 |
97 | 0.0151 |
44 | 0.0149 |
Regression Analysis Results | ||||
Coefficient Estimates | ||||
Term | Estimate | Std. Error | t | p-value |
---|---|---|---|---|
(Intercept) | 3.9888 | 1.5531 | 2.5683 | 0.0106 |
IV | 0.4206 | 0.0307 | 13.6953 | 0.0000 |
Model Fit Statistics | |||||
Overall Regression Performance | |||||
R-squared | Adj. R-squared | F-statistic | df (model) | df (residual) | Residual Std. Error |
---|---|---|---|---|---|
0.3203 | 0.3186 | 187.5609 | 1.0000 | 398.0000 | 4.1619 |
# ##################################################
# 1. Install and load required packages
##################################################
if (!require("tidyverse")) install.packages("tidyverse")
if (!require("gt")) install.packages("gt")
if (!require("gtExtras")) install.packages("gtExtras")
library(tidyverse)
library(gt)
library(gtExtras)
##################################################
# 2. Read in the dataset
##################################################
# Replace "YOURFILENAME.csv" with the actual filename
mydata <- read.csv("RegressionData.csv")
# ################################################
# # (Optional) 2b. Remove specific cases by row number
# ################################################
# # Example: remove rows 10 and 25
# rows_to_remove <- c(10, 25) # Edit and uncomment this line
# mydata <- mydata[-rows_to_remove, ] # Uncomment this line
##################################################
# 3. Define dependent variable (DV) and independent variable (IV)
##################################################
# Replace YOURDVNAME and YOURIVNAME with actual column names
mydata$DV <- mydata$Unhappiness
mydata$IV <- mydata$Hours
##################################################
# 4. Explore distributions of DV and IV
##################################################
# Make a histogram for DV
DVGraph <- ggplot(mydata, aes(x = DV)) +
geom_histogram(color = "black", fill = "#1f78b4")
# Make a histogram for IV
IVGraph <- ggplot(mydata, aes(x = IV)) +
geom_histogram(color = "black", fill = "#1f78b4")
##################################################
# 5. Fit and summarize initial regression model
##################################################
# Suppress scientific notation
options(scipen = 999)
# Fit model
myreg <- lm(DV ~ IV, data = mydata)
# Model summary
summary(myreg)
##################################################
# 6. Visualize regression and check for bivariate outliers
##################################################
# Create scatterplot with regression line as a ggplot object
RegressionPlot <- ggplot(mydata, aes(x = IV, y = DV)) +
geom_point(color = "#1f78b4") +
geom_smooth(method = "lm", se = FALSE, color = "red") +
labs(
title = "Scatterplot of DV vs IV with Regression Line",
x = "Independent Variable (IV)",
y = "Dependent Variable (DV)"
) +
theme_minimal()
##################################################
# 7. Check for potential outliers (high leverage points)
##################################################
# Calculate leverage values
hat_vals <- hatvalues(myreg)
# Rule of thumb: leverage > 2 * (number of predictors + 1) / n may be influential
threshold <- 2 * (length(coef(myreg)) / nrow(mydata))
# Create table showing 10 largest leverage values
outliers <- data.frame(
Obs = 1:nrow(mydata),
Leverage = hatvalues(myreg)
) %>%
arrange(desc(Leverage)) %>%
slice_head(n = 10)
# Format as a gt table
outliers_table <- outliers %>%
gt() %>%
tab_header(
title = "Leverage estimates for 10 largest outliers"
) %>%
cols_label(
Obs = "Row #",
Leverage = "Leverage"
) %>%
fmt_number(
columns = Leverage,
decimals = 4
)
##################################################
# 8. Create nicely formatted regression results tables
##################################################
# --- Coefficient-level results ---
reg_results <- as.data.frame(coef(summary(myreg))) %>%
tibble::rownames_to_column("Term") %>%
rename(
Estimate = Estimate,
`Std. Error` = `Std. Error`,
t = `t value`,
`p-value` = `Pr(>|t|)`
)
reg_table <- reg_results %>%
gt() %>%
tab_header(
title = "Regression Analysis Results",
subtitle = "Coefficient Estimates"
) %>%
fmt_number(
columns = c(Estimate, `Std. Error`, t, `p-value`),
decimals = 4
)
# --- Model fit statistics ---
reg_summary <- summary(myreg)
fit_stats <- tibble::tibble(
`R-squared` = reg_summary$r.squared,
`Adj. R-squared` = reg_summary$adj.r.squared,
`F-statistic` = reg_summary$fstatistic[1],
`df (model)` = reg_summary$fstatistic[2],
`df (residual)` = reg_summary$fstatistic[3],
`Residual Std. Error` = reg_summary$sigma
)
fit_table <- fit_stats %>%
gt() %>%
tab_header(
title = "Model Fit Statistics",
subtitle = "Overall Regression Performance"
) %>%
fmt_number(
columns = everything(),
decimals = 4
)
##################################################
# 9. Final print of key graphics and tables
##################################################
DVGraph
IVGraph
RegressionPlot
outliers_table
reg_table
fit_table