1. Import the necessary packages to read in the data, plot, and create a linear regression model


In [1]:
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import statsmodels.formula.api as smf

2. Read in the hanford.csv file


In [4]:
df = pd.read_csv("data/hanford.csv")

In [5]:
df


Out[5]:
County Exposure Mortality
0 Umatilla 2.49 147.1
1 Morrow 2.57 130.1
2 Gilliam 3.41 129.9
3 Sherman 1.25 113.5
4 Wasco 1.62 137.5
5 HoodRiver 3.83 162.3
6 Portland 11.64 207.5
7 Columbia 6.41 177.9
8 Clatsop 8.34 210.3

3. Calculate the basic descriptive statistics on the data


In [6]:
df['Exposure'].mean()


Out[6]:
4.6177777777777784

In [7]:
df['Exposure'].describe()


Out[7]:
count     9.000000
mean      4.617778
std       3.491192
min       1.250000
25%       2.490000
50%       3.410000
75%       6.410000
max      11.640000
Name: Exposure, dtype: float64

4. Calculate the coefficient of correlation (r) and generate the scatter plot. Does there seem to be a correlation worthy of investigation?


In [9]:
df.corr()


Out[9]:
Exposure Mortality
Exposure 1.000000 0.926345
Mortality 0.926345 1.000000

In [8]:
df.plot(kind='scatter', x='Mortality', y='Exposure')


Out[8]:
<matplotlib.axes._subplots.AxesSubplot at 0x10e652cf8>

5. Create a linear regression model based on the available data to predict the mortality rate given a level of exposure


In [10]:
lm = smf.ols(formula='Mortality~Exposure',data=df).fit()
lm.params


Out[10]:
Intercept    114.715631
Exposure       9.231456
dtype: float64

In [11]:
intercept, Exposure = lm.params
Mortality = Exposure*10+intercept

In [12]:
Mortality


Out[12]:
199.93541569980266

6. Plot the linear regression line on the scatter plot of values. Calculate the r^2 (coefficient of determination)


In [ ]:

7. Predict the mortality rate (Cancer per 100,000 man years) given an index of exposure = 10


In [13]:
intercept, Exposure = lm.params
Mortality = Exposure*10+intercept

In [14]:
Mortality


Out[14]:
207.03019352841983

In [ ]: