我有一个关于某个向量的问题。我想找出它是否是伽马分布的,以及(如果是)参数(形状,速率)是什么。我的向量有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你能告诉我怎样才能知道我的向量是否是伽马分布的,以及参数是什么?
发布于 2017-06-13 04:44:33
嗯,我刚刚在处理一些伽马分布的数据时遇到了同样的问题。
可能发生的情况是,当您调用ks.test ()函数时,gamma分布的默认参数是形状和比例,但您传递的是形状和速率。尝试以下操作:
ks.test (x, "pgamma", shape=0.167498708, rate=0.519997226)如果这对您没有帮助,请尝试Cross validated中描述的科尔莫戈罗夫-斯米尔诺夫测试模拟过程。
最后,我必须说,如果我得到你的向量x并运行fitdistr(),我得到shape=0.7177和rate=0.0692,它们给出了KS=0.18302,p-value=0.7527。所以你的fitdistr(x, "gamma")出问题了。
发布于 2015-08-17 20:23:16
看看你的数据图表就知道了。由于它只有400个条目,你最好使用=gammadist()而不是R来将它拟合到MS excel中。如果你的图形类似于伽马-距离曲线(只需谷歌曲线图像并检查),那么你可以尝试将数据拟合到伽马曲线……fitdistr()的上述结果告诉您,最适合您的数据的是参数为alpha = 0.167498708和beta = 0.519997226的gamma函数曲线。但是ks测试表明,这是一个非常差的拟合。我想这个图表观察会告诉你更好的。
https://stackoverflow.com/questions/31841532
复制相似问题