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"
)
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
Table 7.1: Logistic regression coefficients and standard errors predicted for models estimating neighborhood improvement among residents of mulitracial neighborhoods
(1)(2)(3)(4)
(Intercept)1.167    1.547   1.669    2.742 *  
(1.047)   (1.123)  (1.220)   (1.261)   
Race                               
Asian1.344 ** 0.905   0.936            
(0.426)   (0.522)  (0.511)           
Black1.436 ** 1.383 **1.205 *          
(0.456)   (0.473)  (0.498)           
Latinx1.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        
AIC651.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