数据是这样的:
category number 100 1658 101 1801 102 1856 103 1804 104 1779 105 1765 106 1912 107 1976 108 2233 109 2512 110 3133
当你知道样本类型和每种类型的样本数时,就可以使用多项式最大似然估计。如何使用Python进行数据的多项式最大似然估计?
htzpubme1#
如果您将数据解释为多项分布中的样本,其中k = 10,n = 22429(其中n和k遵循Wikipeda文章Multinomial distribution中使用的约定),并且您希望得到事件概率的最大似然估计值,则只需将每个类别的计数除以n即可。(例如,请参见https://math.stackexchange.com/questions/421105/maximum-likelihood-estimator-of-parameters-of-multinomial-distribution.)下面是对数据的简单计算:
In [189]: import numpy as np In [190]: s = """100 1658 ...: 101 1801 ...: 102 1856 ...: 103 1804 ...: 104 1779 ...: 105 1765 ...: 106 1912 ...: 107 1976 ...: 108 2233 ...: 109 2512 ...: 110 3133""" In [191]: category, number = np.loadtxt(s.splitlines(), dtype=int, unpack=True) In [192]: p = number/number.sum() # Maximum likelihood estimate In [193]: p Out[193]: array([0.07392215, 0.08029783, 0.08275001, 0.08043158, 0.07931696, 0.07869276, 0.08524678, 0.08810023, 0.09955861, 0.11199786, 0.13968523])
1条答案
按热度按时间htzpubme1#
如果您将数据解释为多项分布中的样本,其中k = 10,n = 22429(其中n和k遵循Wikipeda文章Multinomial distribution中使用的约定),并且您希望得到事件概率的最大似然估计值,则只需将每个类别的计数除以n即可。(例如,请参见https://math.stackexchange.com/questions/421105/maximum-likelihood-estimator-of-parameters-of-multinomial-distribution.)
下面是对数据的简单计算: