Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import pandas as pd
- import scipy.stats as ss
- import matplotlib
- from matplotlib import pyplot as plt
- %matplotlib inline
- SEED = 1337
- plt.rcParams["axes.labelsize"] = 16.
- plt.rcParams["xtick.labelsize"] = 14.
- plt.rcParams["ytick.labelsize"] = 14.
- plt.rcParams["legend.fontsize"] = 12.
- plt.rcParams["figure.figsize"] = [15., 6.]
- ##############
- n = 100
- m = 1000
- norm = [ss.norm.rvs(loc=2, scale=1.5, size=n, random_state=i) for i in range(m)]
- stats = np.array([np.mean(v) for v in norm])
- print(np.mean(stats), np.std(stats, ddof=1))
- data = pd.DataFrame({'norm': stats})
- data.hist(bins='rice')
- plt.show()
- ##################
- def generate_sample(n):
- N = np.random.normal(3,1, n)
- U = np.random.uniform(-3, 0, n)
- b = np.random.binomial(n=1, p= 0.5, size=n)
- return N*b + U * (1-b)
- sample = generate_sample(1000)
- data = pd.DataFrame({'my sample': sample})
- stats = data.apply([np.mean, np.median, np.std])
- stats.loc['Q1'] = data.apply(np.quantile, q=0.25)
- stats.loc['Q3'] = data.apply(np.quantile, q=0.75)
- stats.loc['V'] = data.apply(np.var, ddof=1)
- stats.loc['skew'] = data.apply(ss.skew)
- stats.loc['kurtosis'] = data.apply(ss.kurtosis)
- stats
- data.hist(bins='rice')
- plt.show()
- # генерируем 1000 выборок и считаем выборочные средние
- m_samples = [generate_sample(n) for i in range(m)]
- stats = np.array([np.mean(v) for v in m_samples])
- print(np.mean(stats), np.std(stats, ddof=1))
- data = pd.DataFrame({'means of my samples': stats})
- data.hist(bins='rice')
- plt.show()
- ##################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement