使用mle()估算自定义分布的参数

nas*_*ash 8 matlab distribution fminsearch probability-density mle

我有以下代码,希望估算自定义分发的参数。有关发行的更多详细信息。然后,使用估计的参数,我想查看估计的PDF是否类似于给定数据的分布(应该与给定数据的分布匹配)。

[编辑]:“ x”现在保存数据样本,而不是PDF

主要代码是:

x           = [0.0320000000000000   0.0280000000000000  0.0280000000000000  0.0270000000000000  0.0320000000000000  0.0320000000000000  0.0480000000000000  0.0890000000000000  0.0500000000000000  0.0620000000000000  0.0480000000000000  0.0300000000000000  0.0520000000000000  0.0460000000000000  0.0540000000000000  0.0520000000000000  0.0510000000000000  0.0310000000000000  0.0330000000000000  0.0330000000000000  0.0380000000000000  0.0850000000000000  0.102000000000000   0.0290000000000000  0.0530000000000000  0.0590000000000000  0.0320000000000000  0.0800000000000000  0.0410000000000000  0.0280000000000000  0.0670000000000000  0.0350000000000000  0.0420000000000000  0.0280000000000000  0.0370000000000000  0.0480000000000000  0.0330000000000000  0.101000000000000   0.0420000000000000  0.0840000000000000  0.0340000000000000  0.0900000000000000  0.0900000000000000  0.0460000000000000  0.0290000000000000  0.0330000000000000  0.0350000000000000  0.0330000000000000  0.0320000000000000  0.0420000000000000  0.0600000000000000  0.0500000000000000  0.0390000000000000  0.0480000000000000  0.0680000000000000  0.0330000000000000  0.0510000000000000  0.0430000000000000  0.0270000000000000  0.0330000000000000  0.0590000000000000  0.0380000000000000  0.0270000000000000  0.0600000000000000  0.0310000000000000  0.0520000000000000  0.0350000000000000  0.0640000000000000  0.0570000000000000  0.0520000000000000  0.0330000000000000  0.0480000000000000  0.0530000000000000  0.0380000000000000  0.0320000000000000  0.0340000000000000  0.0380000000000000  0.0470000000000000  0.0950000000000000  0.0510000000000000  0.0280000000000000  0.124000000000000   0.0360000000000000  0.0670000000000000  0.0380000000000000  0.0760000000000000  0.0440000000000000  0.0390000000000000  0.0500000000000000  0.0500000000000000  0.0370000000000000  0.0350000000000000  0.0490000000000000  0.0570000000000000  0.0560000000000000  0.0500000000000000  0.0350000000000000  0.0390000000000000  0.0390000000000000  0.0310000000000000  0.0260000000000000  0.0350000000000000  0.0610000000000000  0.0280000000000000  0.0480000000000000  0.0560000000000000  0.0650000000000000  0.0400000000000000  0.131000000000000   0.0600000000000000  0.0310000000000000  0.0620000000000000  0.0320000000000000  0.0510000000000000  0.0510000000000000  0.0480000000000000  0.0420000000000000  0.0470000000000000  0.0690000000000000  0.0590000000000000  0.0550000000000000  0.0580000000000000  0.0410000000000000  0.0320000000000000  0.0440000000000000  0.0370000000000000  0.0390000000000000  0.0620000000000000  0.0290000000000000  0.0340000000000000  0.0490000000000000  0.0300000000000000  0.0540000000000000  0.0420000000000000  0.0610000000000000  0.159000000000000   0.0520000000000000  0.0450000000000000  0.0670000000000000  0.0590000000000000  0.111000000000000   0.0250000000000000  0.0660000000000000  0.0210000000000000  0.0370000000000000  0.0330000000000000  0.0510000000000000  0.0330000000000000  0.0450000000000000  0.0530000000000000  0.0600000000000000  0.0400000000000000  0.0510000000000000  0.0680000000000000  0.0410000000000000  0.0490000000000000  0.0280000000000000  0.0520000000000000  0.0610000000000000  0.0390000000000000  0.0630000000000000  0.0360000000000000  0.0620000000000000  0.0550000000000000  0.0640000000000000  0.0650000000000000  0.0550000000000000  0.0480000000000000  0.0640000000000000  0.0850000000000000  0.0800000000000000  0.0390000000000000  0.0430000000000000  0.0380000000000000  0.0770000000000000  0.0620000000000000  0.0430000000000000  0.0490000000000000  0.0450000000000000  0.0510000000000000  0.0290000000000000  0.0440000000000000  0.0220000000000000  0.0400000000000000  0.0760000000000000  0.0290000000000000  0.0460000000000000  0.0450000000000000  0.0430000000000000  0.0790000000000000  0.0730000000000000  0.0660000000000000  0.0740000000000000  0.0330000000000000  0.0430000000000000  0.0450000000000000  0.0390000000000000  0.0610000000000000  0.0330000000000000  0.0480000000000000  0.0540000000000000  0.0400000000000000  0.0370000000000000  0.0350000000000000  0.0660000000000000  0.0280000000000000  0.0350000000000000  0.0500000000000000  0.0530000000000000  0.0370000000000000  0.0550000000000000  0.0390000000000000  0.0580000000000000  0.0220000000000000  0.0560000000000000  0.0440000000000000  0.0470000000000000  0.0390000000000000  0.0490000000000000  0.0640000000000000  0.0710000000000000  0.0510000000000000  0.0380000000000000  0.0480000000000000  0.0840000000000000  0.0430000000000000  0.0450000000000000  0.0370000000000000  0.0490000000000000  0.0390000000000000  0.0410000000000000  0.0440000000000000  0.0650000000000000  0.0470000000000000  0.0490000000000000  0.0480000000000000  0.0540000000000000  0.0680000000000000  0.0740000000000000  0.0350000000000000  0.0300000000000000  0.0450000000000000  0.0350000000000000  0.0370000000000000  0.0710000000000000  0.0360000000000000  0.0660000000000000  0.0380000000000000  0.0440000000000000  0.0320000000000000  0.0590000000000000  0.0390000000000000  0.0640000000000000  0.0630000000000000  0.0310000000000000  0.0570000000000000  0.0630000000000000  0.0280000000000000  0.0560000000000000  0.0910000000000000  0.0580000000000000  0.0680000000000000  0.0420000000000000  0.0810000000000000  0.0380000000000000  0.0250000000000000  0.0340000000000000  0.0450000000000000  0.0370000000000000  0.0390000000000000  0.0300000000000000  0.0410000000000000  0.0580000000000000  0.0300000000000000  0.0830000000000000  0.0380000000000000  0.0300000000000000  0.0530000000000000  0.0610000000000000  0.0370000000000000  0.0390000000000000  0.0340000000000000  0.0280000000000000  0.0420000000000000  0.0620000000000000  0.0520000000000000  0.0310000000000000  0.0590000000000000  0.0520000000000000  0.0420000000000000  0.0430000000000000  0.0410000000000000  0.0250000000000000  0.0570000000000000  0.0370000000000000  0.0270000000000000  0.0860000000000000  0.0660000000000000  0.0470000000000000  0.0270000000000000  0.0830000000000000  0.0440000000000000  0.0680000000000000  0.0500000000000000  0.0480000000000000  0.0520000000000000  0.0510000000000000  0.0290000000000000  0.0360000000000000  0.0290000000000000  0.0390000000000000  0.0290000000000000  0.0600000000000000  0.0310000000000000  0.0440000000000000  0.0410000000000000  0.0350000000000000  0.0510000000000000  0.0660000000000000  0.0450000000000000  0.0520000000000000  0.0530000000000000  0.0260000000000000  0.0690000000000000  0.0590000000000000  0.0760000000000000  0.118000000000000   0.0500000000000000  0.0480000000000000  0.0300000000000000  0.0300000000000000  0.0390000000000000  0.0340000000000000  0.0500000000000000  0.0280000000000000  0.0410000000000000  0.0490000000000000  0.0390000000000000  0.0390000000000000  0.0420000000000000  0.0520000000000000  0.0300000000000000  0.0320000000000000  0.0650000000000000  0.0650000000000000  0.0600000000000000  0.0450000000000000  0.0680000000000000  0.0350000000000000  0.0340000000000000  0.0260000000000000  0.0600000000000000  0.0920000000000000  0.0460000000000000  0.0560000000000000  0.0440000000000000  0.0450000000000000  0.0520000000000000  0.0480000000000000  0.0420000000000000  0.0990000000000000  0.0480000000000000  0.0360000000000000  0.0470000000000000  0.0390000000000000  0.0290000000000000  0.0270000000000000  0.0370000000000000  0.0580000000000000  0.0640000000000000  0.0300000000000000  0.0380000000000000  0.0240000000000000  0.0380000000000000  0.0830000000000000  0.0400000000000000  0.0990000000000000  0.0600000000000000  0.0580000000000000  0.0430000000000000  0.0840000000000000  0.0390000000000000  0.0370000000000000  0.0850000000000000  0.0590000000000000  0.0530000000000000  0.0560000000000000  0.0320000000000000  0.0340000000000000  0.0250000000000000  0.0520000000000000  0.0490000000000000  0.0270000000000000  0.0470000000000000  0.0520000000000000  0.0530000000000000  0.0410000000000000  0.0260000000000000  0.0290000000000000  0.0470000000000000  0.0550000000000000  0.0710000000000000  0.0520000000000000  0.0650000000000000  0.0440000000000000  0.0710000000000000  0.0550000000000000  0.0410000000000000  0.0640000000000000  0.0350000000000000  0.0930000000000000  0.0310000000000000  0.0480000000000000  0.0370000000000000  0.0380000000000000  0.0520000000000000  0.0370000000000000  0.0350000000000000  0.0280000000000000  0.0340000000000000  0.0400000000000000  0.0370000000000000  0.0570000000000000  0.0610000000000000  0.0440000000000000  0.0680000000000000  0.0470000000000000  0.0400000000000000  0.0270000000000000  0.0470000000000000  0.0350000000000000  0.0290000000000000  0.0280000000000000  0.0300000000000000  0.0770000000000000  0.0310000000000000  0.0560000000000000  0.0640000000000000  0.0420000000000000  0.0340000000000000  0.0290000000000000  0.0520000000000000  0.0260000000000000  0.0460000000000000  0.0380000000000000  0.0720000000000000  0.0750000000000000  0.0510000000000000  0.0560000000000000  0.0440000000000000  0.0390000000000000  0.0470000000000000  0.0450000000000000  0.0400000000000000  0.0880000000000000  0.0300000000000000  0.0440000000000000  0.0610000000000000  0.0370000000000000  0.0350000000000000  0.0490000000000000  0.0510000000000000  0.0820000000000000  0.0390000000000000  0.0440000000000000  0.0600000000000000  0.0310000000000000  0.0720000000000000  0.0460000000000000  0.0530000000000000  0.0500000000000000  0.0550000000000000  0.0390000000000000  0.0570000000000000  0.0460000000000000  0.0410000000000000  0.0470000000000000  0.0310000000000000  0.0720000000000000  0.0440000000000000  0.0610000000000000  0.0470000000000000  0.0420000000000000  0.0620000000000000  0.0790000000000000  0.0360000000000000  0.0450000000000000  0.0400000000000000  0.0540000000000000  0.0500000000000000  0.0430000000000000  0.0670000000000000  0.0230000000000000  0.0290000000000000  0.0450000000000000  0.0270000000000000  0.0470000000000000  0.0360000000000000  0.0600000000000000  0.0440000000000000  0.0290000000000000  0.0280000000000000  0.0350000000000000  0.0840000000000000  0.0660000000000000  0.0410000000000000  0.0300000000000000  0.0440000000000000  0.0450000000000000  0.0470000000000000  0.0620000000000000  0.0420000000000000  0.0300000000000000  0.0330000000000000  0.0320000000000000  0.0440000000000000  0.0700000000000000  0.0340000000000000  0.0420000000000000  0.0480000000000000  0.0360000000000000  0.0590000000000000  0.106000000000000   0.0280000000000000  0.0540000000000000  0.0870000000000000  0.0300000000000000  0.0300000000000000  0.0370000000000000  0.0210000000000000  0.0360000000000000  0.0910000000000000  0.126000000000000   0.0780000000000000  0.0510000000000000  0.0500000000000000  0.0370000000000000  0.0540000000000000  0.0380000000000000  0.0350000000000000  0.0480000000000000  0.0300000000000000  0.0340000000000000  0.133000000000000   0.0330000000000000  0.0340000000000000  0.0480000000000000  0.0590000000000000  0.0460000000000000  0.0650000000000000  0.0360000000000000  0.0650000000000000  0.0860000000000000  0.0290000000000000  0.0800000000000000  0.0430000000000000  0.0360000000000000  0.0490000000000000  0.0580000000000000  0.0310000000000000  0.0300000000000000  0.0330000000000000  0.0390000000000000  0.0330000000000000  0.0620000000000000  0.0330000000000000  0.0940000000000000  0.0270000000000000  0.0410000000000000  0.0570000000000000  0.0540000000000000  0.0390000000000000  0.0270000000000000  0.0590000000000000  0.0320000000000000  0.0390000000000000  0.0400000000000000  0.0720000000000000  0.0480000000000000  0.0480000000000000  0.0560000000000000  0.0730000000000000  0.0410000000000000  0.0520000000000000  0.0840000000000000  0.0590000000000000  0.0690000000000000  0.0330000000000000  0.0400000000000000  0.0320000000000000  0.0320000000000000  0.0310000000000000  0.0520000000000000  0.0760000000000000  0.0420000000000000  0.0370000000000000  0.0360000000000000  0.0780000000000000  0.0590000000000000  0.0390000000000000  0.0590000000000000  0.0880000000000000  0.0410000000000000  0.0640000000000000  0.0350000000000000  0.0350000000000000  0.0530000000000000  0.0490000000000000  0.0330000000000000  0.0640000000000000  0.0320000000000000  0.0880000000000000  0.0310000000000000  0.0980000000000000  0.0380000000000000  0.0270000000000000  0.0690000000000000  0.0530000000000000  0.0610000000000000  0.0380000000000000  0.0470000000000000  0.0620000000000000  0.0400000000000000  0.0400000000000000  0.0310000000000000  0.0740000000000000  0.0280000000000000  0.0310000000000000  0.0330000000000000  0.115000000000000   0.0890000000000000  0.0770000000000000  0.0490000000000000  0.0640000000000000  0.0580000000000000  0.0540000000000000  0.0330000000000000  0.0490000000000000  0.0230000000000000  0.0330000000000000  0.0490000000000000  0.0370000000000000  0.0330000000000000  0.0490000000000000  0.0460000000000000  0.0750000000000000  0.0420000000000000  0.0610000000000000  0.0340000000000000  0.0870000000000000  0.0390000000000000  0.0410000000000000  0.0430000000000000  0.0810000000000000  0.0570000000000000  0.0440000000000000  0.0470000000000000  0.0470000000000000  0.0320000000000000  0.0730000000000000  0.0590000000000000  0.0290000000000000  0.0450000000000000  0.0310000000000000  0.0450000000000000  0.0490000000000000  0.0880000000000000  0.0220000000000000  0.0330000000000000  0.0360000000000000  0.0350000000000000  0.0540000000000000  0.0470000000000000  0.0390000000000000  0.0300000000000000  0.0450000000000000  0.0740000000000000  0.0270000000000000  0.0320000000000000  0.0640000000000000  0.0750000000000000  0.0320000000000000  0.0300000000000000  0.0310000000000000  0.0470000000000000  0.0510000000000000  0.0520000000000000  0.0680000000000000  0.0700000000000000  0.0630000000000000  0.0410000000000000  0.0510000000000000  0.0460000000000000  0.0280000000000000  0.0780000000000000  0.0420000000000000  0.0390000000000000  0.0540000000000000  0.0310000000000000  0.0380000000000000  0.0320000000000000  0.0370000000000000  0.0260000000000000  0.0450000000000000  0.0610000000000000  0.0510000000000000  0.0240000000000000  0.0660000000000000  0.0380000000000000  0.0370000000000000  0.0450000000000000  0.0430000000000000  0.0710000000000000  0.0490000000000000  0.147000000000000   0.0340000000000000  0.0600000000000000  0.0400000000000000  0.0280000000000000  0.0350000000000000  0.0320000000000000  0.0410000000000000  0.0380000000000000  0.0380000000000000  0.0410000000000000  0.0600000000000000  0.0740000000000000  0.0350000000000000  0.0800000000000000  0.0370000000000000  0.0650000000000000  0.0300000000000000  0.0590000000000000  0.0620000000000000  0.0690000000000000  0.0540000000000000  0.0560000000000000  0.0230000000000000  0.0420000000000000  0.0560000000000000  0.0620000000000000  0.0460000000000000  0.0490000000000000  0.0690000000000000  0.0370000000000000  0.0400000000000000  0.0580000000000000  0.0340000000000000  0.0480000000000000  0.0300000000000000  0.0430000000000000  0.0270000000000000  0.0500000000000000  0.0550000000000000  0.0790000000000000  0.0380000000000000  0.0410000000000000  0.0450000000000000  0.0310000000000000  0.0430000000000000  0.0410000000000000  0.0480000000000000  0.0390000000000000  0.0650000000000000  0.0500000000000000  0.0500000000000000  0.0560000000000000  0.0690000000000000  0.0470000000000000  0.0790000000000000  0.0400000000000000  0.0540000000000000  0.0680000000000000  0.0660000000000000  0.0290000000000000  0.0520000000000000  0.0440000000000000  0.0570000000000000  0.0360000000000000  0.0610000000000000  0.0430000000000000  0.0470000000000000  0.0470000000000000  0.0500000000000000  0.0410000000000000  0.0690000000000000  0.0480000000000000  0.0480000000000000  0.0900000000000000  0.0590000000000000  0.0400000000000000  0.0340000000000000  0.0350000000000000  0.0520000000000000  0.0970000000000000  0.0350000000000000  0.0650000000000000  0.0320000000000000  0.0480000000000000  0.102000000000000   0.0410000000000000  0.0580000000000000  0.0260000000000000  0.0280000000000000  0.0660000000000000  0.0320000000000000  0.0390000000000000  0.0580000000000000  0.0450000000000000  0.0390000000000000  0.0610000000000000  0.0540000000000000  0.0490000000000000  0.0420000000000000  0.0490000000000000  0.0510000000000000  0.0350000000000000  0.0600000000000000  0.0920000000000000  0.0750000000000000  0.0360000000000000  0.0540000000000000  0.0850000000000000  0.0630000000000000  0.0330000000000000  0.0620000000000000  0.0370000000000000  0.0570000000000000  0.0280000000000000  0.0420000000000000  0.0510000000000000  0.0370000000000000  0.0480000000000000  0.125000000000000   0.0570000000000000  0.0870000000000000  0.0450000000000000  0.0310000000000000  0.0370000000000000  0.0650000000000000  0.0380000000000000  0.0590000000000000  0.0570000000000000  0.0540000000000000  0.0390000000000000  0.0500000000000000  0.0430000000000000  0.0360000000000000  0.0330000000000000  0.0280000000000000  0.0650000000000000  0.0440000000000000  0.0210000000000000  0.0410000000000000  0.0330000000000000  0.0600000000000000  0.0810000000000000  0.0370000000000000  0.0510000000000000  0.0370000000000000  0.0940000000000000  0.0440000000000000  0.0320000000000000  0.0590000000000000  0.0400000000000000  0.0570000000000000  0.0720000000000000  0.0640000000000000  0.0610000000000000  0.0500000000000000  0.0590000000000000  0.0520000000000000  0.0510000000000000  0.0910000000000000  0.0590000000000000  0.0370000000000000  0.0320000000000000  0.0740000000000000  0.0560000000000000  0.0310000000000000  0.0390000000000000  0.112000000000000   0.0580000000000000  0.0420000000000000  0.0280000000000000  0.0340000000000000  0.0360000000000000  0.0240000000000000  0.0380000000000000  0.0640000000000000  0.0320000000000000  0.0650000000000000  0.0300000000000000  0.0270000000000000  0.0530000000000000  0.0290000000000000  0.0380000000000000  0.0360000000000000  0.0510000000000000  0.0380000000000000  0.0340000000000000  0.0410000000000000  0.0630000000000000  0.0740000000000000  0.0760000000000000  0.0450000000000000  0.0630000000000000  0.0270000000000000  0.0660000000000000  0.0380000000000000  0.0540000000000000  0.0880000000000000  0.0450000000000000  0.0440000000000000  0.0460000000000000  0.0520000000000000  0.0380000000000000  0.0360000000000000  0.0500000000000000  0.0330000000000000  0.0610000000000000  0.0480000000000000  0.0480000000000000  0.0470000000000000  0.113000000000000   0.0470000000000000  0.0630000000000000  0.0800000000000000  0.0410000000000000  0.0630000000000000  0.0540000000000000  0.0450000000000000  0.0960000000000000  0.0500000000000000  0.0430000000000000  0.0340000000000000  0.0430000000000000  0.0440000000000000  0.0690000000000000  0.0580000000000000  0.0520000000000000  0.0640000000000000  0.0820000000000000  0.0390000000000000  0.0350000000000000  0.0700000000000000  0.0430000000000000  0.0340000000000000  0.0540000000000000  0.0580000000000000  0.0540000000000000  0.0430000000000000  0.0530000000000000  0.0590000000000000  0.0520000000000000  0.0730000000000000  0.0440000000000000  0.0970000000000000  0.0520000000000000  0.0510000000000000  0.0750000000000000  0.0320000000000000  0.0480000000000000  0.0410000000000000  0.0390000000000000  0.0380000000000000  0.0430000000000000  0.0440000000000000  0.0360000000000000  0.0400000000000000  0.0480000000000000  0.0430000000000000  0.0610000000000000  0.0610000000000000  0.0370000000000000  0.0520000000000000  0.0820000000000000  0.0480000000000000  0.0330000000000000  0.0460000000000000  0.0530000000000000  0.0690000000000000  0.0370000000000000  0.0330000000000000  0.0840000000000000  0.0860000000000000  0.0470000000000000  0.102000000000000   

Nic*_*son 5

从帮助中注意到这一点

如果不存在“检查”名称/值对,则可以省略“ cdf”名称/值对。

给我们第一个调试建议。因此,从输入列表中删除检查部分和CDF并运行

phat =  mle(x,'pdf', @eval_custpdf,'start',[0.6,0.02,1.01,2,4,-10]);
phat =  mle(x,'pdf', @eval_custpdf,'start',phat); %Restart for better result
Run Code Online (Sandbox Code Playgroud)

产生数字

情节1

告诉我们问题可能出在CDF函数中。与问题中给出的链接相比,我们看到这一行

second_integral     =  integral(@(x) eval_K(x,a,b,c),0,incomplete_gamma.^mybeta./n_gamma);
Run Code Online (Sandbox Code Playgroud)

本来应该

second_integral =  integral(@(x) eval_K(x,a,b,c),0,incomplete_gamma./n_gamma);
Run Code Online (Sandbox Code Playgroud)