Data Science For Good: Let's identify which schools needs help

Priya Srivastava
Posted on Apr 28, 2019

My Shiny App || My GitHub || About SHSAT || PASSNYC ||HeliconInc



The Specialized High School Admissions Test (SHSAT) is the only criterion for admissions to 8 of the 9 New York City Specialized High Schools. The only exception is the Fiorello H. LaGuardia High School of Music & Art and Performing Arts, which requires an audition or portfolio for admission.

The SHSAT is administered by the New York City Department of Education and is only available to New York City residents in the 8th/9th grade. In 2016, approximately 28,000+ students took the SHSAT, and less than 20% of those students were accepted to a New York City Specialized High School.


Problem Statement: 

As they say, a picture is worth a thousand words.

The plots show the statistics of all the students who take admission in NYC High School. The Bar plot at the left compares the percentage of students who enrolled in SHSAT exam and percentage of those who took it for years 2013 to 2016.

‘You can get it only if you Took it’. Only 10% of NYC students make an attempt to SHSAT exams which is quite low number and we are not even talking about how many finally got an offer yet. The plot on the right further drills down and shows that there are few schools who are doing better than others, for example Success Academy Charter School -Harlem 2, Columbia Secondary School, KIPP STAR College Prep Charter School are doing good in terms of making an attempt to SHSAT exams whereas others like PS 123 Mahalia Jackson and many others have very less turnover.

Another problem statement is, these Elite schools lack diversity because students from not at ethnicity and gender participate in SHSAT exams.

The question arises; why many schools are not participating in this entrance test, Afterall it’s the gateway to Elite education. Upon doing some exploration, I learnt that many schools/students don’t know how to prepare for the same and many of those who know don’t have enough resources/fund/motivation to take the plunge.

Thankfully we are not option less here. There are Nonprofit organizations like PASSNYC, HELICON,Inc. who strive to identify talented underserved students within New York City's underperforming school districts in order to increase the diversity of students taking the SHSAT. These organizations provide free educational opportunities to underserved students to help them prepare better and score a spot in Elite High School.

What Can I do?

Nonprofit organizations are there to help but they need a better model to understand which schools/candidates need help.

I wanted to use data science for good cause, so I decided to analyze and build my Shiny app on this issue. My agenda is to figure out NYC schools that need help so that their 8th/9th graders can perform better in SHSAT. We would analyze what are the contributing factors that could lead to success/failure. Through this app user can gain insights based on data and derive conclusions to which schools need help to perform better.

The DataSet:

I have used four datasets for my analysis. 3 of them are from and 1 from

I needed detail school information, SHSAT score information, diversity demographics, school information by county which was available altogether in one dataset, so I decided to gather all information from different dataset and joined them.

Data Cleaning:

I started with jotting down which variables I would need and which I won’t and created a new Data Frame to work with variables I would need. I converted the data types. Most of analysis is based on percentage and Mean value, so I used ‘as.numeric’ to get my element as numbers which were saved as characters in dataframe. I also looked for missing values and NAs and filtered them out where appropriate. Then came some data wrangling where I had SHSAT offers mentioned as a range like (0 – 5 offers), however for offer count bigger than 5, we had exact number of offers. My immediate reaction was: it’s dirty data, get rid of it. But upon further observation, I found that most of the schools are under performing I had a lot of observations whose offers were only 0-5 and as a matter of fact these were my real customers. So, I decided to convert them to 5 ( since they still show up as under performing, it worked for my analysis, getting rid of them would have given me a wrong analysis); I derived a percentage offer and use it for analysis. My data sets were wide data rather than long data, so I used ‘gather’ to convert them in my derivation.

About My Shiny App and Data Analysis:

The KPIs of my analysis are Ethnicity, location, Community school, Economic Need Index. My Shiny Dashboard app is built to analyze performance based on these key performing indicators. 

I approached the analysis with a hypothesis that community schools should be better performing ones since they get various kind of educational and social support which is missing from non-community school system. So, to start with, I provided School Data Explorer which gives user access to data in data table on which can be filtered, sorted and selected based on what user needs to explore. I provided Info box which gives a gist of how community vs non-community schools are doing based on overall schools ELA and Math performance. 

The data shows that my initial hypothesis fails. In fact, non-community schools were doing better in their academics. But, it breaks out another question, are they given extra support because they are needy? 

So, I decided to analyze correlation between community schools with other factors like Economics need index. (Economic need index is calculated as(%temp housing) + (% HRA eligible *0.5) + (% free lunch eligible *0.5) : The higher the index, the higher the need)

Relation between Community/Non-Community , Economic Need Index, Takers%, Success%

I used ggplot to these bar plot , box plot and scatter plot. There are many more Non-Community school than community school, so it would be irrelevant to just pick schools by Community.  The box-plot on right shows community schools has higher Economic Need Index. Let's analyze how they perform on SHSAT exams.

Non-community schools have higher population taking exams and and the number drops Economic Need Index gets higher. Most of the community schools who attempted have better rate of succeeding in the exam.

This proves 2 points: 1) Most of the schools with higher Economic Need Index are less participating in SHSAT. 2) Getting academic aid results higher success rate in exams.

Birds Eye View on performance based on location: User can use drop down menu to select whether he wants to analyze based on Percent of test takers / Success rate in SHSAT exams / Cluster of school which expands to single school and gives basic school details, Math/ELA performances and Economic Need Index.

Performance by Geography

I used  NYC shape files on leaflet map for geo spatial data. I wanted to  analyze and find if there is success/failure trend based on location. The percentage of takers is color coded and its easy to interpret which city on an average need help. The map above shows that Corona (takers: 11%) is a good candidate for further investigation whereas Little Neck is standing tall with 73% of takers. Queens Village is sitting somewhere in between with 35% takers.

Success rate is an important parameter because "If you took it", you have taken a positive steps, but what if most of the students take it and fail. Its an indicator that the schools needs help in prep. Lets repeat the examples by Success Rates this time:

Corona:6% ;  Queens Village: 13% ; Little Neck : 44%

Little Neck has proven to be doing good and doesn't need help whereas Queens Village which has good percentage of takers but doesn't have as much success rate. So, Queens Village along with Corona needs help with prep.  We get an insight that Percent of takers and Offers, both together are important variable to our analysis.

Racial demographics

Data from Racial Demographic of New York city shows that over a decade, majority of population receiving offers are Asian or White by ethnicity. Black and Hispanic only make 10% of the total cut. This suggests that  Black and Hispanic students might need help of these non-profit organizations. Also, the Elite schools are lacking students from diverse background and are looking forward to have more diverse group. So finding schools where Black and Hispanic student make a majority of population is an important aspect of our analysis.

Ethnicity tab of my app is also an interactive tab, where user can view Racial demographics "by County", "by City" and "by School" using the drop down menu. I have used google Vis to plot this pie chart. Upon selecting Bronx, the user learns that Bronx has 48% of Black and 47.7% of Hispanic population. Hence, user might want to drill down on City and then school to identify racial demographics by school. See plot below :

Upon analyzing the counties, I found that Bronx has maximum number of Black and Hispanic students followed by Manhattan. 

Economic Need Index

We have already set up some ground on Economic need index based on our analysis and know that higher the Economic Need Index, lesser the percentage of takers and Offers. Let's learn more on this index and then perform a 4D analysis.

The density plot suggests that there are a lot more number of Black and Hispanic students with higher index and percentage takers reduces as the economic need index increases. This compliments our findings until now.

This is 4D Bubble chart which shows correlation between 4 paramters: 

x axis : Economic Need Index;   y axis: Percent Takers

Color: Ethnicity;    Size: Population of that Race; (%) Id: City

As shown in tool tip, 66% of White student with low Economic need Index have fall in high percent Takers whereas as bottom right corner shows, there is dense population of Black and Hispanic with high Economic Rate Index and Low Percent Takers.

So Which Schools?

Based on our finding I recommend:

  1. Pick schools with low participation, spot talented students from that school and prep them for exams.
  2. Pick schools with high Economic index, high population of Black, Hispanic ethnicity; spot talented students from that school and prep them for exams.

Following tab of my app recommends user which schools to pick based on city. However, as a data scientist I am delighted to bring out facts out of data and would like to provide flexibility to user and let him decide how he wants to go ahead with this fact. Hence, I provided slider inputs for user to set his own range and pick schools.

Hope you enjoyed reading my blog. Link to my RShiny app, GitHub and other resources are available on the top of Introduction. Feel free to explore.


About Author

Priya Srivastava

Priya Srivastava

Priya Srivastava is an analytical thinker with business acumen. Her first love was STEM, which she pursued in earning a bachelor’s degree in Engineering and building a career as Software Engineer and data warehousing consultant in the technology...
View all posts by Priya Srivastava >

Related Articles

Leave a Comment

Your email address will not be published. Required fields are marked *

No comments found.

View Posts by Categories

Our Recent Popular Posts

View Posts by Tags