【发布时间】:2020-09-16 22:30:57
【问题描述】:
我正在将波高数据集 (m) 拟合到广义帕累托分布。我已经选择了 0.15m 的阈值。我正在从 Matlab 过渡到 R,所以我想比较两个程序的结果。我知道这两个程序不会提供相同的确切答案,但我希望得到的结果有点接近。
当然,对于两个配件,我使用了相同的数据和相同的阈值。两种方法都通过 MLE 估计参数。在 Matlab 中,fitdist 函数不估计阈值。假设它是已知的(在本例中为 0.15m),并在调用它之前从数据中减去(我已经这样做了)。而在 R 中,阈值是输入的一部分。
我使用的函数是:
MATLAB:
fitdist(data_above_threshold,'Generalized Pareto')
回复:
fevd(data,threshold =0.15,type = 'GP',method = "MLE")。 (extRemes 包)
在 Matlab 中我得到:
Shape:-1.0301 Scale:0.7534 在 R 中我得到 Shape:-0.5848505 Scale:0.3620191
我在这里附上数据,以便您自己查看结果:
c(0.194101337780203, 0.289791483274648, 0.313940773547535, 0.184577674010614,
0.102266008573448, 0.045464156804826, 0.0486387113946889, 0.143761972140945,
0.267342847246331, 0.242966803074167, 0.069386693178437, 0.0099771715681416,
0.00736950172646855, 0.056121590070795, 0.0759625562574393, 0.145009118586962,
0.258045937376017, 0.379926158236833, 0.236844447793717, 0.0861664817248564,
0.0503393656392586, 0.156233436601121, 0.118138781522764, 4.44089209850063e-16,
4.44089209850063e-16, 4.44089209850063e-16, 4.44089209850063e-16,
0.0442170103588082, 4.44089209850063e-16, 4.44089209850063e-16,
4.44089209850063e-16, 4.44089209850063e-16, 0.0143988726040223,
0.148183673176825, 0.197729400168618, 0.0143988726040223, 4.44089209850063e-16,
4.44089209850063e-16, 4.44089209850063e-16, 0.026416829265647,
0.133558046673528, 0.209180472082052, 0.236050809146251, 0.0976175536382913,
0.0292512530065965, 0.101812500774896, 0.174260371593558, 0.219271020599832,
0.463144839271102, 0.579809720448572, 0.533211794147367, 0.354756475417204,
0.360085192050189, 0.632756755929504, 0.651577329569406, 0.413372358380034,
0.39353139219339, 0.343985665201597, 0.0630375839987112, 4.44089209850063e-16,
4.44089209850063e-16, 4.44089209850063e-16, 4.44089209850063e-16,
4.44089209850063e-16, 0.0486387113946889, 0.0434233717113424,
4.44089209850063e-16, 4.44089209850063e-16, 4.44089209850063e-16,
0.0566884748189849, 0.147730165378273, 0.175734271938852, 0.0827651732357175,
4.44089209850063e-16, 4.44089209850063e-16, 4.44089209850063e-16,
4.44089209850063e-16, 4.44089209850063e-16, 4.44089209850063e-16,
0.0385481628769098, 0.0378679011790819, 0.0463711724019298, 0.0200677200859207,
4.44089209850063e-16, 4.44089209850063e-16, 4.44089209850063e-16,
4.44089209850063e-16, 4.44089209850063e-16, 0.0956901454944461,
0.128909591738371, 0.141154302299272, 0.0459176646033779, 4.44089209850063e-16,
0.0285709913087686, 0.251696828196291, 0.642847304447283, 0.731394702114536,
0.603732256822183, 0.427997984883332, 0.635251048821539)
所以,我的问题是:如果两者都使用 MLE 来估计参数,那么为什么结果会如此不同?那么哪种拟合更可靠,或者您推荐使用哪一种?
【问题讨论】:
标签: r matlab data-fitting