1

我对某个向量有疑问。我想知道它是否是伽马分布的,以及(如果是的话)参数(形状、速率)是什么。我的向量有 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

那么您能否告诉我如何确定我的向量是否是伽马分布的以及参数是什么?

4

2 回答 2

1

好吧,我在处理一些伽马分布数据时遇到了同样的问题。

可能发生的情况是,当您调用该ks.test ()函数时,伽马分布的默认参数是按该顺序排列的形状和比例,但您传递的是形状和速率。尝试以下操作:

ks.test (x, "pgamma", shape=0.167498708, rate=0.519997226)

如果这对您没有帮助,请尝试交叉验证中描述的 Kolmogorov-Smirnov 测试模拟程序。

最后,我必须说,如果我得到你的向量x并运行,fitdistr()我得到shape=0.7177and rate=0.0692,它给出KS=0.18302, p-value=0.7527。所以你的fitdistr(x, "gamma").

于 2017-06-12T20:44:33.167 回答
0

看看你的数据图表。由于它只有 400 个条目,因此您最好尝试使用=gammadist()而不是使用 R 将其拟合到 MS excel 中。如果您的图形类似于 gamma-dist 曲线(只需谷歌曲线图像并检查),您可以尝试拟合数据到 gamma 曲线... 上面的结果fitdistr()告诉您,最适合您的数据的是参数 alpha = 0.167498708 和 beta = 0.519997226 的 gamma 函数曲线。但是 ks 测试是说它非常不适合。我想图形观察会更好地告诉你。

于 2015-08-17T12:23:15.607 回答