我遇到某个矢量问题。我想找出它是否是伽马分布的(如果是的话)参数(形状,速率)是什么。我的矢量有400个条目,但我们可以采取例如。
x <- c(45.94,31.04,17.49,9.81,6.34,4.18,2.93,2.01,1.61,1.27,1.04,0.809)
我读了一些关于fitdistr()的内容。但我不太明白它究竟做了什么!我尝试跟随我的真实(长)向量:
fitdistr(x, "gamma")
shape rate
0.167498708 0.519997226
(0.008849548) (0.068359517)
Warning messages:
1: In densfun(x, parm[1], parm[2], ...) : NaNs wurden erzeugt
2: In densfun(x, parm[1], parm[2], ...) : NaNs wurden erzeugt
3: In densfun(x, parm[1], parm[2], ...) : NaNs wurden erzeugt
4: In densfun(x, parm[1], parm[2], ...) : NaNs wurden erzeugt
5: In densfun(x, parm[1], parm[2], ...) : NaNs wurden erzeugt
6: In densfun(x, parm[1], parm[2], ...) : NaNs wurden erzeugt
7: In densfun(x, parm[1], parm[2], ...) : NaNs wurden erzeugt
输出是什么意思?这些是我的拟合参数吗?我对它们进行了测试,但KS-Test给了我一个负面结果:
> ks.test(anzahl, "pgamma", 0.167498708, 0.519997226)
One-sample Kolmogorov-Smirnov test
data: anzahl
D = 0.3388, p-value < 2.2e-16
alternative hypothesis: two-sided
那么你可以告诉我如何才能知道我的矢量是否是伽马分布的以及参数是什么?
答案 0 :(得分:1)
好吧,我在处理一些伽玛分布式数据方面遇到了同样的麻烦。
当您调用data = np.hstack((a,b))
函数时,可能会发生的情况是,伽马分布的默认参数是该顺序的形状和比例,但您传递的是形状和速率。请尝试以下方法:
ks.test ()
如果这对您没有帮助,请尝试Cross validated中描述的Kolmogorov-Smirnov测试模拟程序。
最后,我必须说,如果我得到你的向量ks.test (x, "pgamma", shape=0.167498708, rate=0.519997226)
并运行x
,我会得到fitdistr()
和shape=0.7177
,这会给rate=0.0692
,{{ 1}}。所以KS=0.18302
会出现问题。
答案 1 :(得分:0)
只需查看数据图表即可。由于它只有400个条目,你最好使用=gammadist()
而不是使用R来使其适合MS excel。如果你的图形类似于gamma-dist曲线(只需google曲线图像和检查),那么你可以尝试将数据拟合到伽马曲线... fitdistr()
的上述结果告诉您,数据的最佳拟合是伽马函数曲线,参数alpha = 0.167498708和beta = 0.519997226。但是ks测试表明这是一个非常差的人。我猜图表观察会告诉你更好。