WHU Bruisefree分享 http://blog.sciencenet.cn/u/bruisefree Link together

博文

常见分布的拟合方法

已有 18111 次阅读 2015-4-14 14:19 |系统分类:科研笔记


1.正态分布(normal)

正态分布拟合方法有多种,下面使用R中的MASS包拟合。

library(MASS) ## loading package MASS

fitdistr(data,"normal") ##fitting gamma pdf parameters

mean        sd    

4.4015990   6.3839222

(0.1583169) (0.1119470)

 

使用fitdistr还可以拟合的分布有:"beta", "cauchy", "chi-squared","exponential", "f", "gamma","geometric", "log-normal", "lognormal","logistic", "negative binomial", "normal","Poisson", "t" and "weibull"。

 

2.泊松分布(poission)

library(MASS) ## loading package MASS

fitdistr(data,"poisson")

##检验拟合效果—拟合优度goodness of fit

library(vcd)## loading vcd package

gf<-goodfit(data,type="poisson",method= "MinChisq")

summary(gf)

Goodness-of-fit test for poissondistribution

             X^2 df P(> X^2)

Pearson 176793643 47        0

p值为0,小于0.1,说明泊松分布假设不成立。

 

goodfit还可以得到"binomial","nbinomial"的拟合优度p值,方法除了卡方检验(MinChisq)外,还有最大似然估计(ML)。

 

更多信息可以参见:http://cran.r-project.org/doc/contrib/Ricci-distributions-en.pdf

 

3.幂律分布(Powerlaw)

Power-law distributions in empirical data介绍了幂律分布的统计检验方法。

可以使用R中的poweRlaw

library("poweRlaw")

topcomduration<-read.table('topComDuration.txt');

##拟合一个离散的幂律分布

m_pl = displ$new(topcomduration$V1)

##得到最小值xMin

est = estimate_xmin(m_pl)

m_pl$setXmin(est)

 

##perform a parameter scan for each value of xmin

estimate_xmin(m_pl, pars=seq(1.8, 2.3, 0.1))

est

$KS

[1] 0.01294299

 

$xmin

[1] 3

 

$pars

[1] 4.125586

 

attr(,"class")

[1] "estimate_xmin"

 

##所有xmin样本

bs = bootstrap(m_pl, no_of_sims=1000, threads=4)

 

##指定范围

bs=bootstrap(m_pl, xmins = seq(2, 10, 1) ,no_of_sims=1000, threads=3)

 

##计算拟合优度p-value

bs_p = bootstrap_p(m_pl)

bs_p

$p

[1] 0.76

 

$gof

[1] 0.05412729

 

这里p0.76大于0.1,表明拟合优度较好,呈幂律分布。

 

4.对数正态分布(log-normal)

可以采用fitdistr(data,"log-normal"),也可以使用poweRlaw包,用法与幂律分布类似。poweRlaw包可以得到拟合优度P值。

m_pl = displ$new(topcomduration$V1)

 

 

另外找到一个简单的工具,有部分分布拟合,如泊松分布:

http://www.mathwave.com/articles/distribution-fitting-goodness-of-fit.html

 

好多内容还是没有消化,需要系统的学习一下统计知识了。




https://blog.sciencenet.cn/blog-563898-882306.html

上一篇:Scaled sampling
下一篇:First Order Logic 一阶逻辑
收藏 IP: 59.172.176.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-3-29 03:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部