Cultivation theory says that watching or using media for a long time can change the way people think and see the world. At first, this idea was about television, but it also makes sense with social media since many people are on their phones a lot. This study looks at whether spending more hours on a phone each week makes people feel less happy. The research measures phone time as one factor and self-reported unhappiness, scored on a scale of 50, as the other factor. Overall, it tests if using media too much can lead to more negative feelings and experiences.
People who spend more time on their phones each week will report feeling less happy. In other words, higher screen time is expected to connect with higher scores on the halfway and higher mark on an unhappiness scale. Those with lower phone use should have lower unhappiness scores compared to heavy users.
In this study, 400 people took part by reporting their weekly screen time and then filling out a survey about their unhappiness. Unhappiness was the dependent variable, and it was measured on a 50-point self-report scale. Weekly screen time was the independent variable, recorded in hours from participants’ phones. To test the relationship, a bivariate linear regression was used. This analysis examined if spending more time on screens each week could significantly predict higher levels of unhappiness.
The graphs and tables show that people who spent more time on their phones each week also reported feeling more unhappy. The scatter plot makes this clear, with an upward slope showing that higher screen time connects to higher unhappiness scores. The linear regression confirmed this pattern, finding a strong positive relationship between the two variables. The results were highly significant, as shown by the high t-value and very low p-value, meaning the findings are not likely due to chance. These results support cultivation theory, which says that greater media use can shape how people feel and see the world. Overall, the study shows that heavy media exposure may negatively affect emotional well-being.
Leverage estimates for 10 largest outliers | |
Row # | Leverage |
---|---|
164 | 0.0305 |
360 | 0.0207 |
359 | 0.0194 |
371 | 0.0174 |
72 | 0.0162 |
201 | 0.0159 |
265 | 0.0159 |
392 | 0.0148 |
44 | 0.0144 |
97 | 0.0144 |
Regression Analysis Results | ||||
Coefficient Estimates | ||||
Term | Estimate | Std. Error | t | p-value |
---|---|---|---|---|
(Intercept) | 23.2076 | 2.2026 | 10.5363 | 0.0000 |
IV | 0.8440 | 0.0630 | 13.4056 | 0.0000 |
Model Fit Statistics | |||||
Overall Regression Performance | |||||
R-squared | Adj. R-squared | F-statistic | df (model) | df (residual) | Residual Std. Error |
---|---|---|---|---|---|
0.3111 | 0.3093 | 179.7107 | 1.0000 | 398.0000 | 9.7373 |
##################################################
# 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("Cultivation.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$pct
mydata$IV <- mydata$video
##################################################
# 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