Download and import data
# download.file("https://www.federalreserve.gov/consumerscommunities/files/SHED_public_use_data_2021_(Stata).zip",
# "data/SHED_public_use_data_2021_(Stata).zip")
# unzip("data/SHED_public_use_data_2021_(Stata).zip", exdir = "data")
SHED <- readstata13::read.dta13("data/public2021.dta", generate.factors = TRUE, nonint.factors = TRUE)
## Warning in readstata13::read.dta13("data/public2021.dta", generate.factors = TRUE, :
## Duplicated factor levels for variables
##
## ind1, pph12003, pph12004, pph12005, pph12006
##
## Unique labels for these variables have been generated.
# S16_b
# In the past year, have you done the following
# with cryptocurrency, such as Bitcoin or Ethereum?
# - Used to buy something or make a payment
SHED$crypto.used.as.payment <- SHED$S16_b == "Yes"
# BK1
# Do you and/or your spouse or partner
# currently have a checking, savings or money
# market account?
SHED$does.not.have.bank.account <- SHED$BK1 == "No"
# C2A
# Do you currently have at least one credit card?
SHED$does.not.have.credit.card <- SHED$C2A == "No"
# ppgender
# Gender [Ipsos source]
SHED$is.male <- SHED$ppgender == "Male"
# race_5cat Race 5 categories
SHED$race <- SHED$race_5cat
# ED0
# What is the highest level of school you have
# completed or the highest degree you have
# received?
SHED$education.level <- relevel(SHED$ED0, "High school degree or GED")
# ED1
# Which one of the following broad categories
# best describes your (current/most recent)
# educational program?
SHED$education.subject <- relevel(SHED$ED1, "Business/management")
# pppa_lgb [Ipsos source]
# Q230: Which of the following best describes how you think of yourself?
SHED$lgbtq <- relevel(SHED$pppa_lgb, "Straight, that is, not gay")
# ppp20197 [Ipsos source]
# QEG22: Are you a citizen of the United States?
SHED$is.noncitizen <- SHED$ppp20197 == "No"
# I40
# Which of the following categories best
# describes the total income that you and/or
# your spouse or partner received from all
# sources, before taxes and deductions, in the
# past 12 months?
SHED$income.category <- SHED$I40
# B2
# Overall, which one of the following best
# describes how well you are managing
# financially these days?
SHED$overall.financial.wellbeing <- SHED$B2
# I41_b
# Supplemental Nutrition Assistance Program
# (SNAP or food stamps) - In the past 12
# months, have you received any of the
# following?
SHED$received.food.stamps <- SHED$I41_b
# FL0
# On a scale from zero to ten, where zero is
# not at all willing to take risks and ten is
# very willing to take risks, what number would
# you be on the scale?
SHED$risk.tolerance <- as.numeric(SHED$FL0) - 1
# B10
# Overall, on a scale from zero to ten, where
# zero is not at all satisfied and ten is
# completely satisfied, how satisfied are you
# with life as a whole these days?
SHED$life.satisfaction <- as.numeric(SHED$B10) - 1
# ppage
# Age [Ipsos source]
# ppcmdate
# Date member completed Core survey
# Must correct age variable for time of initial Ipsos survey
SHED$age <- SHED$ppage + (2021 - as.numeric(substr(SHED$ppcmdate, 1, 4)))
# ind1
# IND1: Industry (tight scale) in current or main job
SHED$job.industry <- relevel(SHED$ind1, "Retail/Stores/Shopping (including Online Retail)")
# ppcm0160 [Ipsos source]
# Q26: Occupation (detailed) in current or main job
SHED$job.occupation <- relevel(SHED$ppcm0160, "Retail Sales")
# ppcm1301 [Ipsos source]
# GOVEMP1: Employer type
SHED$employer.type <- relevel(SHED$ppcm1301, "Private-for-profit company")
# ppmsacat
# MSA Status [Ipsos source]
SHED$resides.in.metro.statistical.area <- SHED$ppmsacat == "Metro"
# ppfs0596 [Ipsos source]
# Q22: What is the approximate total amount of
# your household's savings and investments?
SHED$total.household.savings <- relevel(SHED$ppfs0596, "$100,000 - $249,999")
# A1_a
# In the past 12 months, has each of the following happened to you:
# - Turned down for credit
SHED$rejected.for.credit <- SHED$A1_a == "Yes"
# BK2_a
# In the past 12 months, did you and/or spouse or partner:
# - Purchase a money order from a place other than a bank
SHED$purchase.non.bank.money.order <- SHED$BK2_a == "Yes"
# BK2_b
# In the past 12 months, did you and/or spouse or partner:
# - Cash a check at a place other than a bank
SHED$cash.check.non.bank <- SHED$BK2_b == "Yes"
# BK2_c
# In the past 12 months, did you and/or spouse or partner:
# - Take out a payday loan or payday advance
SHED$take.payday.loan <- SHED$BK2_c == "Yes"
# BK2_d
# In the past 12 months, did you and/or spouse or partner:
# - Take out a pawn shop loan or an auto title loan
SHED$take.auto.or.pawn.shop.loan <- SHED$BK2_d == "Yes"
# BK2_e
# In the past 12 months, did you and/or spouse or partner:
# - Obtain a tax refund advance to receive your refund faster
SHED$take.tax.refund.advance <- SHED$BK2_e == "Yes"
# BNPL1
# In the past year, have you used a “Buy Now
# Pay Later” service to buy something?
SHED$used.buy.now.pay.later <- SHED$BNPL1 == "Yes"
# ppfs1482 [Ipsos source]
# Q108: Where do you think your credit score falls
SHED$perceived.credit.score <- relevel(SHED$ppfs1482, "Fair")
# GE2A
# Some people earn money by selling items at
# places like flea markets and garage sales or
# through online marketplaces like eBay or
# Etsy. In the past month, have you made money
# by selling items in any of these ways?
SHED$informal.selling.of.goods <- SHED$GE2A == "Yes"
# GE1A
# In the past month, have you done any
# freelance or gig-work, either to supplement
# your income or as your main job?
SHED$freelance.or.gig.work <- SHED$GE1A == "Yes"
# E7
# During the past 12 months, have you
# personally experienced discrimination or
# unfair treatment because of your race,
# ethnicity, age, religion, disability status,
# sexual orientation, gender, or gender
# identity?
SHED$experienced.discrimination <- SHED$E7 == "Yes"
# E8_b
# In the past 12 months, did you personally experience
# discrimination or unfair treatment while
# doing any of the following?
# - Banking or applying for a loan
SHED$experienced.discrimination.in.banking <- SHED$E8_b %in% "Yes"
# xlaptop
# Is R a KP laptop user?
SHED$is.kp.laptop.user <- SHED$xlaptop %in% "Yes"
# devicetype2
# DOV: Device Type - at the end of survey
SHED$respondent.device.type <- relevel(SHED$devicetype2, "WinPC")
SHED <- svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
# weight_pop used as survey weights, in accordance with suggestion by:
# https://www.federalreserve.gov/consumerscommunities/files/SHED_2021codebook.pdf
Checking correlations between main variables
svyvar.covariance <- svyvar(~ age + is.male + crypto.used.as.payment +
does.not.have.bank.account + does.not.have.credit.card, SHED, na.rm = TRUE)
attr(svyvar.covariance, "var") <- NULL
svyvar.correlation <- cov2cor(as.matrix(svyvar.covariance))
print(round(svyvar.correlation, 3))
## age is.male crypto.used.as.payment does.not.have.bank.account does.not.have.credit.card
## age 1.000 -0.024 -0.070 -0.106 -0.201
## is.male -0.024 1.000 0.033 0.011 0.030
## crypto.used.as.payment -0.070 0.033 1.000 0.035 0.035
## does.not.have.bank.account -0.106 0.011 0.035 1.000 0.364
## does.not.have.credit.card -0.201 0.030 0.035 0.364 1.000
## attr(,"statistic")
## [1] "variance"
corrplot(svyvar.correlation, tl.col = "darkred", tl.srt = 35,
method = "shade", number.digits = 2, addshade = "all", diag = FALSE,
title = "\n\n Correlation Plot",
addCoef.col = "black", type = "lower")
Main results
does.not.have.bank.account
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + does.not.have.bank.account,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + does.not.have.bank.account,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.913447 0.226073 -12.887 < 2e-16 ***
## age -0.031695 0.004137 -7.662 1.97e-14 ***
## is.maleTRUE 0.466379 0.168780 2.763 0.00573 **
## does.not.have.bank.accountTRUE 0.581630 0.285850 2.035 0.04190 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.958345)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.977 Indicator variable
## 2 is.maleTRUE 1.594 1.145 2.219 Indicator variable
## 3 does.not.have.bank.accountTRUE 1.789 1.022 3.133 Indicator variable
does.not.have.credit.card
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + does.not.have.credit.card,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + does.not.have.credit.card,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.952972 0.234628 -12.586 < 2e-16 ***
## age -0.031084 0.004205 -7.392 1.54e-13 ***
## is.maleTRUE 0.466022 0.168684 2.763 0.00574 **
## does.not.have.credit.cardTRUE 0.304096 0.214471 1.418 0.15625
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9559624)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.977 1
## 2 is.maleTRUE 1.594 1.145 2.218 Indicator variable
## 3 does.not.have.credit.cardTRUE 1.355 0.890 2.064 Indicator variable
Additional results on financial marginalization
rejected.for.credit
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + rejected.for.credit,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + rejected.for.credit,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.186410 0.331091 -9.624 < 2e-16 ***
## age -0.028757 0.006194 -4.643 3.54e-06 ***
## is.maleTRUE 0.674391 0.236384 2.853 0.00435 **
## rejected.for.creditTRUE 1.149878 0.234934 4.894 1.02e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9739901)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.972 0.960 0.984 1
## 2 is.maleTRUE 1.963 1.235 3.120 Indicator variable
## 3 rejected.for.creditTRUE 3.158 1.992 5.005 Indicator variable
purchase.non.bank.money.order
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + purchase.non.bank.money.order,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + purchase.non.bank.money.order,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.021632 0.222077 -13.606 < 2e-16 ***
## age -0.032421 0.004118 -7.874 3.75e-15 ***
## is.maleTRUE 0.481844 0.168482 2.860 0.00425 **
## purchase.non.bank.money.orderTRUE 1.092477 0.208685 5.235 1.68e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9680346)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.968 0.960 0.976 1
## 2 is.maleTRUE 1.619 1.164 2.253 Indicator variable
## 3 purchase.non.bank.money.orderTRUE 2.982 1.981 4.489 Indicator variable
cash.check.non.bank
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + cash.check.non.bank,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + cash.check.non.bank,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.011138 0.224701 -13.401 < 2e-16 ***
## age -0.031117 0.004085 -7.616 2.81e-14 ***
## is.maleTRUE 0.462410 0.168842 2.739 0.00618 **
## cash.check.non.bankTRUE 1.098875 0.236800 4.641 3.51e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9459723)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.962 0.977 1
## 2 is.maleTRUE 1.588 1.140 2.211 Indicator variable
## 3 cash.check.non.bankTRUE 3.001 1.886 4.773 Indicator variable
take.payday.loan
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + take.payday.loan,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + take.payday.loan,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.056315 0.236834 -12.905 < 2e-16 ***
## age -0.030550 0.004233 -7.218 5.61e-13 ***
## is.maleTRUE 0.477396 0.169847 2.811 0.00495 **
## take.payday.loanTRUE 1.971401 0.285394 6.908 5.18e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9662311)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.970 0.962 0.978 1
## 2 is.maleTRUE 1.612 1.155 2.249 Indicator variable
## 3 take.payday.loanTRUE 7.181 4.104 12.564 Indicator variable
take.auto.or.pawn.shop.loan
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + take.auto.or.pawn.shop.loan,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + take.auto.or.pawn.shop.loan,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.952696 0.224047 -13.179 < 2e-16 ***
## age -0.032423 0.004156 -7.802 6.63e-15 ***
## is.maleTRUE 0.513780 0.169932 3.023 0.0025 **
## take.auto.or.pawn.shop.loanTRUE 1.794029 0.314689 5.701 1.22e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9682661)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.968 0.960 0.976 1
## 2 is.maleTRUE 1.672 1.198 2.332 Indicator variable
## 3 take.auto.or.pawn.shop.loanTRUE 6.014 3.245 11.144 Indicator variable
take.tax.refund.advance
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + take.tax.refund.advance,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + take.tax.refund.advance,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.965486 0.221710 -13.376 < 2e-16 ***
## age -0.031918 0.004147 -7.697 1.51e-14 ***
## is.maleTRUE 0.506136 0.169424 2.987 0.00282 **
## take.tax.refund.advanceTRUE 2.164352 0.325035 6.659 2.88e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9810652)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.976 1
## 2 is.maleTRUE 1.659 1.190 2.312 Indicator variable
## 3 take.tax.refund.advanceTRUE 8.709 4.605 16.469 Indicator variable
used.buy.now.pay.later
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + used.buy.now.pay.later,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + used.buy.now.pay.later,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.229942 0.237390 -13.606 < 2e-16 ***
## age -0.030738 0.004186 -7.343 2.23e-13 ***
## is.maleTRUE 0.567811 0.173233 3.278 0.00105 **
## used.buy.now.pay.laterTRUE 1.371553 0.191151 7.175 7.65e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9898529)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.970 0.962 0.978 1
## 2 is.maleTRUE 1.764 1.256 2.478 Indicator variable
## 3 used.buy.now.pay.laterTRUE 3.941 2.710 5.733 Indicator variable
experienced.discrimination.in.banking
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + experienced.discrimination.in.banking,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + experienced.discrimination.in.banking,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.885342 0.218007 -13.235 < 2e-16 ***
## age -0.032679 0.004104 -7.963 1.84e-15 ***
## is.maleTRUE 0.466326 0.168406 2.769 0.00563 **
## experienced.discrimination.in.bankingTRUE 1.972172 0.372336 5.297 1.20e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.974156)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.968 0.960 0.976 1
## 2 is.maleTRUE 1.594 1.146 2.218 Indicator variable
## 3 experienced.discrimination.in.bankingTRUE 7.186 3.464 14.910 Indicator variable
perceived.credit.score
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + perceived.credit.score,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + perceived.credit.score,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.410328 0.296635 -8.126 4.98e-16 ***
## age -0.031818 0.005248 -6.062 1.39e-09 ***
## is.maleTRUE 0.507430 0.189572 2.677 0.00745 **
## perceived.credit.scoreVery poor 0.335551 0.411302 0.816 0.41462
## perceived.credit.scorePoor -0.081567 0.405853 -0.201 0.84072
## perceived.credit.scoreGood -0.652273 0.284365 -2.294 0.02182 *
## perceived.credit.scoreExcellent -0.694903 0.251690 -2.761 0.00577 **
## perceived.credit.scoreDon’t know -0.875283 0.451036 -1.941 0.05233 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9339766)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.959 0.979 1
## 2 is.maleTRUE 1.661 1.145 2.409 Indicator variable
## 3 perceived.credit.scoreVery poor 1.399 0.625 3.132 Indicator variable
## 4 perceived.credit.scorePoor 0.922 0.416 2.042 Indicator variable
## 5 perceived.credit.scoreGood 0.521 0.298 0.910 Indicator variable
## 6 perceived.credit.scoreExcellent 0.499 0.305 0.817 Indicator variable
## 7 perceived.credit.scoreDon’t know 0.417 0.172 1.009 Indicator variable
General societal marginalization
experienced.discrimination
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + experienced.discrimination,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + experienced.discrimination,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.004836 0.228625 -13.143 < 2e-16 ***
## age -0.031571 0.004086 -7.727 1.19e-14 ***
## is.maleTRUE 0.501519 0.169039 2.967 0.003014 **
## experienced.discriminationTRUE 0.797020 0.214670 3.713 0.000206 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9644662)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.977 1
## 2 is.maleTRUE 1.651 1.186 2.300 Indicator variable
## 3 experienced.discriminationTRUE 2.219 1.457 3.380 Indicator variable
race
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + race,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + race,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.148536 0.241717 -13.026 < 2e-16 ***
## age -0.031111 0.004158 -7.482 7.86e-14 ***
## is.maleTRUE 0.481631 0.167887 2.869 0.004128 **
## raceBlack 0.808073 0.216699 3.729 0.000193 ***
## raceHispanic 0.542806 0.221510 2.450 0.014281 *
## raceAsian 0.121512 0.397317 0.306 0.759738
## raceOther -0.030294 0.462447 -0.066 0.947770
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9471295)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.977 1
## 2 is.maleTRUE 1.619 1.165 2.250 Indicator variable
## 3 raceBlack 2.244 1.467 3.431 Indicator variable
## 4 raceHispanic 1.721 1.115 2.656 Indicator variable
## 5 raceAsian 1.129 0.518 2.460 Indicator variable
## 6 raceOther 0.970 0.392 2.402 Indicator variable
is.noncitizen
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + is.noncitizen,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + is.noncitizen,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.926938 0.239581 -12.217 < 2e-16 ***
## age -0.031523 0.004323 -7.292 3.27e-13 ***
## is.maleTRUE 0.436785 0.177799 2.457 0.01404 *
## is.noncitizenTRUE 0.974701 0.375482 2.596 0.00945 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9647507)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.977 1
## 2 is.maleTRUE 1.548 1.092 2.193 Indicator variable
## 3 is.noncitizenTRUE 2.650 1.270 5.533 Indicator variable
lgbtq
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + lgbtq,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + lgbtq,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.978567 0.242480 -12.284 < 2e-16 ***
## age -0.030611 0.004158 -7.361 1.95e-13 ***
## is.maleTRUE 0.480164 0.183277 2.620 0.00881 **
## lgbtqGay or lesbian 0.076089 0.463581 0.164 0.86963
## lgbtqBisexual 0.346759 0.366939 0.945 0.34468
## lgbtqSomething else 0.613277 0.535404 1.145 0.25205
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9563273)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.970 0.962 0.978 1
## 2 is.maleTRUE 1.616 1.129 2.315 Indicator variable
## 3 lgbtqGay or lesbian 1.079 0.435 2.677 Indicator variable
## 4 lgbtqBisexual 1.414 0.689 2.904 Indicator variable
## 5 lgbtqSomething else 1.846 0.646 5.274 Indicator variable
Data quality sanity checks
education.subject
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + education.subject,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + education.subject,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.999353 0.349680 -8.577 < 2e-16 ***
## age -0.031044 0.004627 -6.710 2.06e-11 ***
## is.maleTRUE 0.647123 0.211765 3.056 0.00225 **
## education.subjectHumanities/arts -0.023039 0.369258 -0.062 0.95025
## education.subjectSocial/behavioral sciences -0.088099 0.396489 -0.222 0.82416
## education.subjectLife sciences 0.454106 0.582217 0.780 0.43543
## education.subjectPhysical sciences/math 0.667644 0.451933 1.477 0.13963
## education.subjectComputer/information sciences 0.566129 0.305065 1.856 0.06352 .
## education.subjectEngineering -0.061159 0.365813 -0.167 0.86723
## education.subjectEducation -1.007184 0.641422 -1.570 0.11640
## education.subjectHealth -0.318826 0.380608 -0.838 0.40223
## education.subjectLaw -0.346608 0.519753 -0.667 0.50487
## education.subjectVocational/technical training -0.668446 0.544420 -1.228 0.21955
## education.subjectUndeclared -0.260800 0.517377 -0.504 0.61422
## education.subjectOther -0.241427 0.406223 -0.594 0.55231
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.8916928)
##
## Number of Fisher Scoring iterations: 8
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.978 1
## 2 is.maleTRUE 1.910 1.261 2.893 Indicator variable
## 3 education.subjectHumanities/arts 0.977 0.474 2.015 Indicator variable
## 4 education.subjectSocial/behavioral sciences 0.916 0.421 1.992 Indicator variable
## 5 education.subjectLife sciences 1.575 0.503 4.930 Indicator variable
## 6 education.subjectPhysical sciences/math 1.950 0.804 4.728 Indicator variable
## 7 education.subjectComputer/information sciences 1.761 0.969 3.203 Indicator variable
## 8 education.subjectEngineering 0.941 0.459 1.927 Indicator variable
## 9 education.subjectEducation 0.365 0.104 1.284 Indicator variable
## 10 education.subjectHealth 0.727 0.345 1.533 Indicator variable
## 11 education.subjectLaw 0.707 0.255 1.959 Indicator variable
## 12 education.subjectVocational/technical training 0.513 0.176 1.490 Indicator variable
## 13 education.subjectUndeclared 0.770 0.279 2.124 Indicator variable
## 14 education.subjectOther 0.786 0.354 1.742 Indicator variable
job.industry
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + job.industry,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + job.industry,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.854060 0.340815 -8.374 < 2e-16 ***
## age -0.033280 0.004306 -7.728 1.18e-14 ***
## is.maleTRUE 0.381146 0.186339 2.045 0.0408 *
## job.industry-1 -11.507214 0.382080 -30.117 < 2e-16 ***
## job.industry-2 0.066810 0.360007 0.186 0.8528
## job.industryFarming/Agriculture, Forestry, Fishing and Hunting, and Animal Production 0.753267 0.731523 1.030 0.3032
## job.industryFinance, Banking, and Insurance -0.052153 0.486781 -0.107 0.9147
## job.industryReal Estate and Property Management 0.460033 0.697996 0.659 0.5099
## job.industryProfessional, Scientific, Technical, and Business Services 0.362678 0.380195 0.954 0.3401
## job.industryManagement of Companies and Enterprises 0.390625 1.063713 0.367 0.7135
## job.industryEducation and Tutoring -0.730517 0.542590 -1.346 0.1782
## job.industryHealth Care (including Elder Care, Home Health Care) -0.110082 0.422465 -0.261 0.7944
## job.industryArts, Entertainment, and Recreation 0.383444 0.575453 0.666 0.5052
## job.industryAccommodation and Food Services -0.004982 0.629938 -0.008 0.9937
## job.industryMining, Quarrying, and Oil and Gas Extraction -0.182107 1.071871 -0.170 0.8651
## job.industryPublic Administration 0.375866 0.606949 0.619 0.5358
## job.industryArmed Forces 0.252194 0.784939 0.321 0.7480
## job.industryUtilities, Waste Management, and Remediation Services_(22) -1.339318 1.057590 -1.266 0.2054
## job.industryAdministrative and Support Services (such as Call Centers, Security, Landscaping, and Janitorial) -0.540011 0.678967 -0.795 0.4264
## job.industryChild Day Care Services -0.519336 1.063179 -0.488 0.6252
## job.industryRepairs and Maintenance 0.911384 0.575837 1.583 0.1135
## job.industryPersonal Services (including Beauty, Pet Care, and Household) 0.048350 0.789374 0.061 0.9512
## job.industryCommunity/Non-Profit Organizations (including Religious and Political Organizations) 0.203254 0.619093 0.328 0.7427
## job.industryConstruction and Specialty Contractors (such as Plumbing and Electrical) -0.235479 0.568282 -0.414 0.6786
## job.industryFactory, Manufacturing, and Woodworking -0.123598 0.502171 -0.246 0.8056
## job.industryWholesale Trade 1.227697 0.616998 1.990 0.0466 *
## job.industryDelivery Services, Warehousing, and Transportation (including Air, Rail, Water, Truck, and Passenger) 0.448454 0.493363 0.909 0.3634
## job.industryInformation (including Publishing, Media, Telecom, Internet Search, and Social Networking) 0.408421 0.485916 0.841 0.4006
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9747189)
##
## Number of Fisher Scoring iterations: 14
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5)
## 1 age 0.967 0.959 0.975
## 2 is.maleTRUE 1.464 1.016 2.109
## 3 job.industry-1 0.000 0.000 0.000
## 4 job.industry-2 1.069 0.528 2.165
## 5 job.industryFarming/Agriculture, Forestry, Fishing and Hunting, and Animal Production 2.124 0.506 8.910
## 6 job.industryFinance, Banking, and Insurance 0.949 0.366 2.465
## 7 job.industryReal Estate and Property Management 1.584 0.403 6.223
## 8 job.industryProfessional, Scientific, Technical, and Business Services 1.437 0.682 3.028
## 9 job.industryManagement of Companies and Enterprises 1.478 0.184 11.890
## 10 job.industryEducation and Tutoring 0.482 0.166 1.395
## 11 job.industryHealth Care (including Elder Care, Home Health Care) 0.896 0.391 2.050
## 12 job.industryArts, Entertainment, and Recreation 1.467 0.475 4.533
## 13 job.industryAccommodation and Food Services 0.995 0.289 3.421
## 14 job.industryMining, Quarrying, and Oil and Gas Extraction 0.834 0.102 6.814
## 15 job.industryPublic Administration 1.456 0.443 4.785
## 16 job.industryArmed Forces 1.287 0.276 5.994
## 17 job.industryUtilities, Waste Management, and Remediation Services_(22) 0.262 0.033 2.083
## 18 job.industryAdministrative and Support Services (such as Call Centers, Security, Landscaping, and Janitorial) 0.583 0.154 2.205
## 19 job.industryChild Day Care Services 0.595 0.074 4.781
## 20 job.industryRepairs and Maintenance 2.488 0.805 7.692
## 21 job.industryPersonal Services (including Beauty, Pet Care, and Household) 1.050 0.223 4.932
## 22 job.industryCommunity/Non-Profit Organizations (including Religious and Political Organizations) 1.225 0.364 4.124
## 23 job.industryConstruction and Specialty Contractors (such as Plumbing and Electrical) 0.790 0.259 2.407
## 24 job.industryFactory, Manufacturing, and Woodworking 0.884 0.330 2.365
## 25 job.industryWholesale Trade 3.413 1.018 11.440
## 26 job.industryDelivery Services, Warehousing, and Transportation (including Air, Rail, Water, Truck, and Passenger) 1.566 0.595 4.119
## 27 job.industryInformation (including Publishing, Media, Telecom, Internet Search, and Social Networking) 1.504 0.580 3.900
## increment
## 1 1
## 2 Indicator variable
## 3 Indicator variable
## 4 Indicator variable
## 5 Indicator variable
## 6 Indicator variable
## 7 Indicator variable
## 8 Indicator variable
## 9 Indicator variable
## 10 Indicator variable
## 11 Indicator variable
## 12 Indicator variable
## 13 Indicator variable
## 14 Indicator variable
## 15 Indicator variable
## 16 Indicator variable
## 17 Indicator variable
## 18 Indicator variable
## 19 Indicator variable
## 20 Indicator variable
## 21 Indicator variable
## 22 Indicator variable
## 23 Indicator variable
## 24 Indicator variable
## 25 Indicator variable
## 26 Indicator variable
## 27 Indicator variable
job.occupation
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + job.occupation,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + job.occupation,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.859317 0.290095 -9.856 < 2e-16 ***
## age -0.031407 0.004312 -7.283 3.48e-13 ***
## is.maleTRUE 0.360765 0.179090 2.014 0.04399 *
## job.occupationRefused 0.075921 1.047868 0.072 0.94224
## job.occupationManagement -0.089604 0.349829 -0.256 0.79785
## job.occupationComputer and Mathematical 0.805900 0.293052 2.750 0.00597 **
## job.occupationArchitecture and Engineering 0.441968 0.481025 0.919 0.35822
## job.occupationLife, Physical, and Social Sciences -13.665891 0.211452 -64.629 < 2e-16 ***
## job.occupationCommunity and Social Services 0.348845 0.744372 0.469 0.63933
## job.occupationLawyer, judge 0.476803 0.678924 0.702 0.48251
## job.occupationTeacher, college and university -12.647983 1.020703 -12.391 < 2e-16 ***
## job.occupationHealth Technologist or Technician (such as paramedic, lab technician) 0.177896 0.638330 0.279 0.78049
## job.occupationHealth Care Support (such as nursing aide, orderly, dental assistant) -0.040914 0.797085 -0.051 0.95906
## job.occupationProtective Service -1.213895 1.029386 -1.179 0.23833
## job.occupationFood Preparation and Serving -0.349612 0.683524 -0.511 0.60902
## job.occupationBuilding and Grounds Cleaning and Maintenance 0.987466 0.703185 1.404 0.16026
## job.occupationPersonal Care and Service -0.258920 0.755418 -0.343 0.73179
## job.occupationOffice and Administrative Support -0.763668 0.578523 -1.320 0.18685
## job.occupationFarming, Forestry, and Fishing 1.330953 0.808627 1.646 0.09980 .
## job.occupationConstruction and Extraction 0.060967 0.666060 0.092 0.92707
## job.occupationInstallation, Maintenance, and Repair 0.020352 0.523736 0.039 0.96900
## job.occupationPrecision Production (such as machinist, welder, baker, printer, tailor) -0.213162 0.745985 -0.286 0.77508
## job.occupationTransportation and Material Moving -0.887770 0.738712 -1.202 0.22947
## job.occupationArmed Services -13.939322 0.289202 -48.199 < 2e-16 ***
## job.occupationOther (Please specify) -0.383127 0.349530 -1.096 0.27305
## job.occupationBusiness Operations (including Marketing) 0.498942 0.397591 1.255 0.20953
## job.occupationFinancial Operations or Financial Services (including Financial Advisor, Broker) 0.300696 0.467979 0.643 0.52053
## job.occupationEducation, Training, and Library -0.140354 0.454960 -0.308 0.75771
## job.occupationArts, Design, Entertainment, Sports, and Media 1.103976 0.438103 2.520 0.01175 *
## job.occupationHealth Diagnosing or Treating Practitioner (such as physician, nurse, dentist, veterinarian, pharmacist) -0.813343 0.735419 -1.106 0.26877
## job.occupationSales -0.013234 0.390589 -0.034 0.97297
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9684664)
##
## Number of Fisher Scoring iterations: 16
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5)
## 1 age 0.969 0.961 0.977
## 2 is.maleTRUE 1.434 1.010 2.038
## 3 job.occupationRefused 1.079 0.138 8.414
## 4 job.occupationManagement 0.914 0.461 1.815
## 5 job.occupationComputer and Mathematical 2.239 1.260 3.976
## 6 job.occupationArchitecture and Engineering 1.556 0.606 3.994
## 7 job.occupationLife, Physical, and Social Sciences 0.000 0.000 0.000
## 8 job.occupationCommunity and Social Services 1.417 0.329 6.098
## 9 job.occupationLawyer, judge 1.611 0.426 6.096
## 10 job.occupationTeacher, college and university 0.000 0.000 0.000
## 11 job.occupationHealth Technologist or Technician (such as paramedic, lab technician) 1.195 0.342 4.175
## 12 job.occupationHealth Care Support (such as nursing aide, orderly, dental assistant) 0.960 0.201 4.579
## 13 job.occupationProtective Service 0.297 0.039 2.234
## 14 job.occupationFood Preparation and Serving 0.705 0.185 2.692
## 15 job.occupationBuilding and Grounds Cleaning and Maintenance 2.684 0.676 10.653
## 16 job.occupationPersonal Care and Service 0.772 0.176 3.393
## 17 job.occupationOffice and Administrative Support 0.466 0.150 1.448
## 18 job.occupationFarming, Forestry, and Fishing 3.785 0.776 18.467
## 19 job.occupationConstruction and Extraction 1.063 0.288 3.922
## 20 job.occupationInstallation, Maintenance, and Repair 1.021 0.366 2.849
## 21 job.occupationPrecision Production (such as machinist, welder, baker, printer, tailor) 0.808 0.187 3.487
## 22 job.occupationTransportation and Material Moving 0.412 0.097 1.751
## 23 job.occupationArmed Services 0.000 0.000 0.000
## 24 job.occupationOther (Please specify) 0.682 0.344 1.353
## 25 job.occupationBusiness Operations (including Marketing) 1.647 0.755 3.590
## 26 job.occupationFinancial Operations or Financial Services (including Financial Advisor, Broker) 1.351 0.540 3.380
## 27 job.occupationEducation, Training, and Library 0.869 0.356 2.120
## 28 job.occupationArts, Design, Entertainment, Sports, and Media 3.016 1.278 7.119
## 29 job.occupationHealth Diagnosing or Treating Practitioner (such as physician, nurse, dentist, veterinarian, pharmacist) 0.443 0.105 1.874
## 30 job.occupationSales 0.987 0.459 2.122
## increment
## 1 1
## 2 Indicator variable
## 3 Indicator variable
## 4 Indicator variable
## 5 Indicator variable
## 6 Indicator variable
## 7 Indicator variable
## 8 Indicator variable
## 9 Indicator variable
## 10 Indicator variable
## 11 Indicator variable
## 12 Indicator variable
## 13 Indicator variable
## 14 Indicator variable
## 15 Indicator variable
## 16 Indicator variable
## 17 Indicator variable
## 18 Indicator variable
## 19 Indicator variable
## 20 Indicator variable
## 21 Indicator variable
## 22 Indicator variable
## 23 Indicator variable
## 24 Indicator variable
## 25 Indicator variable
## 26 Indicator variable
## 27 Indicator variable
## 28 Indicator variable
## 29 Indicator variable
## 30 Indicator variable
risk.tolerance
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + risk.tolerance,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + risk.tolerance,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.644821 0.290448 -12.549 < 2e-16 ***
## age -0.032445 0.004127 -7.862 4.10e-15 ***
## is.maleTRUE 0.320517 0.169451 1.891 0.0586 .
## risk.tolerance 0.153390 0.035631 4.305 1.68e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 1.00971)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1, risk.tolerance = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.968 0.960 0.976 1
## 2 is.maleTRUE 1.378 0.988 1.921 Indicator variable
## 3 risk.tolerance 1.166 1.087 1.250 1
Miscellaneous
education.level
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + education.level,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + education.level,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.004087 0.325355 -9.233 < 2e-16 ***
## age -0.033604 0.004232 -7.941 2.19e-15 ***
## is.maleTRUE 0.479580 0.169894 2.823 0.00477 **
## education.levelLess than high school degree 0.909354 0.354585 2.565 0.01034 *
## education.levelSome college but no degree (including currently enrolled in college) -0.018952 0.300965 -0.063 0.94979
## education.levelCertificate or technical degree 0.736750 0.365843 2.014 0.04405 *
## education.levelAssociate degree 0.321663 0.324606 0.991 0.32174
## education.levelBachelor’s degree 0.308002 0.263375 1.169 0.24225
## education.levelMaster’s degree -0.352900 0.358475 -0.984 0.32491
## education.levelProfessional degree (e.g., MBA, MD, JD) 0.120345 0.444589 0.271 0.78664
## education.levelDoctoral degree 0.426466 0.538741 0.792 0.42861
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9733736)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.967 0.959 0.975 1
## 2 is.maleTRUE 1.615 1.158 2.254 Indicator variable
## 3 education.levelLess than high school degree 2.483 1.239 4.975 Indicator variable
## 4 education.levelSome college but no degree (including currently enrolled in college) 0.981 0.544 1.770 Indicator variable
## 5 education.levelCertificate or technical degree 2.089 1.020 4.280 Indicator variable
## 6 education.levelAssociate degree 1.379 0.730 2.606 Indicator variable
## 7 education.levelBachelor’s degree 1.361 0.812 2.280 Indicator variable
## 8 education.levelMaster’s degree 0.703 0.348 1.419 Indicator variable
## 9 education.levelProfessional degree (e.g., MBA, MD, JD) 1.128 0.472 2.696 Indicator variable
## 10 education.levelDoctoral degree 1.532 0.533 4.404 Indicator variable
income.category
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + income.category,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + income.category,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.273818 0.416856 -7.854 4.39e-15 ***
## age -0.030726 0.004441 -6.920 4.77e-12 ***
## is.maleTRUE 0.468895 0.169410 2.768 0.00565 **
## income.category$1 to $4,999 0.678200 0.462588 1.466 0.14265
## income.category$5,000 to $14,999 0.675499 0.476955 1.416 0.15672
## income.category$15,000 to $24,999 0.927493 0.446426 2.078 0.03777 *
## income.category$25,000 to $39,999 0.318584 0.481331 0.662 0.50806
## income.category$40,000 to $49,999 0.372418 0.546639 0.681 0.49570
## income.category$50,000 to $74,999 0.278145 0.453145 0.614 0.53935
## income.category$75,000 to $99,999 -0.095317 0.496997 -0.192 0.84791
## income.category$100,000 to $149,999 0.016235 0.462073 0.035 0.97197
## income.category$150,000 to $199,999 0.383789 0.466797 0.822 0.41099
## income.category$200,000 or higher 0.513793 0.467091 1.100 0.27136
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9338147)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.970 0.961 0.978 1
## 2 is.maleTRUE 1.598 1.147 2.228 Indicator variable
## 3 income.category$1 to $4,999 1.970 0.796 4.879 Indicator variable
## 4 income.category$5,000 to $14,999 1.965 0.772 5.005 Indicator variable
## 5 income.category$15,000 to $24,999 2.528 1.054 6.065 Indicator variable
## 6 income.category$25,000 to $39,999 1.375 0.535 3.533 Indicator variable
## 7 income.category$40,000 to $49,999 1.451 0.497 4.237 Indicator variable
## 8 income.category$50,000 to $74,999 1.321 0.543 3.210 Indicator variable
## 9 income.category$75,000 to $99,999 0.909 0.343 2.408 Indicator variable
## 10 income.category$100,000 to $149,999 1.016 0.411 2.514 Indicator variable
## 11 income.category$150,000 to $199,999 1.468 0.588 3.665 Indicator variable
## 12 income.category$200,000 or higher 1.672 0.669 4.176 Indicator variable
total.household.savings
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + total.household.savings,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + total.household.savings,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.556369 0.421537 -8.437 < 2e-16 ***
## age -0.030760 0.005611 -5.482 4.3e-08 ***
## is.maleTRUE 0.518701 0.190683 2.720 0.00654 **
## total.household.savingsUnder $50,000 0.763129 0.340146 2.244 0.02488 *
## total.household.savings$50,000 - $99,999 0.704741 0.403520 1.746 0.08076 .
## total.household.savings$250,000 - $499,999 0.042244 0.501924 0.084 0.93293
## total.household.savings$500,000 - $999,999 0.567264 0.500600 1.133 0.25717
## total.household.savings$1,000,000 or more 0.756296 0.453426 1.668 0.09536 .
## total.household.savingsNot sure 0.356281 0.501123 0.711 0.47712
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9623409)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.970 0.959 0.980 1
## 2 is.maleTRUE 1.680 1.156 2.441 Indicator variable
## 3 total.household.savingsUnder $50,000 2.145 1.101 4.178 Indicator variable
## 4 total.household.savings$50,000 - $99,999 2.023 0.917 4.463 Indicator variable
## 5 total.household.savings$250,000 - $499,999 1.043 0.390 2.790 Indicator variable
## 6 total.household.savings$500,000 - $999,999 1.763 0.661 4.705 Indicator variable
## 7 total.household.savings$1,000,000 or more 2.130 0.876 5.182 Indicator variable
## 8 total.household.savingsNot sure 1.428 0.535 3.814 Indicator variable
overall.financial.wellbeing
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + overall.financial.wellbeing,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + overall.financial.wellbeing,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.268126 0.350735 -6.467 1.04e-10 ***
## age -0.031841 0.004166 -7.643 2.29e-14 ***
## is.maleTRUE 0.484261 0.168554 2.873 0.00407 **
## overall.financial.wellbeingJust getting by -0.317562 0.311349 -1.020 0.30777
## overall.financial.wellbeingDoing okay -0.806923 0.296748 -2.719 0.00655 **
## overall.financial.wellbeingLiving comfortably -0.691068 0.296050 -2.334 0.01960 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9535067)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.977 1
## 2 is.maleTRUE 1.623 1.166 2.258 Indicator variable
## 3 overall.financial.wellbeingJust getting by 0.728 0.395 1.340 Indicator variable
## 4 overall.financial.wellbeingDoing okay 0.446 0.249 0.798 Indicator variable
## 5 overall.financial.wellbeingLiving comfortably 0.501 0.280 0.895 Indicator variable
received.food.stamps
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + received.food.stamps,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + received.food.stamps,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.089908 0.237432 -13.014 < 2e-16 ***
## age -0.031579 0.004243 -7.442 1.06e-13 ***
## is.maleTRUE 0.530637 0.168799 3.144 0.00167 **
## received.food.stampsYes 1.018607 0.197450 5.159 2.53e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9422187)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.977 1
## 2 is.maleTRUE 1.700 1.221 2.367 Indicator variable
## 3 received.food.stampsYes 2.769 1.881 4.078 Indicator variable
life.satisfaction
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + life.satisfaction,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + life.satisfaction,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.083025 0.307205 -6.781 1.25e-11 ***
## age -0.031802 0.004047 -7.858 4.23e-15 ***
## is.maleTRUE 0.489125 0.168066 2.910 0.00362 **
## life.satisfaction -0.110727 0.034123 -3.245 0.00118 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9583323)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1, life.satisfaction = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.976 1
## 2 is.maleTRUE 1.631 1.173 2.267 Indicator variable
## 3 life.satisfaction 0.895 0.837 0.957 1
employer.type
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + employer.type,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + employer.type,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.865859 0.239651 -11.958 < 2e-16 ***
## age -0.032834 0.004279 -7.674 1.8e-14 ***
## is.maleTRUE 0.457349 0.172355 2.654 0.00798 **
## employer.typeNot asked 0.019641 0.223010 0.088 0.92982
## employer.typeRefused -10.738646 0.432384 -24.836 < 2e-16 ***
## employer.typeGovernment -0.071288 0.273183 -0.261 0.79413
## employer.typeNon-profit organization including tax exempt and charitable organizations -0.194815 0.337976 -0.576 0.56434
## employer.typeSelf-employed 0.513342 0.244855 2.097 0.03606 *
## employer.typeWorking in the family business 0.679120 0.593724 1.144 0.25272
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9561779)
##
## Number of Fisher Scoring iterations: 13
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.968 0.960 0.976 1
## 2 is.maleTRUE 1.580 1.127 2.215 Indicator variable
## 3 employer.typeNot asked 1.020 0.659 1.579 Indicator variable
## 4 employer.typeRefused 0.000 0.000 0.000 Indicator variable
## 5 employer.typeGovernment 0.931 0.545 1.591 Indicator variable
## 6 employer.typeNon-profit organization including tax exempt and charitable organizations 0.823 0.424 1.596 Indicator variable
## 7 employer.typeSelf-employed 1.671 1.034 2.700 Indicator variable
## 8 employer.typeWorking in the family business 1.972 0.616 6.315 Indicator variable
employer.type = Self-employed & job.occupation = Computer and
Mathematical
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male +
I(employer.type == "Self-employed") * I(job.occupation == "Computer and Mathematical"),
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + I(employer.type ==
## "Self-employed") * I(job.occupation == "Computer and Mathematical"),
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.926030 0.223009 -13.121 < 2e-16 ***
## age -0.032243 0.004112 -7.841 4.86e-15 ***
## is.maleTRUE 0.402155 0.171206 2.349 0.01884 *
## I(employer.type == "Self-employed")TRUE 0.535333 0.238590 2.244 0.02487 *
## I(job.occupation == "Computer and Mathematical")TRUE 0.828596 0.255330 3.245 0.00118 **
## I(employer.type == "Self-employed")TRUE:I(job.occupation == "Computer and Mathematical")TRUE -0.030258 0.800649 -0.038 0.96985
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9686841)
##
## Number of Fisher Scoring iterations: 7
print(or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1)))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.968 0.960 0.976 1
## 2 is.maleTRUE 1.495 1.069 2.091 Indicator variable
## 3 I(employer.type == "Self-employed")TRUE 1.708 1.070 2.726 Indicator variable
## 4 I(job.occupation == "Computer and Mathematical")TRUE 2.290 1.388 3.778 Indicator variable
## 5 I(employer.type == "Self-employed")TRUE:I(job.occupation == "Computer and Mathematical")TRUE 0.970 0.202 4.661 Indicator variable
freelance.or.gig.work
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + freelance.or.gig.work,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + freelance.or.gig.work,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.056709 0.228730 -13.364 < 2e-16 ***
## age -0.030618 0.004081 -7.502 6.75e-14 ***
## is.maleTRUE 0.465822 0.168194 2.770 0.00562 **
## freelance.or.gig.workTRUE 1.218055 0.226264 5.383 7.45e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.973539)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.970 0.962 0.978 1
## 2 is.maleTRUE 1.593 1.146 2.216 Indicator variable
## 3 freelance.or.gig.workTRUE 3.381 2.170 5.268 Indicator variable
resides.in.metro.statistical.area
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + resides.in.metro.statistical.area,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + resides.in.metro.statistical.area,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.717748 0.305226 -8.904 < 2e-16 ***
## age -0.032861 0.004008 -8.199 2.68e-16 ***
## is.maleTRUE 0.474676 0.168284 2.821 0.0048 **
## resides.in.metro.statistical.areaTRUE -0.116266 0.245596 -0.473 0.6359
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9614606)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.968 0.960 0.975 1
## 2 is.maleTRUE 1.607 1.156 2.236 Indicator variable
## 3 resides.in.metro.statistical.areaTRUE 0.890 0.550 1.441 Indicator variable
respondent.device.type
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + respondent.device.type,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + respondent.device.type,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.918718 0.310897 -9.388 < 2e-16 ***
## age -0.031673 0.004376 -7.237 4.87e-13 ***
## is.maleTRUE 0.474081 0.176238 2.690 0.00716 **
## respondent.device.typeiPad 0.103007 0.620870 0.166 0.86823
## respondent.device.typeiPod 2.970426 1.128025 2.633 0.00847 **
## respondent.device.typeiPhone 0.066980 0.245593 0.273 0.78507
## respondent.device.typeMac -0.299168 0.312683 -0.957 0.33870
## respondent.device.typeChromeBook -0.691715 1.016032 -0.681 0.49601
## respondent.device.typeAndroidTablet 0.392972 0.481166 0.817 0.41411
## respondent.device.typeAndroidPhone 0.182044 0.218314 0.834 0.40438
## respondent.device.typeTabletOther -13.379916 1.021910 -13.093 < 2e-16 ***
## respondent.device.typeKindleFireTablet -13.051119 0.219470 -59.467 < 2e-16 ***
## respondent.device.typeothers 0.505531 0.618699 0.817 0.41390
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9576177)
##
## Number of Fisher Scoring iterations: 16
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.969 0.961 0.977 1
## 2 is.maleTRUE 1.607 1.137 2.269 Indicator variable
## 3 respondent.device.typeiPad 1.108 0.328 3.743 Indicator variable
## 4 respondent.device.typeiPod 19.500 2.137 177.957 Indicator variable
## 5 respondent.device.typeiPhone 1.069 0.661 1.730 Indicator variable
## 6 respondent.device.typeMac 0.741 0.402 1.369 Indicator variable
## 7 respondent.device.typeChromeBook 0.501 0.068 3.669 Indicator variable
## 8 respondent.device.typeAndroidTablet 1.481 0.577 3.804 Indicator variable
## 9 respondent.device.typeAndroidPhone 1.200 0.782 1.840 Indicator variable
## 10 respondent.device.typeTabletOther 0.000 0.000 0.000 Indicator variable
## 11 respondent.device.typeKindleFireTablet 0.000 0.000 0.000 Indicator variable
## 12 respondent.device.typeothers 1.658 0.493 5.575 Indicator variable
is.kp.laptop.user
svyglm.fit <- svyglm(crypto.used.as.payment ~ age + is.male + is.kp.laptop.user,
SHED, family = stats::quasibinomial(link = "logit"))
summary(svyglm.fit)
##
## Call:
## svyglm(formula = crypto.used.as.payment ~ age + is.male + is.kp.laptop.user,
## design = SHED, family = stats::quasibinomial(link = "logit"))
##
## Survey design:
## svydesign(ids = ~0, data = SHED, weights = SHED$weight_pop)
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2.826935 0.216554 -13.054 < 2e-16 ***
## age -0.032808 0.004015 -8.171 3.37e-16 ***
## is.maleTRUE 0.472575 0.168431 2.806 0.00503 **
## is.kp.laptop.userTRUE 0.247685 0.471514 0.525 0.59939
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for quasibinomial family taken to be 0.9638515)
##
## Number of Fisher Scoring iterations: 7
or_svyglm(SHED$variables, svyglm.fit, incr = list(age = 1))
## predictor oddsratio ci_low (2.5) ci_high (97.5) increment
## 1 age 0.968 0.960 0.975 1
## 2 is.maleTRUE 1.604 1.153 2.232 Indicator variable
## 3 is.kp.laptop.userTRUE 1.281 0.508 3.228 Indicator variable