In my last post I said that I would try to investigate the question of who actually does want a casino, and whether place of residence is a factor in where they want the casino to be built. So, here goes something:

The first line of attack in this blog post is to distinguish between people based on their responses to the third question on the survey, the one asking people to rate the importance of a long list of issues. When I looked at this list originally, I knew that I would want to reduce the dimensionality using PCA.

library(psych) issues.pca = principal(casino[,8:23], 3, rotate="varimax",scores=TRUE)

The PCA resulted in the 3 components listed in the table below. The first component had variables loading on to it that seemed to relate to the casino being a big attraction with lots of features, so I named it “Go big or Go Home”. On the second component there seemed to be variables loading on to it that related to technical details, while the third component seemed to have variables loading on to it that dealt with social or environmental issues.

Go Big or Go Home | Concerned with Technical Details | Concerned with Social/Environmental Issues or not | Issue/Concern | |

Q3_A | 0.181 | 0.751 | Design of the facility | |

Q3_B | 0.366 | 0.738 | Employment Opportunities | |

Q3_C | 0.44 | 0.659 | Entertainment and cultural activities | |

Q3_D | 0.695 | 0.361 | Expanded convention facilities | |

Q3_E | 0.701 | 0.346 | Integration with surrounding areas | |

Q3_F | 0.808 | 0.266 | New hotel accommodations | |

Q3_G | -0.117 | 0.885 | Problem gambling & health concerns | |

Q3_H | 0.904 | Public safety and social concerns | ||

Q3_I | 0.254 | 0.716 | Public space | |

Q3_J | 0.864 | 0.218 | Restaurants | |

Q3_K | 0.877 | 0.157 | Retail | |

Q3_L | 0.423 | 0.676 | -0.1 | Revenue for the city |

Q3_M | 0.218 | 0.703 | 0.227 | Support for local businesses |

Q3_N | 0.647 | 0.487 | -0.221 | Tourist attraction |

Q3_O | 0.118 | 0.731 | Traffic concerns | |

Q3_P | 0.497 | 0.536 | 0.124 | Training and career development |

Once I was satisfied that I had a decent understanding of what the PCA was telling me, I loaded the component scores into the original dataframe.

casino[,110:112] = issues.pca$scores names(casino)[110:112] = c("GoBigorGoHome","TechnicalDetails","Soc.Env.Issues")

In order to investigate the question of who wants a casino and where, I decided to use question 6 as a dependent variable (the one asking where they would want it built, if one were to be built) and the PCA components as independent variables. This is a good question to use, because the answer options, if you remember, are “Toronto”, “Adjacent Municipality” and “Neither”. My approach was to model each response individually using logistic regression.

casino$Q6[casino$Q6 == ""] = NA casino$Q6 = factor(casino$Q6, levels=c("Adjacent Municipality","City of Toronto","Neither")) adj.mun = glm(casino$Q6 == "Adjacent Municipality" ~ GoBigorGoHome + TechnicalDetails + Soc.Env.Issues, data=casino, family=binomial(logit)) toronto = glm(casino$Q6 == "City of Toronto" ~ GoBigorGoHome + TechnicalDetails + Soc.Env.Issues, data=casino, family=binomial(logit)) neither = glm(casino$Q6 == "Neither" ~ GoBigorGoHome + TechnicalDetails + Soc.Env.Issues, data=casino, family=binomial(logit))

Following are the summaries of each GLM:

Toronto:

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.

Learn more about bidirectional Unicode characters

Call: | |

glm(formula = casino$Q6 == "City of Toronto" ~ GoBigorGoHome + | |

TechnicalDetails + Soc.Env.Issues, family = binomial(logit), | |

data = casino) | |

Deviance Residuals: | |

Min 1Q Median 3Q Max | |

–3.6426 –0.4745 –0.1156 0.4236 3.4835 | |

Coefficients: | |

Estimate Std. Error z value Pr(>|z|) | |

(Intercept) –1.58707 0.04234 –37.48 <2e-16 *** | |

GoBigorGoHome 1.76021 0.03765 46.75 <2e-16 *** | |

TechnicalDetails 1.77155 0.05173 34.24 <2e-16 *** | |

Soc.Env.Issues –1.63057 0.04262 –38.26 <2e-16 *** | |

— | |

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | |

(Dispersion parameter for binomial family taken to be 1) | |

Null deviance: 13537 on 10365 degrees of freedom | |

Residual deviance: 6818 on 10362 degrees of freedom | |

(7400 observations deleted due to missingness) | |

AIC: 6826 | |

Number of Fisher Scoring iterations: 6 |

Adjacent municipality:

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.

Learn more about bidirectional Unicode characters

Call: | |

glm(formula = casino$Q6 == "Adjacent Municipality" ~ GoBigorGoHome + | |

TechnicalDetails + Soc.Env.Issues, family = binomial(logit), | |

data = casino) | |

Deviance Residuals: | |

Min 1Q Median 3Q Max | |

–1.0633 –0.7248 –0.5722 –0.3264 2.7136 | |

Coefficients: | |

Estimate Std. Error z value Pr(>|z|) | |

(Intercept) –1.45398 0.02673 –54.394 < 2e-16 *** | |

GoBigorGoHome –0.41989 0.02586 –16.239 < 2e-16 *** | |

TechnicalDetails 0.18764 0.02612 7.183 6.82e-13 *** | |

Soc.Env.Issues 0.52325 0.03221 16.243 < 2e-16 *** | |

— | |

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | |

(Dispersion parameter for binomial family taken to be 1) | |

Null deviance: 10431.8 on 10365 degrees of freedom | |

Residual deviance: 9756.4 on 10362 degrees of freedom | |

(7400 observations deleted due to missingness) | |

AIC: 9764.4 | |

Number of Fisher Scoring iterations: 5 |

Neither location:

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.

Learn more about bidirectional Unicode characters

Call: | |

glm(formula = casino$Q6 == "Neither" ~ GoBigorGoHome + TechnicalDetails + | |

Soc.Env.Issues, family = binomial(logit), data = casino) | |

Deviance Residuals: | |

Min 1Q Median 3Q Max | |

–2.4090 –0.7344 –0.3934 0.8966 2.7194 | |

Coefficients: | |

Estimate Std. Error z value Pr(>|z|) | |

(Intercept) –0.22987 0.02415 –9.517 <2e-16 *** | |

GoBigorGoHome –0.85050 0.02462 –34.549 <2e-16 *** | |

TechnicalDetails –1.00182 0.02737 –36.597 <2e-16 *** | |

Soc.Env.Issues 0.69707 0.02584 26.972 <2e-16 *** | |

— | |

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | |

(Dispersion parameter for binomial family taken to be 1) | |

Null deviance: 14215 on 10365 degrees of freedom | |

Residual deviance: 10557 on 10362 degrees of freedom | |

(7400 observations deleted due to missingness) | |

AIC: 10565 | |

Number of Fisher Scoring iterations: 4 |

And here is a quick summary of the above GLM information:

Judging from these results, it looks like those who want a casino in Toronto don’t focus on the big social/environmental issues surrounding the casino, but do focus on the flashy and non-flashy details and benefits alike. Those who want a casino outside of Toronto do care about the social/environmental issues, don’t care as much about the flashy details, but do have a focus on some of the non-flashy details. Finally, those not wanting a casino in either location care about the social/environmental issues, but don’t care about any of the details.

Here’s where the issue of location comes into play. When I look at the summary for the GLM that predicts who wants a casino in an adjacent municipality, I get the feeling that it’s picking up people living in the down-town core who just don’t think the area can handle a casino. In other words, I think there might be a “not in my backyard!” effect.

The first inkling that this might be the case comes from an article from the Martin Prosperity Institute (MPI), who analyzed the same data set, and managed to get a very nice looking heat map-map of the responses to the first question on the survey, asking people how they feel about having a new casino in Toronto. From this map, it does look like people in Downtown Toronto are feeling pretty negative about a new casino, whereas those in the far east and west of Toronto are feeling better about it.

My next evidence comes from the cities uncovered by geocoding the responses in the data set. I decided to create a very simple indicator variable, distinguishing those for whom the “City” is Toronto, and those for whom the city is anything else. I like this better than the MPI analysis, because it looks at peoples’ attitudes towards a casino both inside and outside of Toronto (rather than towards the concept of a new Casino in Toronto). If there really is a “not in my backyard!” effect, I would expect to see evidence that those in Toronto are more disposed towards a casino in an adjacent municipality, and that those from outside of Toronto are more disposed towards a casino inside Toronto! Here we go:

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.

Learn more about bidirectional Unicode characters

library(ff) | |

library(ggthemes) | |

ffload(file="casino", overwrite=TRUE) | |

casino.orig$Outside.of.Toronto = as.ff(ifelse(casino.orig[,"City"] == "Toronto",0,1)) | |

casino.in.toronto = glm(casino.orig[,"Q6"] == "City of Toronto" ~ Outside.of.Toronto, data=casino.orig, family=binomial(logit)) | |

casino.outside.toronto = glm(casino.orig[,"Q6"] == "Adjacent Municipality" ~ Outside.of.Toronto, data=casino.orig, family=binomial(logit)) | |

summary(casino.in.toronto) | |

Call: | |

glm(formula = casino.orig[, "Q6"] == "City of Toronto" ~ Outside.of.Toronto, | |

family = binomial(logit), data = casino.orig) | |

Deviance Residuals: | |

Min 1Q Median 3Q Max | |

–0.9132 –0.9132 –0.7205 1.4669 1.7179 | |

Coefficients: | |

Estimate Std. Error z value Pr(>|z|) | |

(Intercept) –1.21605 0.02600 –46.77 <2e-16 *** | |

Outside.of.Toronto 0.55712 0.03855 14.45 <2e-16 *** | |

— | |

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | |

(Dispersion parameter for binomial family taken to be 1) | |

Null deviance: 16278 on 13881 degrees of freedom | |

Residual deviance: 16070 on 13880 degrees of freedom | |

(3884 observations deleted due to missingness) | |

AIC: 16074 | |

Number of Fisher Scoring iterations: 4 | |

————————————————– | |

summary(casino.outside.toronto) | |

Call: | |

glm(formula = casino.orig[, "Q6"] == "Adjacent Municipality" ~ | |

Outside.of.Toronto, family = binomial(logit), data = casino.orig) | |

Deviance Residuals: | |

Min 1Q Median 3Q Max | |

–0.7280 –0.7280 –0.5554 –0.5554 1.9726 | |

Coefficients: | |

Estimate Std. Error z value Pr(>|z|) | |

(Intercept) –1.19254 0.02583 –46.16 <2e-16 *** | |

Outside.of.Toronto –0.59879 0.04641 –12.90 <2e-16 *** | |

— | |

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 | |

(Dispersion parameter for binomial family taken to be 1) | |

Null deviance: 13786 on 13881 degrees of freedom | |

Residual deviance: 13611 on 13880 degrees of freedom | |

(3884 observations deleted due to missingness) | |

AIC: 13615 | |

Number of Fisher Scoring iterations: 4 | |

——————————————- | |

casino.loc.by.city.res = as.matrix(table(casino.orig[,"Outside.of.Toronto"], casino.orig[,"Q6"])[,2:4], dimnames=list(c("Those Living Inside the City of Toronto", "Those Living Outside the City of Toronto"),colnames(casino.loc.by.city.res))) | |

rownames(casino.loc.by.city.res) = c("Those Living Inside the City of Toronto", "Those Living Outside the City of Toronto") | |

casino.loc.by.city.res = melt(prop.table(casino.loc.by.city.res,1)) | |

names(casino.loc.by.city.res) = c("City of Residence","Where to Build the Casino","value") | |

ggplot(casino.loc.by.city.res, aes(x=casino.loc.by.city.res$"Where to Build the Casino", y=value, fill=casino.loc.by.city.res$"City of Residence")) + geom_bar(position="dodge") + scale_y_continuous(labels=percent) + theme_wsj() + scale_fill_discrete(name="City of Residence") + ggtitle("If a casino is built, where would you prefer to see it located?") |

As you can see here, those from the outside of Toronto are more likely to suggest building a casino in Toronto compared with those from the inside, and less likely to suggest building a casino in an adjacent municipality (with the reverse being true about those from the inside of Toronto).

That being said, when you do the comparison within city of residence (instead of across it like I just did), those from the inside of Toronto seem equally likely to suggest that the casino be built in our outside of the city, whereas those outside are much more likely to suggest building the casino inside Toronto than outside. So, depending on how you view this graph, you might only say there’s evidence for a “not in my backyard!” effect for those living outside of Toronto.

As a final note, I’ll remind you that although these analyses point to which Torontonians do want a new casino, the fact from this survey remains that about 71% of respondents are unsupportive of a casino in Toronto, and 53% don’t want a casino built in either Toronto or and adjacent municipality. I really have to wonder if they’re still going to go ahead with it!