首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用R中的'fitdistr‘拟合t分布

用R中的'fitdistr‘拟合t分布
EN

Stack Overflow用户
提问于 2014-04-17 23:45:28
回答 2查看 2.7K关注 0票数 1

我有一组数据,是在地震中判给申索人的申索赔偿的百分比,即判给的价值/申索价值。我想要对这些百分比值的分布进行建模,并使用R中的fitdistr函数来拟合具有1个自由度的t分布。

fitdistr返回的ms值为:

代码语言:javascript
复制
98.82907933(0.08574821) 

代码语言:javascript
复制
2.87906212(0.10310584). 

现在我的分布的公式是什么?当我输入索赔赔偿的值时,允许我计算百分比值的函数?它是标准t分布的pdf吗?

EN

回答 2

Stack Overflow用户

发布于 2015-10-15 08:23:21

严格地说,1个自由度的t分布(又称柯西分布)没有需要拟合的参数。fitdistr在这里要做的是估计位置/比例转换t= (x - m)/s的参数,以便t最好地拟合t_1分布。这里的x是数据。

票数 1
EN

Stack Overflow用户

发布于 2015-10-15 09:23:22

由于具有1 df的t分布也称为柯西分布,因此您可以通过以下方法模拟索赔大于200,000的概率:

代码语言:javascript
复制
params <- list(location=98.82907933,scale=2.87906212)
with(params,pcauchy(x=2e5,location,scale,lower.tail=FALSE)) ## 4.58e-6

再检查一遍,我们可以确认location参数也是中间值:

代码语言:javascript
复制
with(params,pcauchy(x=location,location,scale,lower.tail=FALSE)) ## 0.5

您还可以按照上面的建议转换数据并使用pt

代码语言:javascript
复制
with(params,pt((2e5-location)/scale,1,lower.tail=FALSE))  ## same as above

可以使用dt/dcauchy表示概率密度,使用qt/qcauchy表示分位数( qt的结果必须转换为z*scale+location)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23137640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档