psych::VSS.scree(cor(cordat5))
factanal(x = cordat5, factors = 2, rotation = "varimax")
##
## Call:
## factanal(x = cordat5, factors = 2, rotation = "varimax")
##
## Uniquenesses:
## unemp poverty medinc ownerocc black h.density hs
## 0.508 0.183 0.441 0.005 0.739 0.805 0.493
##
## Loadings:
## Factor1 Factor2
## unemp 0.701
## poverty 0.863 -0.268
## medinc -0.720 0.199
## ownerocc -0.450 0.890
## black 0.503
## h.density -0.441
## hs -0.708
##
## Factor1 Factor2
## SS loadings 2.714 1.110
## Proportion Var 0.388 0.159
## Cumulative Var 0.388 0.546
##
## Test of the hypothesis that 2 factors are sufficient.
## The chi square statistic is 92285.95 on 8 degrees of freedom.
## The p-value is 0
fitAfterRotation <- factanal(cordat5, factors = 2, rotation = "varimax")
print(fitAfterRotation$loadings, cutoff = .40, sort = TRUE)
##
## Loadings:
## Factor1 Factor2
## unemp 0.701
## poverty 0.863
## medinc -0.720
## black 0.503
## hs -0.708
## ownerocc -0.450 0.890
## h.density -0.441
##
## Factor1 Factor2
## SS loadings 2.714 1.110
## Proportion Var 0.388 0.159
## Cumulative Var 0.388 0.546
f <- factanal(cordat5, factors=2, rotation="varimax", scores="regression")
binded2 <- cbind(binded2, f$scores)
agg.dat <- aggregate(NPO1~labels, data=reg.dat, FUN="mean")
agg.dat <- merge(agg.dat, aggregate(NPO2~labels, data=reg.dat, FUN="mean"), by="labels")
plot(agg.dat$NPO1,agg.dat$NPO2, col="white",
bty="l", main="Relationship of Vulnerability and Urbanity by NTEE Code",
xlab="Vulnerability",
ylab="Urbanity")
text(agg.dat$NPO1,agg.dat$NPO2, labels = agg.dat$labels, cex=.6)
reg.dat <- read.csv("~/Dropbox (ASU)/Political Economy of NP Startups/data-and-analysis/data-prepped/RegressionData.csv")
pander(head(reg.dat))
| X | EIN | labels | unemp | poverty | medinc | ownerocc |
|---|---|---|---|---|---|---|
| 1 | 111667771 | Religion | 0.02291 | 0.03907 | 140221 | 0.8599 |
| 2 | 111667771 | Religion | 0.02291 | 0.03907 | 140221 | 0.8599 |
| 3 | 112405741 | Sports | 0.1316 | 0.2773 | 47835 | 0.4931 |
| 4 | 112405741 | Sports | 0.1316 | 0.2773 | 47835 | 0.4931 |
| 5 | 112411617 | Human Services | 0.08865 | 0.04206 | 85714 | 0.8557 |
| 6 | 112411617 | Human Services | 0.08865 | 0.04206 | 85714 | 0.8557 |
| black | h.density | hs | BMS1 | BMS2 | NPO1 | NPO2 |
|---|---|---|---|---|---|---|
| 0.003371 | 268 | 0.9846 | -0.7308 | -0.5122 | -1.23 | -0.4577 |
| 0.003371 | 268 | 0.9846 | -0.6698 | -0.4209 | -1.23 | -0.4577 |
| 0.5219 | 1919 | 0.6683 | 0.6721 | 0.5889 | 1.564 | -0.04123 |
| 0.5219 | 1919 | 0.6683 | 0.6721 | 0.5889 | 1.564 | -0.04123 |
| 0.9141 | 2396 | 0.8813 | -0.6054 | -0.6911 | -0.101 | -1.003 |
| 0.9141 | 2396 | 0.8813 | -0.729 | -0.7828 | -0.101 | -1.003 |
| cbsaname | dist.to.npo | ave.dist |
|---|---|---|
| New York-Newark-Jersey City, NY-NJ-PA | 2.612 | 0.7237 |
| New York-Newark-Jersey City, NY-NJ-PA | 2.612 | 0.7237 |
| New York-Newark-Jersey City, NY-NJ-PA | 0.5226 | 0.837 |
| New York-Newark-Jersey City, NY-NJ-PA | 0.5226 | 0.837 |
| New York-Newark-Jersey City, NY-NJ-PA | 391.7 | 778.7 |
| New York-Newark-Jersey City, NY-NJ-PA | 391.7 | 778.7 |
Making factors into zscores below…
reg.dat$BMS1Z <- scale(reg.dat$BMS1)
reg.dat$BMS2Z <- scale(reg.dat$BMS2)
reg.dat$NPO1Z <- scale(reg.dat$NPO1)
reg.dat$NPO2Z <- scale(reg.dat$NPO2)
Regression for Board Member Vulnerability
reg1a <- (lm(BMS1Z~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) ,data=reg.dat))
reg1b <- (lm(BMS1Z~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) +factor(labels),data=reg.dat))
reg1c <- (lm(BMS1Z~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) +factor(cbsaname),data=reg.dat))
reg1d <- (lm(BMS1Z~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) +factor(labels)+factor(cbsaname),data=reg.dat))
stargazer(reg1a, reg1b, reg1c, reg1d,type="text",title ="Board Member Community Vulnerability",
keep.stat=c("n", "adj.rsq"),
omit=c("labels", "cbsaname"),
covariate.labels=c("Nonprofit Neighborhood Vulneraility",
"Nonprofit Neighborhood Urbanity",
"Average Distance of Board Members to NPO (log)",
"Average Distance Between Board Members (log)"),
add.lines=list(c("NTEE Code","", "Yes", "","Yes"), c("MSA?", "", "", "Yes", "Yes")))
##
## Board Member Community Vulnerability
## ======================================================================================
## Dependent variable:
## ---------------------------------------
## BMS1Z
## (1) (2) (3) (4)
## --------------------------------------------------------------------------------------
## Nonprofit Neighborhood Vulneraility 0.368*** 0.352*** 0.313*** 0.297***
## (0.003) (0.003) (0.003) (0.003)
##
## Nonprofit Neighborhood Urbanity -0.054*** -0.055*** -0.016*** -0.017***
## (0.003) (0.003) (0.003) (0.003)
##
## Average Distance of Board Members to NPO (log) -0.033*** -0.034*** -0.037*** -0.038***
## (0.004) (0.004) (0.004) (0.004)
##
## Average Distance Between Board Members (log) 0.019*** 0.017*** 0.021*** 0.019***
## (0.004) (0.004) (0.004) (0.004)
##
## Constant 0.024*** 0.038* 0.182*** 0.194***
## (0.005) (0.022) (0.017) (0.027)
##
## --------------------------------------------------------------------------------------
## NTEE Code Yes Yes
## MSA? Yes Yes
## Observations 104,483 104,483 104,483 104,483
## Adjusted R2 0.137 0.146 0.164 0.172
## ======================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Regressions for Board Member Urbanity
reg2a <- (lm(BMS2Z~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) ,data=reg.dat))
reg2b <- (lm(BMS2Z~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) +factor(labels),data=reg.dat))
reg2c <- (lm(BMS2Z~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) +factor(cbsaname),data=reg.dat))
reg2d <- (lm(BMS2Z~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) +factor(labels)+factor(cbsaname),data=reg.dat))
stargazer(reg2a, reg2b, reg2c, reg2d,type="text",title ="Board Member Community Urbanity",
keep.stat=c("n", "adj.rsq"),
omit=c("labels", "cbsaname"),
covariate.labels=c("Nonprofit Neighborhood Vulneraility",
"Nonprofit Neighborhood Urbanity",
"Average Distance of Board Members to NPO (log)",
"Average Distance Between Board Members (log)"),
add.lines=list(c("NTEE Code?","", "Yes", "","Yes"), c("MSA?", "", "", "Yes", "Yes")))
##
## Board Member Community Urbanity
## ======================================================================================
## Dependent variable:
## ---------------------------------------
## BMS2Z
## (1) (2) (3) (4)
## --------------------------------------------------------------------------------------
## Nonprofit Neighborhood Vulneraility -0.039*** -0.044*** 0.022*** 0.016***
## (0.003) (0.003) (0.003) (0.003)
##
## Nonprofit Neighborhood Urbanity 0.256*** 0.246*** 0.177*** 0.170***
## (0.003) (0.003) (0.003) (0.003)
##
## Average Distance of Board Members to NPO (log) -0.007 -0.008* 0.001 0.0003
## (0.004) (0.004) (0.004) (0.004)
##
## Average Distance Between Board Members (log) 0.032*** 0.029*** 0.025*** 0.022***
## (0.004) (0.004) (0.004) (0.004)
##
## Constant -0.070*** -0.178*** -0.448*** -0.512***
## (0.006) (0.023) (0.018) (0.028)
##
## --------------------------------------------------------------------------------------
## NTEE Code? Yes Yes
## MSA? Yes Yes
## Observations 104,483 104,483 104,483 104,483
## Adjusted R2 0.067 0.074 0.110 0.115
## ======================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01
Regressions for Board Member Urbanity
reg.dat$facdiff <- reg.dat$BMS1Z-reg.dat$NPO1Z
reg2a <- (lm(facdiff~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) ,data=reg.dat))
reg2b <- (lm(facdiff~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) +factor(labels),data=reg.dat))
reg2c <- (lm(facdiff~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) +factor(cbsaname),data=reg.dat))
reg2d <- (lm(facdiff~NPO1Z+NPO2Z+log(dist.to.npo)+log(ave.dist+1) +factor(labels)+factor(cbsaname),data=reg.dat))
stargazer(reg2a, reg2b, reg2c, reg2d,type="text",title ="Difference in Board Member and Community Vulnerability",
keep.stat=c("n", "adj.rsq"),
omit=c("labels", "cbsaname"),
covariate.labels=c("Nonprofit Neighborhood Vulneraility",
"Nonprofit Neighborhood Urbanity",
"Average Distance of Board Members to NPO (log)",
"Average Distance Between Board Members (log)"),
add.lines=list(c("NTEE Code?","", "Yes", "","Yes"), c("MSA?", "", "", "Yes", "Yes")))
##
## Difference in Board Member and Community Vulnerability
## ======================================================================================
## Dependent variable:
## ---------------------------------------
## facdiff
## (1) (2) (3) (4)
## --------------------------------------------------------------------------------------
## Nonprofit Neighborhood Vulneraility -0.632*** -0.648*** -0.687*** -0.703***
## (0.003) (0.003) (0.003) (0.003)
##
## Nonprofit Neighborhood Urbanity -0.054*** -0.055*** -0.016*** -0.017***
## (0.003) (0.003) (0.003) (0.003)
##
## Average Distance of Board Members to NPO (log) -0.033*** -0.034*** -0.037*** -0.038***
## (0.004) (0.004) (0.004) (0.004)
##
## Average Distance Between Board Members (log) 0.019*** 0.017*** 0.021*** 0.019***
## (0.004) (0.004) (0.004) (0.004)
##
## Constant 0.024*** 0.038* 0.182*** 0.194***
## (0.005) (0.022) (0.017) (0.027)
##
## --------------------------------------------------------------------------------------
## NTEE Code? Yes Yes
## MSA? Yes Yes
## Observations 104,483 104,483 104,483 104,483
## Adjusted R2 0.321 0.328 0.342 0.348
## ======================================================================================
## Note: *p<0.1; **p<0.05; ***p<0.01