-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathpython.py
More file actions
55 lines (38 loc) · 1.31 KB
/
python.py
File metadata and controls
55 lines (38 loc) · 1.31 KB
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
import numpy as np
#import seaborn as sb
import matplotlib.pyplot as plt
import statistics as st
import pandas as pd
import scipy as sp
from scipy.stats import norm
import random
def norm_converge(samp_siz, num_sims, exp = True, param = 0.3):
mean_vec = np.empty([num_sims])
for i in range(num_sims):
if exp == True:
samp = np.random.exponential(scale = param, size = samp_siz)
else:
samp = np.random.weibull(a = param, size = samp_siz)
mean_vec[i] = st.mean(samp)
return(mean_vec)
# Define function sampler
def sampler(df, colname,N, alpha, mu_0):
rows = random.sample(range(df.shape[0]), N)
samp = df.iloc[rows]
col = samp[colname]
my_mean = (1/len(col)) * sum(col)
my_var = 1/(len(col) - 1) * np.sum((col - np.mean(col))**2)
my_std = np.sqrt(my_var)
# Find z value at alpha / 2
z = norm.ppf(1-alpha / 2, loc = 0, scale = 1)
mu_l, mu_h = my_mean - z * my_std / np.sqrt(len(col)), my_mean + z * my_std / np.sqrt(len(col))
W = (my_mean - mu_0) / (my_std) / np.sqrt(len(col))
Test = abs(W) <= z
out = dict({"mean": my_mean,
"var": my_var,
"std_dev":my_std,
"mu_low": mu_l,
"mu_high": mu_h,
"Test stat": W,
"Reject H_O": Test})
return(out)