-
Notifications
You must be signed in to change notification settings - Fork 0
/
anova.py
56 lines (42 loc) · 1.15 KB
/
anova.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
'''
anova.py
Learning what anova does
'''
import math
import numpy as np
from matplotlib import pyplot as plt
import statsmodels.stats.anova as anova
from scipy.stats import t, ttest_1samp
from scipy.optimize import minimize
from scipy.special import gamma
from scipy.misc import factorial
# understanding gamma function
x = np.arange(1, 10)
# We expect it to be close to this
ymf = np.array(map(math.factorial, x))[:-1]
ymg = np.array(map(math.gamma, x))[1:]
yf = factorial(x)[:-1]
yg = gamma(x)[1:]
# Shows that gamma function works as expected
for computed in [ymg, yf, yg]:
assert np.allclose(computed, ymf)
def plot_gamma(left=0.2, right=4):
'''
plot the gamma function
'''
x = np.linspace(left, right)
y = gamma(x)
plt.plot(x, y)
plt.title('gamma function')
plt.show()
plot_gamma()
# It appears that the gamma function has a minimum around 1.5.
m = minimize(gamma, 1.5)
print('Minimum for the gamma function on the real line is at {}, '
'with a value of {}'.format(m.x[0], m.fun))
norm = np.random.randn(100, 3)
ttest = ttest_1samp(norm, 0)
# Check the t-test
# t (Student) distribution
#t1 =
# Generalizes the t-test