Với những nhận xét trong các ý kiến, tôi đoán cái gì đó như sau đây là những gì bạn đang tìm kiếm:
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()
tôi đã sử dụng 100 và 10.000 mẫu, vì với 1.000 mẫu dự toán đã khá tốt. Nhưng vẫn chỉ với 100 mẫu, tôi hơi ngạc nhiên khi ước tính giá trị trung bình và mật độ như thế nào. Chỉ cho biểu đồ mà không biết rằng các mẫu được lấy từ phân phối mũ, tôi không chắc mình có nhận ra phân phối theo cấp số nhân không ...
Tôi không nghĩ là mình hiểu. Bạn có hai MLE. Đó là hai con số. Không có nhiều thông tin bạn có thể nhận được với biểu đồ thay vì chỉ nhìn vào các con số. Ngoài ra, bạn có thể tính toán MLE cho một loạt các kích thước mẫu và kích thước lô so với MLE. Sau đó so sánh nó với giá trị thực tế. * Điều này * có thể tốt hơn. – Avaris
Xin lỗi vì sự nhầm lẫn. Tôi muốn vẽ một cái gì đó như thế này: http://nipy.sourceforge.net/nitime/_images/ar_est_2vars_01.png. Tôi muốn thể hiện mật độ thực sự và các phiên bản ước tính của mình. –
Vẫn còn sự nhầm lẫn, nhưng tôi nghĩ đó là về toán học. MLE được cho là cung cấp cho bạn ước tính cho một biến * duy nhất *, không phải là mật độ. Nhưng đối với phân phối mũ, bạn có thể sử dụng ước tính cho giá trị trung bình để nhận được * mật độ ước tính *, vì có mối quan hệ đơn giản giữa tham số trung bình và mật độ. Đây là những gì bạn đã sau? – Avaris