Data Science For Good: Identify which schools needs help
Project GitHub | LinkedIn: Niki Moritz Hao-Wei Matthew Oren
The skills we demoed here can be learned through taking Data Science with Machine Learning bootcamp with NYC Data Science Academy.
My Shiny App || My GitHub || About SHSAT || PASSNYC ||HeliconIn
Introduction
NYC SHSAT Exam:
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 based on data.
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 that are doing better than others. For example, Success Academy Charter School -Harlem 2, Columbia Secondary School, KIPP STAR College Prep Charter Schools are doing well in terms of representation among students who attempt to take the SHSAT exams, whereas others, including PS 123 Mahalia Jackson, have far less..
Another problem is these elite schools lack diversity because students from not at ethnicity and gender participate in SHSAT exams.
The question is: why are so few schools participating in this entrance test, After all it’s the gateway to elite education. Upon doing some exploration, I learned that many schools/students don’t know how to prepare for the test. Even some 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 under-served students within New York City's under-performing school districts in order to increase the diversity of students taking the SHSAT. These organizations provide free educational opportunities to under-served students to help them prepare better and score a spot in and elite high schools.
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 a 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 used four datasets for my analysis. Three of them are from kaggle.com and one from data.cityofnewyork.us
I needed detailed school information, SHSAT score information, diversity demographics, and school information by county. I had to gather the data from different dataset in order to consolidate all these data points into a single dataset.
Data Cleaning:
I started by jotting down which variables I would need and which I won’t. I then 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 counts that exceeded 5, we had the 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, so I decided to convert them to 5 ( since they still show up as under-performing 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 performance 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 that are not found in other 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 raises another question: are they given extra support because they are needy?
To explore that question, I decided to analyze the 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 for these bar plots , 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 the right shows community schools has a higher Economic Need Index. Let's analyze how they perform on SHSAT exams.
Non-community schools have higher population taking exams, and the number drops as the 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 in a higher success rate for exams.
Birds Eye View on performance based on location: Users can use a drop down menu to select an analysis 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 it’s 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 step, but what if most of the students take it and fail. That’s an indicator that the schools needs help in prep. Let’s 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. On the other hand, Queens Village shows a low success rate with a relatively high percentage of test takers. 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.
The ‘Ethnicity’ tab of my app is also an interactive tab that allows users to view Racial demographics by County, by City and by School using the dropdown 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 parameters:
x axis : Economic Need Index; y axis: Percent Takers
Color: Ethnicity; Size: Population of that Race; (%) Id: City
As shown in the tool tip, 66% of White student with low Economic need Index fall into high percent Takers, whereas, as the 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:
- Pick schools with low participation, spot talented students from that school and prep them for exams.
- 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 users and let them decide how to use the data, which is why I provided slider inputs for user to set his own range and pick schools.
I hope you enjoyed reading my blog. You can find link to my RShiny app, GitHub. Feel free to explore.