Less-Than-A-Thousand-Words Research Article

How Does Food Hardship Relate to Financial Well-Being and Subjective Well-Being?

Photo by Steve Knutson on Unsplash

Summary

This article investigates how food hardship relates to financial well-being and subjective well-being in the United States.

The key research question is:

What would be our best predictions on the difference in (1) average financial well-being score and (2) average subjective well-being score between two groups of people who did and did not experience food hardship in the past 12 months?

The findings suggest that people who experience food hardship, on average, report significantly lower financial well-being score and subjective well-being score compared to those who do not experience any food hardship.

Data

This article uses data from the National Financial Well-Being Survey 2016 conducted by the Consumer Financial Protection Bureau (CFPB) The survey was fielded between October 27, 2016 and December 5, 2016. In total, 6394 respondents completed the survey.

Description of Key Variables

Defining Food Hardship

I assume that a respondent faced food hardship if they answered either “sometimes” or “often” to the questions on food hardship.

Data Analysis

I analyze data in R to investigate the research question. The code is presented below:

#Load required libraries
if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse, table1)
#Download CFPB FWB Survey data
data <- read.csv("https://www.consumerfinance.gov/documents/5614/NFWBS_PUF_2016_data.csv")
##Creating a dataset removing non-responses to these 5 questions
data1<-data %>%
select(FWBscore,SWB_1,SWB_2,SWB_3,MATHARDSHIP_1,MATHARDSHIP_2) %>%
filter(FWBscore>=0 & SWB_1>=0 & SWB_2>=0 & SWB_3>=3 & MATHARDSHIP_1>=0 & MATHARDSHIP_2>=0)
##Creating two different food hardship dummy variables
data1$food.hardship1<-ifelse(data1$MATHARDSHIP_1>=2,1,0)
data1$food.hardship2<-ifelse(data1$MATHARDSHIP_2>=2,1,0)
##Creating the two tables using the table1 package
label(data1$SWB_1)<-"I am satisfied with my life"
label(data1$SWB_2)<-"I am optimistic about my future"
label(data1$SWB_3)<-"If I work hard today, I will be more successful in the future"
label(data1$FWBscore)<-"CFPB Financial Well-Being Scale score"
pvalue <- function(x, ...) {
# Construct vectors of data y, and groups (strata) g
y <- unlist(x)
g <- factor(rep(1:length(x), times=sapply(x, length)))
if (is.numeric(y)) {
# For numeric variables, perform a standard 2-sample t-test
p <- t.test(y ~ g)$p.value
} else {
# For categorical variables, perform a chi-squared test of independence
p <- chisq.test(table(y, g))$p.value
}
# Format the p-value, using an HTML entity for the less-than sign.
# The initial empty string places the output on the line below the variable label.

c("", sub("<", "&lt;", format.pval(p, digits=3, eps=0.001)))
}
data1$food.hardship1 <-
factor(data1$food.hardship1, levels=c(1,0),
labels=c("Often/sometimes faced food hardship",
"Never faced food hardship"))
data1$food.hardship2 <-
factor(data1$food.hardship2, levels=c(1,0),
labels=c("Often/sometimes faced food hardship",
"Never faced food hardship"))
table1(~ FWBscore+SWB_1+SWB_2+SWB_3 | food.hardship1, data=data1,overall = FALSE,extra.col=list(`P-value`=pvalue))table1(~ FWBscore+SWB_1+SWB_2+SWB_3 | food.hardship2, data=data1,overall = FALSE,extra.col=list(`P-value`=pvalue))##Getting 95% Confidence Intervals
t.test(FWBscore~food.hardship1, data=data1)
t.test(FWBscore~food.hardship2, data=data1)
t.test(SWB_1~food.hardship1, data=data1)
t.test(SWB_1~food.hardship2, data=data1)
t.test(SWB_2~food.hardship1, data=data1)
t.test(SWB_2~food.hardship2, data=data1)
t.test(SWB_3~food.hardship1, data=data1)
t.test(SWB_3~food.hardship2, data=data1)

Results

Food Hardship Measure 1: “I worried whether our food would run out before I got money to buy more”

The above table shows how financial well-being and three different measures of subjective well-being vary between people who faced food hardship in the past 12 months vs. those who did not. The question on food hardship asks — Please indicate whether the following statement was often, sometimes, or never true for you in the past 12 months: “I worried whether our food would run out before I got money to buy more.” I assume that respondents who responded either “often” or “sometimes” faced food hardship, and those who responded “never” did not face any food hardship in the past 12 months. The P-value column shows the probability of obtaining the observed difference in the average outcomes between those who did and did not experience food hardship, assuming that the null hypothesis (i.e., there is “no difference” in the average outcomes) is true.

First, we observe that among the respondents of the first question, about 17% reported experiencing food hardship in the past 12 months. According to an estimate by the United States Department of Agriculture (USDA), in 2016, the food insecurity rate in the U.S. was about 12.5%. The relatively higher food hardship, as I find in this analysis, is possibly due to using a different method (than the one used by the USDA) to generate the outcome variable.

The average financial well-being score is 18.1 points (95% confidence interval [-18.81, -17.38]) lower for those who experienced food hardship in the past 12 months compared to those who did not experience any food hardship.

Also, the average life satisfaction score for those who experienced food hardship is 1.01 points (95% confidence interval [-1.12, -0.92]) lower.

Similarly, we observe lower average scores reported by those who faced food hardship for the other two measures of subjective well-being, which capture their optimism about the future and their belief that today’s hard work will yield positive future results.

Food Hardship Measure 2: “The food that I bought just didn’t last and I didn’t have money to get more”

The above table shows how financial well-being and three different measures of subjective well-being vary between people who faced food hardship in the past 12 months vs. those who did not. The second question on food hardship asks — Please indicate whether the following statement was often, sometimes, or never true for you in the past 12 months: “The food that I bought just didn’t last and I didn’t have money to get more.” I assume that respondents who responded either “often” or “sometimes” faced food hardship, and those who responded “never” did not face any food hardship in the past 12 months. The P-value column shows the probability of obtaining the observed difference in the average outcomes between those who did and did not experience food hardship, assuming that the null hypothesis (i.e., there is “no difference” in the average outcomes) is true.

We reach the same conclusions (as mentioned earlier) if we consider the second measure of food hardship.

Discussion

Given the strong association between food hardship and both measures of well-being, a relevant question is: why do these associations exist? It is difficult to mathematically express the true process that generates the data because we do not (yet) have a theoretical model that shows how these constructs are interrelated. I argue that food hardship, financial well-being, and subjective well-being share a common cause — financial condition of a household.

If the model (perhaps a small segment of the true model) shown above is correct, the implication is that (keeping all else constant) a negative shock to the financial condition of a household would lead to an increase in food hardship and a decrease in financial well-being and subjective well-being. As a real-world example, during the time of a macroeconomic turmoil, if a household’s financial condition worsens (and other things do not change accordingly to compensate for its loss, e.g., they do not receive enough support from external sources), the household members would report higher hardship and lower well-being.

Implications

For researchers, the findings of this study imply that having data on one of these variables can be informative in predicting the values of the other two variables. While analyzing the effect of an event (e.g., a change in the generosity of a welfare program, a recession, soaring inflation, etc.) on household well-being, a researcher may not have data on all three outcomes in the same dataset. For example, a longitudinal dataset may gather data only on food hardship rather than financial well-being or subjective well-being. At the very least, given that there exists a non-zero difference in food hardship between two groups of people, we can predict that there will be a non-zero difference in both financial well-being and subjective well-being.

For policymakers, these findings imply that certain policy changes which increase food hardship — by negatively affecting financial situation of a household— may also reduce financial well-being and subjective well-being. Therefore, while evaluating the costs and benefits of relevant policy changes, all these consequences on well-being should be taken into consideration.

Appendix

Below I present the code to generate histograms for visualizing how the distributions of Financial Well-Being score and Subjective Well-Being (life satisfaction) score vary between those who did and did not experience food hardship in the past 12 months:

###Creating Histograms##Food Hardship Question 1#FWB Score
ggplot(data1, aes(x=FWBscore,y=..density..,fill=factor(food.hardship1))) +
geom_histogram(position='dodge', binwidth=1) +
geom_density(alpha=0.25)+
labs(title = "Distribution of Financial Well-Being Scores",
fill = "Group",
x="Financial Well-Being Score",
y="Proportion")+
scale_fill_discrete(labels = c("Sometimes/often faced food hardship", "Never faced food hardship"))+
theme(axis.text.x = element_text(size=25, angle=0),
panel.background=element_blank(),
plot.title = element_text(face = "bold", size = 30, hjust = 0.5),
axis.text.y = element_text(size=25),
axis.title.x = element_text(size=25),
axis.title.y = element_text(size=25),
legend.text = element_text(size=25),
legend.title = element_text(size=25),
legend.position="top")
#SWB Score
ggplot(data1, aes(x=SWB_1,y=..density..,fill=factor(food.hardship1))) +
geom_histogram(position='dodge', binwidth=1) +
geom_density(alpha=0.25)+
labs(title = "Distribution of SWB (Life Satisfaction) Scores",
fill = "Group",
x="SWB (Life Satisfaction) Score",
y="Proportion")+
scale_fill_discrete(labels = c("Sometimes/often faced food hardship", "Never faced food hardship"))+
theme(axis.text.x = element_text(size=25, angle=0),
panel.background=element_blank(),
plot.title = element_text(face = "bold", size = 30, hjust = 0.5),
axis.text.y = element_text(size=25),
axis.title.x = element_text(size=25),
axis.title.y = element_text(size=25),
legend.text = element_text(size=25),
legend.title = element_text(size=25),
legend.position="top")
##Food Hardship QUestion 2#FWB Score
ggplot(data1, aes(x=FWBscore,y=..density..,fill=factor(food.hardship2))) +
geom_histogram(position='dodge', binwidth=1) +
geom_density(alpha=0.25)+
labs(title = "Distribution of Financial Well-Being Scores",
fill = "Group",
x="Financial Well-Being Score",
y="Proportion")+
scale_fill_discrete(labels = c("Sometimes/often faced food hardship", "Never faced food hardship"))+
theme(axis.text.x = element_text(size=25, angle=0),
panel.background=element_blank(),
plot.title = element_text(face = "bold", size = 30, hjust = 0.5),
axis.text.y = element_text(size=25),
axis.title.x = element_text(size=25),
axis.title.y = element_text(size=25),
legend.text = element_text(size=25),
legend.title = element_text(size=25),
legend.position="top")
#SWB Score
ggplot(data1, aes(x=SWB_1,y=..density..,fill=factor(food.hardship2))) +
geom_histogram(position='dodge', binwidth=1) +
geom_density(alpha=0.25)+
labs(title = "Distribution of SWB (Life Satisfaction) Scores",
fill = "Group",
x="SWB (Life Satisfaction) Score",
y="Proportion")+
scale_fill_discrete(labels = c("Sometimes/often faced food hardship", "Never faced food hardship"))+
theme(axis.text.x = element_text(size=25, angle=0),
panel.background=element_blank(),
plot.title = element_text(face = "bold", size = 30, hjust = 0.5),
axis.text.y = element_text(size=25),
axis.title.x = element_text(size=25),
axis.title.y = element_text(size=25),
legend.text = element_text(size=25),
legend.title = element_text(size=25),
legend.position="top")

Food Hardship Measure 1

Food Hardship Measure 2

Weighted Analyses

In the above analyses, I did not incorporate the survey weights provided in the survey (finalwt). The results of the weighted analyses seem fairly identical to the results of the unweighted analyses. Below, I present the code and the results of the weighted analyses:

####Weighted Analysis####

#Note: I created the tables manually in MS word based on the results
#from the following models

##Food Hardship Measure 1
model.fwb1<-lm(FWBscore~food.hardship1, data=data1, weights = data1$finalwt)
summary(model1)

model.swb11<-lm(SWB_1~food.hardship1, data=data1, weights = data1$finalwt)
summary(model.swb11)

model.swb21<-lm(SWB_2~food.hardship1, data=data1, weights = data1$finalwt)
summary(model.swb21)

model.swb31<-lm(SWB_3~food.hardship1, data=data1, weights = data1$finalwt)
summary(model.swb31)

##Food Hardship Measure 2
model.fwb2<-lm(FWBscore~food.hardship2, data=data1, weights = data1$finalwt)
summary(model.fwb2)

model.swb12<-lm(SWB_1~food.hardship2, data=data1, weights = data1$finalwt)
summary(model.swb12)

model.swb22<-lm(SWB_2~food.hardship2, data=data1, weights = data1$finalwt)
summary(model.swb22)

model.swb32<-lm(SWB_3~food.hardship2, data=data1, weights = data1$finalwt)
summary(model.swb32)

Food Hardship Measure 1: “I worried whether our food would run out before I got money to buy more”

Food Hardship Measure 2: “The food that I bought just didn’t last and I didn’t have money to get more”

Courtesy

Table1 package is a work by Benjamin Rich. Its documentation is available here: https://cran.r-project.org/web/packages/table1/index.html

Tidyverse is a set of packages maitained by Hadley Wickham. Its documentation is available here: https://github.com/tidyverse/tidyverse

National Financial Well-Being Survey 2016 was conducted by the Consumer Financial Protection Bureau. Its documation is available here: https://files.consumerfinance.gov/f/documents/cfpb_nfwbs-puf-user-guide.pdf

This article is not peer-reviewed. The author confirms sole responsibility for the article and declares that he has no conflict of interest.

The results are based on a publicly available dataset. You can reproduce the results shown above by running the code in R.

If you have any questions/comments, reply below or reach out to the author at vivekbd92(at)gmail(dot)com.

--

--

Sharing synthesized ideas on Data Analysis, Data Literacy, Causal Inference, and Wellbeing | Ph.D. candidate @UW-Madison | More: https://vivekanandadas.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Vivekananda Das

Sharing synthesized ideas on Data Analysis, Data Literacy, Causal Inference, and Wellbeing | Ph.D. candidate @UW-Madison | More: https://vivekanandadas.com