【问题标题】:How to implement histfit in r?如何在 r 中实现 histfit?
【发布时间】:2012-09-18 14:21:01
【问题描述】:

Matlab 中有 histfit 函数可以绘制直方图并通过 bin 值拟合分布。 必须估计分布的参数。 如何在 r 中实现 histfit?找了半天,运气不好。

这个post 之前提到过这个,但是没有更好的解决方案。 sn 包似乎支持多个发行版,不是那么多。

我用 hist 函数探索数据,直方图显示了一般的伽马分布。 但是,如果我将 bin 相加并再次显示,图表将显示更多细节,并且 gamma 分布失败。 fitdistr 也将无法找到参数。 所以我想只使用直方图中的粗略数据来拟合数据。就是这个问题,谢谢你的帮助。

【问题讨论】:

  • 你到底尝试了什么?你甚至费心在这里搜索吗?试试这个:stackoverflow.com/questions/1497539
  • 我想要的几乎和post 中描述的@fmark 一样。但是 sn 包仅适用于不在我列表中的某些发行版。
  • @DirkEddelbuettel 我需要支持伽马分布。
  • 请学习如何搜索。查询[r] how to fit gamma distribution第一个命中返回:stackoverflow.com/questions/11689595 更一般地说,MASS 包有一个函数fitdistr
  • @DirkEddelbuettel,我已经读过了。 fitdistr 通过 mle 方法拟合所有样本,但我想通过 bin 值 hist 返回来拟合。

标签: r


【解决方案1】:

MASS 包中的fitdistr 函数可用于查找给定分布(包括伽马)的参数。函数 densitylogspline 包(和其他)可用于估计数据的密度函数,而无需假设特定分布。

linescurve 函数可用于将估计的密度曲线添加到绘制的直方图(在创建直方图时使用 prob=TRUE)。

如果您想将数据与特定分布进行比较,那么像 qqplots(qqplot 函数或其他)或视觉测试(TeachingDemos 包中的vis.test)之类的工具可能会比直方图和密度图更好。

【讨论】:

  • 我已经修改了上面的描述,请检查一下。
  • logspline 包中的oldlogspline 函数可以根据区间删失数据(直方图箱计数)拟合估计的密度,这不是伽马,而是估计的密度。如果您想要伽马密度,那么您仍然可以仅使用原始数据使用fitdistr,或者为伽马和区间删失数据创建一个可能性(或optim 而不是fitdistr)。目前尚不清楚您想要什么以及您拥有什么数据。
【解决方案2】:

我必须自己回答,包“bda”可以在多个分布中拟合分箱数据,但它只能通过四舍五入来分箱数据。

【讨论】:

    猜你喜欢
    • 2020-08-28
    • 2011-11-19
    • 2011-08-04
    • 2014-05-23
    • 2021-08-12
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多