7 Perceptions of Neighborhood Change
7.1 Descriptive analysis of percieved neighborhood change
Calculate overall percentages of repondents who reported that their neighborhood had gotten better, worse, and stayed the same.
chgmeans <- with(dcas16svy, svymean(~nhdchg, na.rm=TRUE)) %>%
MIcombine() %>%
summary() %>%
mutate_at(1:4, ~.*100)## Multiple imputation results:
## with(dcas16svy, svymean(~nhdchg, na.rm = TRUE))
## MIcombine.default(.)
## results se (lower upper) missInfo
## nhdchgWorse 0.1150047 0.01813348 0.07941268 0.1505968 7 %
## nhdchgSame 0.5397289 0.02811966 0.48461540 0.5948425 0 %
## nhdchgBetter 0.3452663 0.02788291 0.29060297 0.3999297 3 %
kable(chgmeans, digits=1)| results | se | (lower | upper) | missInfo | |
|---|---|---|---|---|---|
| nhdchgWorse | 11.5 | 1.8 | 7.9 | 15.1 | 7 % |
| nhdchgSame | 54.0 | 2.8 | 48.5 | 59.5 | 0 % |
| nhdchgBetter | 34.5 | 2.8 | 29.1 | 40.0 | 3 % |
Plot values measuring the percentage of respondents who reported that their neighborhood had gotten better, worse, and stayed the same.
chglevs <- c("Worse", "Same", "Better")
chgmeans_tbl <- with(dcas16svy,
svyby(~nhdchg, ~raceeth, svymean, na.rm=TRUE)) %>%
MIcombine()%>% summary() %>%
as_tibble() %>%
mutate_at(1:4, ~.*100) %>%
mutate(
raceeth = relevel(factor(
rep(c("White", "Asian", "Black", "Latino"), 3)), ref="White"),
nhdchg = ordered(rep(chglevs, each=4), levels=chglevs)
)## Multiple imputation results:
## with(dcas16svy, svyby(~nhdchg, ~raceeth, svymean, na.rm = TRUE))
## MIcombine.default(.)
## results se (lower upper) missInfo
## white:nhdchgWorse 0.12711767 0.02571501 0.07671714 0.17751819 0 %
## asian:nhdchgWorse 0.04495074 0.01474747 0.01603964 0.07386184 3 %
## black:nhdchgWorse 0.12078048 0.03693358 0.04838487 0.19317608 2 %
## latino:nhdchgWorse 0.15650986 0.05397658 0.05047685 0.26254287 9 %
## white:nhdchgSame 0.60396643 0.04272662 0.52022377 0.68770909 0 %
## asian:nhdchgSame 0.57690831 0.05564277 0.46785037 0.68596625 0 %
## black:nhdchgSame 0.51067739 0.06306491 0.38707244 0.63428233 0 %
## latino:nhdchgSame 0.44898441 0.06505625 0.32147650 0.57649233 0 %
## white:nhdchgBetter 0.26891591 0.04016808 0.19018792 0.34764390 0 %
## asian:nhdchgBetter 0.37814095 0.05554821 0.26926834 0.48701357 0 %
## black:nhdchgBetter 0.36854214 0.06307183 0.24492219 0.49216209 1 %
## latino:nhdchgBetter 0.39450573 0.06631893 0.26439332 0.52461814 6 %
names(chgmeans_tbl) <- c("mean", "se", "lci", "uci", "missinfo", "raceeth",
"nhdchg")
dodge_wd <- .25
chg_plt <- ggplot(chgmeans_tbl, aes(x=nhdchg, y=mean, color=raceeth, shape=raceeth)) +
geom_point(position=position_dodge(width=dodge_wd), size=2.25) +
geom_linerange(aes(ymin=lci, ymax=uci), position=position_dodge(dodge_wd)) +
scale_color_grey(start=0.4, end=.7) +
scale_shape_manual(values=c(15:18)) +
labs(
x = NULL,
y = "Percent",
color = NULL,
shape = NULL
) +
theme_minimal() +
theme(
legend.position = "bottom",
panel.grid.major.x = element_blank()
)
chg_plt_cap <- paste(
"Percent of respondents who report how neighborhood has changed in",
"past five years by race"
)
Figure 7.1: Percent of respondents who report how neighborhood has changed in past five years by race
7.2 Regression analyses of perceived neighborhood change
Follow the same process of model development as with the models of within-neighborhood satisfaction. Report the results of all four models. To ease the interpretation of the results, report only models 1 & 3 in the paper.
## Note: "non-integer #successes" warnings suppressed
m1ch <- with(dcas16svy, svyglm(
as.formula(paste('better ~', m1)), family=binomial)
)
m2ch <- with(dcas16svy, svyglm(
as.formula(paste('better ~', m2)), family=binomial)
)
m3ch <- with(dcas16svy, svyglm(
as.formula(paste('better ~', m3)), family=binomial)
)
m4ch <- with(dcas16svy, svyglm(
as.formula(paste('better ~', m4)), family=binomial)
)
ch_tbl <- report_models(
MIcombine_aic(m1ch), MIcombine_aic(m2ch),
MIcombine_aic(m3ch), MIcombine_aic(m4ch),
caption = paste(
"Logistic regression coefficients and standard errors predicted",
"for models estimating neighborhood improvement among residents",
"of mulitracial neighborhoods"
),
label = "tab:change",
reglabels = regression_labels,
use.headers = TRUE
)
statrow <- nrow(ch_tbl)-3
ch_tbl_pres <- ch_tbl[,c(1,2,4)] %>%
insert_row(c("Tract fixed effects", rep("X", 2)), after=statrow) %>%
set_top_border(statrow+1, everywhere, TRUE) %>%
set_top_border(statrow+2, everywhere, FALSE) %>%
set_top_padding(0) %>%
set_bottom_padding(0)
cat(
sub("\\(\\\\#(tab:.+?)\\)", "\\\\label{\\1\\}", to_latex(ch_tbl_pres)),
file="tables/change.tex"
)
ch_tbl| (1) | (2) | (3) | (4) | |
|---|---|---|---|---|
| (Intercept) | 1.167 | 1.547 | 1.669 | 2.742 * |
| (1.047) | (1.123) | (1.220) | (1.261) | |
| Race | ||||
| Asian | 1.344 ** | 0.905 | 0.936 | |
| (0.426) | (0.522) | (0.511) | ||
| Black | 1.436 ** | 1.383 ** | 1.205 * | |
| (0.456) | (0.473) | (0.498) | ||
| Latinx | 1.650 *** | 1.284 * | 1.253 * | |
| (0.466) | (0.516) | (0.538) | ||
| Demographics | ||||
| Age | -0.002 | 0.030 * | 0.031 * | |
| (0.011) | (0.013) | (0.013) | ||
| Foreign Born | 0.593 | 0.546 | 0.954 ** | |
| (0.411) | (0.416) | (0.343) | ||
| Male | 0.180 | 0.222 | 0.253 | |
| (0.316) | (0.319) | (0.306) | ||
| Children Present | 0.082 | 0.022 | 0.119 | |
| (0.331) | (0.345) | (0.345) | ||
| Married | 0.317 | -0.129 | -0.350 | |
| (0.330) | (0.338) | (0.333) | ||
| Socioeconomic | ||||
| <H.S. | 0.545 | 0.685 | 0.946 | |
| (1.003) | (1.018) | (0.969) | ||
| Some college, no B.A. | -0.629 | -0.606 | -0.573 | |
| (0.528) | (0.513) | (0.495) | ||
| B.A. | -0.895 | -1.093 * | -1.000 | |
| (0.542) | (0.536) | (0.517) | ||
| M.A.+ | -0.880 | -1.082 * | -1.011 * | |
| (0.499) | (0.476) | (0.474) | ||
| Neighborhood perceptions | ||||
| Home owner | 0.643 | 0.459 | ||
| (0.414) | (0.415) | |||
| Years in neighborhood | -0.107 *** | -0.104 *** | ||
| (0.021) | (0.020) | |||
| 10-50 blocks | 0.728 * | 0.838 * | ||
| (0.363) | (0.358) | |||
| >50 blocks | 0.599 | 0.753 | ||
| (0.662) | (0.613) | |||
| N | 632 | 632 | 632 | 632 |
| AIC | 651.992 | 654.594 | 615.867 | 622.708 |
| *** p < 0.001; ** p < 0.01; * p < 0.05. | ||||
Calculate average marginal effects of race on neighborhood change based on results of model 3.
m3ch_mfx <- MImargins(m3ch, param="margins") %>%
mutate_at(vars(val, SE), ~.*100) %>%
mutate(p = pnorm(abs(val/SE), lower.tail=FALSE))
kable(m3ch_mfx, digits=c(0,1,1,3))| raceeth | val | SE | p |
|---|---|---|---|
| asian | 10.5 | 5.7 | 0.033 |
| black | 13.8 | 5.5 | 0.006 |
| latino | 14.4 | 6.2 | 0.010 |