Biorąc pod uwag w komentarzach, chyba coś po to, czego szukasz:
import numpy as np
import matplotlib.pyplot as plt
def plot_exponential_density(mu, xmax, fmt, label):
x = np.arange(0, xmax, 0.1)
y = 1/mu * np.exp(-x/mu)
plt.plot(x, y, fmt, label=label)
def sample_and_plot(N, color):
# first sample N valus
samples = np.zeros((N,1))
for i in range(0,N):
samples[i] = np.random.exponential()
# determine the mean
mu = np.mean(samples)
print("N = %d ==> mu = %f" % (N, mu))
# plot a histogram of the samples
(n, bins) = np.histogram(samples, bins=int(np.sqrt(N)), density=True)
plt.step(bins[:-1], n, color=color, label="samples N = %d" % N)
xmax = max(bins)
# plot the density according to the estimated mean
plot_exponential_density(mu, xmax, color + "--", label="estimated density N = %d" % N)
return xmax
# sample 100 values, draw a histogram, and the density according to
# the estimated mean
xmax1 = sample_and_plot(100, 'r')
# do the same for 1000 samples
xmax2 = sample_and_plot(10000, 'b')
# finally plot the true density
plot_exponential_density(1, max(xmax1, xmax2), 'k', "true density")
# add a legend
plt.legend()
# and show the plot
plt.show()
użyłem 100 i 10000 próbek, ponieważ z 1000 próbek oszacowanie jest już całkiem niezły. Ale wciąż z zaledwie 100 próbkami jestem nieco zaskoczony, jak dobre jest oszacowanie średniej, a tym samym gęstości. Biorąc pod uwagę tylko histogram bez wiedzy, że próbki są pobierane z rozkładu wykładniczego, nie jestem pewien, czy rozpoznałbym wykładniczy rozkład tutaj ...
Nie sądzę, że rozumiem. Masz dwa MLE's. To są dwie liczby. Nie ma zbyt wielu informacji, które można uzyskać za pomocą wykresu, a nie tylko na samych liczbach. Alternatywnie możesz obliczyć MLE dla kilku wielkości próbek i rozmiaru wykresu w porównaniu do MLE. Następnie porównaj ją z rzeczywistą wartością. * To * może być lepsze. – Avaris
Przepraszamy za zamieszanie. Chcę wykreślić coś takiego: http://nipy.sourceforge.net/nitime/_images/ar_est_2vars_01.png. Chcę pokazać prawdziwą gęstość i moje szacowane wersje. –
Ciągle jest zamieszanie, ale myślę, że chodzi o matematykę. MLE ma dać ci oszacowanie * zmiennej pojedynczej *, a nie gęstości. Ale w przypadku rozkładu wykładniczego można użyć oszacowania średniej, aby uzyskać * gęstość szacunkową *, ponieważ istnieje prosta relacja między średnią a parametrem gęstości. Czy tego właśnie szukasz? – Avaris