【问题标题】:Fitting Curve of Gamma Distribution in HistHist 中 Gamma 分布的拟合曲线
【发布时间】:2019-06-04 05:35:35
【问题描述】:

当我运行这个时:

x<-c(73,6,77,81,91,120,150,61,65,68,18,20,23,12,14,18,23,26,26,27,2,3,3,40,41,41,6,10,11,12,37,38,38,6,73,6,51)
a<-1.286486;b<-30.59584

hist(x,breaks=c(0,20,40,60,80,100,120,160),probability = T,xaxt="n")
curve(dgamma(x,a,b),from=0,to=160,col="red",lwd=2,add=T)

它应该在直方图上生成 Gamma 分布曲线。相反,它只是沿着 x 轴制作一条平线。

我在这里做错了什么?

【问题讨论】:

  • 这里有问题吗?欢迎来到 StackOverflow!请提供mvce
  • @Ic3fr0g 首先感谢您的欢迎。抱歉,问题是我怎样才能出现 Hist 曲线。如果你运行它,你会在 x 轴上看到一条线。
  • 对于这个数据集,我更适合非中心卡方分布而不是伽马分布。

标签: r plot histogram curve-fitting


【解决方案1】:

您的 x 向量似乎不包含具有这些参数 (a,b) 的伽马分布的实现。试试这个:

a<-1.286486
b<-30.59584
num<-rgamma(1000,a,b)
hist(num,nclass = 100,freq=F)
curve(dgamma(x,a,b),col="red",lwd=2,add=T)

【讨论】:

    【解决方案2】:

    您对模型的系数不正确。速率参数应该更接近 0.03。

    x<-c(73,6,77,81,91,120,150,61,65,68,18,20,23,12,14,18,23,26,26,27, 2,3,3,40,41,41,6,10,11,12,37,38,38,6,73,6,51)
    
    library(fitdistrplus)
    model<-fitdist(x, "gamma")
    print(model$estimate)
    #    shape      rate 
    #1.1911710 0.0311047 
    a=model$estimate[1]
    b=model$estimate[2]    
    
    h<-hist(x,breaks=c(0,20,40,60,80,100,120,160),probability = T)
    curve(dgamma(x,a,b),from=0,to=160,col="red",lwd=2,add=T)
    

    【讨论】:

      猜你喜欢
      • 2019-09-17
      • 1970-01-01
      • 2019-03-31
      • 2023-03-26
      • 2021-03-14
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多