Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.59 KB | None | 0 0
  1. import numpy as np
  2. import pandas as pd
  3. import scipy.stats as ss
  4. import matplotlib
  5. from matplotlib import pyplot as plt
  6. %matplotlib inline
  7. SEED = 1337
  8.  
  9. plt.rcParams["axes.labelsize"] = 16.
  10. plt.rcParams["xtick.labelsize"] = 14.
  11. plt.rcParams["ytick.labelsize"] = 14.
  12. plt.rcParams["legend.fontsize"] = 12.
  13. plt.rcParams["figure.figsize"] = [15., 6.]
  14.  
  15.  
  16. ##############
  17.  
  18.  
  19. n = 100
  20. m = 1000
  21. norm = [ss.norm.rvs(loc=2, scale=1.5, size=n, random_state=i) for i in range(m)]
  22. stats = np.array([np.mean(v) for v in norm])
  23.  
  24. print(np.mean(stats), np.std(stats, ddof=1))
  25.  
  26. data = pd.DataFrame({'norm': stats})
  27. data.hist(bins='rice')
  28. plt.show()
  29.  
  30.  
  31. ##################
  32.  
  33. def generate_sample(n):
  34.     N = np.random.normal(3,1, n)
  35.     U = np.random.uniform(-3, 0, n)
  36.     b = np.random.binomial(n=1, p= 0.5, size=n)
  37.     return N*b + U * (1-b)
  38.  
  39.  
  40. sample = generate_sample(1000)
  41. data = pd.DataFrame({'my sample': sample})
  42.  
  43. stats = data.apply([np.mean, np.median, np.std])
  44. stats.loc['Q1'] = data.apply(np.quantile, q=0.25)
  45. stats.loc['Q3'] = data.apply(np.quantile, q=0.75)
  46. stats.loc['V'] = data.apply(np.var, ddof=1)
  47. stats.loc['skew'] = data.apply(ss.skew)
  48. stats.loc['kurtosis'] = data.apply(ss.kurtosis)
  49. stats
  50. data.hist(bins='rice')
  51. plt.show()
  52.  
  53. # генерируем 1000 выборок и считаем выборочные средние
  54. m_samples = [generate_sample(n) for i in range(m)]
  55. stats = np.array([np.mean(v) for v in m_samples])
  56.  
  57. print(np.mean(stats), np.std(stats, ddof=1))
  58.  
  59. data = pd.DataFrame({'means of my samples': stats})
  60. data.hist(bins='rice')
  61. plt.show()
  62.  
  63.  
  64. ##################
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement