def binomial_plot(p, n): x_ax = [k for k in range(n)] y_ax = [dist.binomial_pdf(p, k, n) for k in range(n)] # poisson distribution mp = pu.PlotUtilities("Binomial Distribution for p={0}".format(p), "# Successes", "Probability") mp.multiPlot(x_ax, [y_ax], 'o')
def pdf(self, z): p_z = conditional_default_prob(self.rho, self.p, z) if self.usePoissonApprox: return dist.poisson_pdf(self.N * p_z, self.k) else: return dist.binomial_pdf(p_z, self.k, self.N)
def comparison_poi_binom(lam, upper_bound): n = upper_bound + 1 x_ax = [k for k in range(n)] n_plots = 2 # plotting both poisson and binomial distribution y_ax = [0.] * n_plots y_ax[0] = [dist.poisson_pdf(lam, k) for k in range(n)] # poisson distribution y_ax[1] = [dist.binomial_pdf(lam / n, k, n) for k in range(n)] mp = pu.PlotUtilities("Poisson Vs Binomial distribution for lambda={0}".format(lam), "# Successes", "Probability") mp.multiPlot(x_ax, y_ax, '*')
def conditional_binomial_prob(k, N, rho, p, z): p_z = conditional_default_prob(rho, p, z) return (dist.binomial_pdf(p_z, k, N))