In [1]:
%run sim.py


/Users/hunterowens/anaconda3/lib/python3.5/site-packages/pandas/computation/__init__.py:19: UserWarning: The installed version of numexpr 2.4.4 is not supported in pandas and will be not be used

  UserWarning)

In [2]:
stud_df


Out[2]:
name sid race college psat gpa honors var0 var1 var2 var3 var4 var5 var6 var7 var8 var9
0 Rayid Su 1 aa Cranberry Lemon University 212 2.77306 3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 Edward Vohra 2 latino Cappybara Community College 123 1.85398 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 Michelangelo Alice 3 other Whale University 186 2.88021 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 Nathan Su 4 white Aardvark University 116 2.21027 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 Andrea Ghani 5 latino Aardvark University 104 1.21955 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 Tom Bashyakarla 6 latino Starfish University 155 3.24229 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 Sam Eneva 7 aa Cappybara Community College 131 2.2807 5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 Nick Vohra 8 aa Cappybara Community College 91 1.67301 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 Vidhur Adhikari 9 other Starfish University 182 3.43502 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 Nick Rowe 10 other Institute of Banana Harvesting 89 1.08024 3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 Sam Meinshausen 11 aa Whale University 120 2.10273 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
11 Varoon Lin 12 aa Cappybara Community College 113 1.25103 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
12 Juan-Pablo Alice 13 other Aardvark University 131 2.56222 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
13 Sam Ghani 14 aa Mount Yo-yo College 89 1.85676 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
14 Tom Lin 15 aa Whale University 140 3.1051 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
15 Zahra Ghani 16 other Whale University 147 1.95385 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
16 Chris Ghani 17 white Starfish University 137 2.25723 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
17 Nick Adhikari 18 aa Institute of Banana Harvesting 115 1.26318 3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
18 Matt Auerbach 19 latino Cranberry Lemon University 214 3.96919 5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
19 Andrea Gee 20 white Aardvark University 126 2.2809 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
20 Nathan Shah 21 other Cranberry Lemon University 190 3.57894 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
21 Kayla McFowland 22 latino Starfish University 162 3.12635 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
22 Vidhur Bashyakarla 23 other Aardvark University 147 3.10132 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
23 Zahra Rowe 24 white Starfish University 233 3.99489 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
24 Sam Vohra 25 white Whale University 157 3.17694 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
25 Juan-Pablo Eneva 26 latino Aardvark University 143 1.83943 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
26 Rayid Plagge 27 aa Aardvark University 164 2.15854 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
27 Nathan Velez 28 other Whale University 192 3.16964 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
28 Paul Lin 29 aa Mount Yo-yo College 126 1.66965 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
29 Edward Bashyakarla 30 latino Cranberry Lemon University 240 3.74044 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
3970 Paul Vohra 3971 white Mount Yo-yo College 92 1.99856 5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3971 Tom D'Agnostino 3972 aa Aardvark University 150 2.47018 3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3972 Juan-Pablo Lin 3973 latino Mount Yo-yo College 66 1.14447 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3973 Nathan Lin 3974 other Mount Yo-yo College 60 1.28505 8 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3974 Kayla Brock 3975 white Aardvark University 174 2.46248 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3975 Juan-Pablo Vohra 3976 white Institute of Banana Harvesting 60 1.03253 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3976 Rayid Velez 3977 aa Starfish University 210 3.16763 5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3977 Nathan Auerbach 3978 other Starfish University 168 3.41307 5 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3978 Elena Su 3979 white Aardvark University 129 2.43047 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3979 Chris Brock 3980 other Whale University 128 1.32884 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3980 Sam D'Agnostino 3981 other Mount Yo-yo College 103 1.09559 7 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3981 Varoon Su 3982 white Aardvark University 132 2.15533 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3982 Varoon Ashktorab 3983 white Whale University 180 2.53107 3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3983 Sophia Velez 3984 latino Institute of Banana Harvesting 103 1.22994 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3984 Vidhur D'Agnostino 3985 latino Aardvark University 133 2.02886 9 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3985 Zahra Gee 3986 white Starfish University 200 2.95596 2 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3986 Kayla Ashktorab 3987 aa Starfish University 184 2.90919 3 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3987 Michelangelo Brock 3988 white Cranberry Lemon University 183 3.17623 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3988 Kayla Vohra 3989 other Whale University 136 1.98943 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3989 Allen Su 3990 other Aardvark University 153 2.44387 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3990 Andrea D'Agnostino 3991 aa Starfish University 140 3.16999 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3991 Juan-Pablo Vohra 3992 white Cranberry Lemon University 240 3.57466 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3992 John Leiby 3993 other Cappybara Community College 157 1.88707 4 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3993 Edward Eneva 3994 latino Aardvark University 175 2.45862 10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3994 Zahra Jacobs 3995 aa Cranberry Lemon University 232 3.64261 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3995 Paul Su 3996 latino Mount Yo-yo College 60 1.47776 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3996 Paul Leiby 3997 white Cappybara Community College 94 1.02835 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3997 Elena Plagge 3998 white Whale University 184 2.76375 1 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3998 Edward Rowe 3999 white Cranberry Lemon University 220 3.65204 0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3999 Tom Rowe 4000 other Cranberry Lemon University 240 3.44479 6 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

4000 rows × 17 columns


In [3]:
stud_df.gpa = pd.to_numeric(stud_df.gpa)
stud_df.honors = pd.to_numeric(stud_df.honors)
stud_df.psat = pd.to_numeric(stud_df.psat)

In [6]:
avg_gpas = stud_df.groupby('college').mean()

In [11]:
avg_gpas


Out[11]:
psat gpa honors
college
Aardvark University 134.808917 2.290956 5.130573
Cappybara Community College 106.039451 1.836814 5.150943
Cranberry Lemon University 217.186257 3.498512 4.775769
Institute of Banana Harvesting 115.606061 1.966908 4.839827
Mount Yo-yo College 87.669683 1.554347 5.029412
Starfish University 191.774052 3.163558 5.102041
Whale University 164.417957 2.755171 4.907121

In [12]:
avg_gpas = stud_df.groupby('college').gpa.mean()
def isUndermatched(student):
    if student.gpa >= (avg_gpas[student.college] + .50):
        return True
    else:
        return False

In [13]:
stud_df['undermatch_status'] = stud_df.apply(isUndermatched, axis=1)

In [15]:
stud_df.undermatch_status.value_counts()


Out[15]:
False    3328
True      672
Name: undermatch_status, dtype: int64

In [17]:
%matplotlib inline
stud_df.psat.hist()


Out[17]:
<matplotlib.axes._subplots.AxesSubplot at 0x10ecfff98>

In [18]:
def rule_based_model(student):
    """Return Risk Score, for undermatch, for each student"""
    risk_score = 0 
    if student.psat > 170 and student.honors <= 3: 
        risk_score += 1
    if student.race == 'aa':
        risk_score += 1 
    if student.race == 'latino':
        risk_score += .5
    if student.psat > 120 and student.psat < 180 and student.honors >= 5: 
        risk_score += 1
    return risk_score

In [20]:
stud_df['risk_score'] = stud_df.apply(rule_based_model, axis = 1)

In [22]:
stud_df['risk_score'].hist()


Out[22]:
<matplotlib.axes._subplots.AxesSubplot at 0x10f7f2898>

Regression Version


In [ ]: