def Estimate1(n=7, m=100000): """Mean error for xbar and median as estimators of population mean. n: sample size m: number of iterations """ mu = 0 sigma = 1 means = [] medians = [] for _ in range(m): xs = [random.gauss(mu, sigma) for i in range(n)] xbar = np.mean(xs) median = np.median(xs) means.append(xbar) medians.append(median) print('Experiment 1') print('mean error xbar', MeanError(means, mu)) print('mean error median', MeanError(medians, mu))
def SimulateManyGames(lam, iters=1000000): lam_est = [] for _ in np.arange(iters): lam_est.append(SimulateGame(lam)) print('Mean Error =', MeanError(lam_est, lam)) print('RMSE =', RMSE(lam_est, lam)) lam_cdf = thinkstats2.Cdf(lam_est) ci = lam_cdf.Percentile(5), lam_cdf.Percentile(95) lam_pmf = thinkstats2.Pmf(lam_est) thinkplot.Cdf(lam_cdf) thinkplot.Plot([ci[0], ci[0]], [0, 1], linewidth=2, color='0.8') thinkplot.Plot([ci[1], ci[1]], [0, 1], linewidth=2, color='0.8') thinkplot.Config(xlabel='Goals per game', ylabel='CDF', legend=False)
def Estimate4(lam=2, m=1000000): estimates = [] for i in range(m): L = SimulateGame(lam) estimates.append(L) print('Experiment 4') print('rmse L', RMSE(estimates, lam)) print('mean error L', MeanError(estimates, lam)) pmf = thinkstats2.Pmf(estimates) thinkplot.Hist(pmf) thinkplot.Show()