Skip to content

Commit 0c68eba

Browse files
author
Christopher Fonnesbeck
committed
Added exercise solutions and added additional reading references to README
1 parent 37df327 commit 0c68eba

2 files changed

Lines changed: 79 additions & 0 deletions

File tree

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,20 @@ Otherwise, another easy way to install all the necessary packages is to use Cont
7777

7878
For those requiring extra assistance with installing packages, there will be a help desk available Monday, June 24, 7-8AM at the conference venue.
7979

80+
## Additional Reading
81+
82+
[The Ecological Detective: Confronting Models with Data](http://www.amazon.com/Ecological-Detective-Confronting-Models-Data/dp/0691034974/ref=sr_1_1?s=books&ie=UTF8&qid=1372250186&sr=1-1&keywords=ecological+detective), Ray Hilborn and Marc Mangel
83+
84+
[Data Analysis Using Regression and Multilevel/Hierarchical Models](http://www.amazon.com/Analysis-Regression-Multilevel-Hierarchical-Models/dp/052168689X/ref=sr_1_1?s=books&ie=UTF8&qid=1372250274&sr=1-1&keywords=gelman), Andrew Gelman and Jennifer Hill
85+
86+
[The Elements of Statistical Learning](http://www-stat.stanford.edu/~tibs/ElemStatLearn/), Hastie, Tibshirani and Friedman
87+
88+
[A First Course in Bayesian Statistical Methods](http://www.amazon.com/Bayesian-Statistical-Methods-Springer-Statistics/dp/1441928286/ref=sr_1_24?ie=UTF8&qid=1372250835&sr=8-24&keywords=bayesian), Peter Hoff
89+
90+
[Regression Modeling Strategies](http://www.amazon.com/Regression-Modeling-Strategies-Applications-Statistics/dp/1441929185/ref=sr_1_1?s=books&ie=UTF8&qid=1372250898&sr=1-1&keywords=harrell+regression), Frank Harrell
91+
92+
[Python for Data Analysis](http://shop.oreilly.com/product/0636920023784.do), Wes McKinney
93+
8094
[1]: http://nbviewer.ipython.org/urls/gist.github.com/fonnesbeck/5850375/raw/c18cfcd9580d382cb6d14e4708aab33a0916ff3e/1.+Introduction+to+Pandas.ipynb "Introduction to Pandas"
8195
[2]: http://nbviewer.ipython.org/urls/gist.github.com/fonnesbeck/5850413/raw/3a9406c73365480bc58d5e75bc80f7962243ba17/2.+Data+Wrangling+with+Pandas.ipynb "Data wrangling with Pandas"
8296
[3]: http://nbviewer.ipython.org/urls/gist.github.com/fonnesbeck/5850463/raw/a29d9ffb863bfab09ff6c1fc853e1d5bf69fe3e4/3.+Plotting+and+Visualization.ipynb "Plotting and visualization"

exercise_solutions.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
## Exercise Solutions
2+
3+
General polynomial function:
4+
5+
def calc_poly(params, data):
6+
x = np.c_[[data**i for i in range(len(params))]]
7+
return np.dot(params, x)
8+
9+
Microbiome exercise:
10+
11+
metadata = pd.read_excel('data/microbiome/metadata.xls', sheetname='Sheet1')
12+
13+
chunks = []
14+
for i in range(9):
15+
this_file = pd.read_excel('data/microbiome/MID{0}.xls'.format(i+1), 'Sheet 1', index_col=0, header=None, names=['Taxon', 'Count'])
16+
this_file.columns = ['Count']
17+
this_file.index.name = 'Taxon'
18+
for m in metadata.columns:
19+
this_file[m] = metadata.ix[i][m]
20+
chunks.append(this_file)
21+
22+
pd.concat(chunks)
23+
24+
Titanic proportions:
25+
26+
titanic = pd.read_excel("data/titanic.xls", "titanic")
27+
28+
titanic.groupby('sex')['survived'].mean()
29+
30+
titanic.groupby(['pclass','sex'])['survived'].mean()
31+
32+
titanic['agecat'] = pd.cut(titanic.age, [0, 13, 20, 64, 100], labels=['child', 'adolescent', 'adult', 'senior'])
33+
titanic.groupby(['agecat', 'pclass','sex'])['survived'].mean()
34+
35+
Survivor KDE plots:
36+
37+
surv = dict(list(titanic.groupby('survived')))
38+
for s in surv:
39+
surv[s]['age'].dropna().plot(kind='kde', label=bool(s)*'survived' or 'died', grid=False)
40+
legend()
41+
xlim(0,100)
42+
43+
OBP:
44+
45+
baseball[['h','bb', 'hbp']].sum(axis=1).div(
46+
baseball[['bb', 'hbp','ab', 'sf']].sum(axis=1)
47+
).order(ascending=False)
48+
49+
Cervical dystonia estimation:
50+
51+
norm_like = lambda theta, x: -np.log(norm.pdf(x, theta[0], theta[1])).sum()
52+
53+
fmin(norm_like, np.array([1,2]), args=(cdystonia.twstrs[(cdystonia.obs==6) & (cdystonia.treat=='Placebo')],))
54+
fmin(norm_like, np.array([1,2]), args=(cdystonia.twstrs[(cdystonia.obs==6) & (cdystonia.treat=='5000U')],))
55+
56+
Cervical dystonia bootstrapping:
57+
58+
x = cdystonia.twstrs[(cdystonia.obs==6) & (cdystonia.treat=='Placebo') & (cdystonia.twstrs.notnull())].values
59+
n = len(x)
60+
s = [x[np.random.randint(0,n,n)].mean() for i in range(R)]
61+
placebo_mean = np.sum(s)/R
62+
63+
s_sorted = np.sort(s)
64+
alpha = 0.05
65+
s_sorted[[(R+1)*alpha/2, (R+1)*(1-alpha/2)]]

0 commit comments

Comments
 (0)