判断数据是否服从某一分布(二)——简单易用fitdistrplus包
一、对数据的分布进行初步判断
1.1 原理
对于不同的分布,有特定的偏度(skewness)和峰度(kurtosis),正态分布、均匀分布、逻辑斯谛分布、指数分布的偏度和峰度都是特定的值,在偏度-峰度图中是特定的点,而伽马分布和对数正态分布在偏度-峰度图中是一条直线,贝塔分布在偏度-峰度图中是一片区域。因此可以通过未知分布的偏度峰度值(在图中是一个观察点),与各种分布的偏度峰度点(线、区域)进行对比,判断未知分布数据大致可能的一个或几个分布。
1.2 R代码
library(fitdistrplus)
descdist(data, discrete = FALSE, boot = NULL, method = "unbiased",
graph = TRUE, obs.col = "darkblue", obs.pch = 16, boot.col = "orange") #data就是输入的数据,向量;discrete是否使离散的分布;boot,默认从数据的bootstrap样品中得到偏度-峰度点;method,默认“unbiased样品的无偏估计值,也可“sample",样品值;graph,是否图画出来;obs.col,点的颜色;obs.pch,点的样式;boot.col,点图中bootstap样品的颜色。
二、进一步判断数据对某分布的服从程度
2.1 原理
通过maximum likelihood (mle), moment matching (mme), quantile matching (qme) or maximizing goodness-of-fit estimation (mge)几种方法将单变量分布拟合为非截尾数据。
2.2 R代码
fitdist(data, distr, method = c("mle", "mme", "qme", "mge"),
start=NULL, fix.arg=NULL, discrete=FALSE, keepdata = TRUE, keepdata.nb=100, ...) #data,输入的数据;distr,待拟合的分布,偏度-峰度图上出现的分布,也可以是自己写的函数;method方法,默认mle(最在大似然估计);start,如果有自己写的分布并且需要填入起始变量值的话,start就是需要输入的分布起始值;fix.arg,指定待拟合分布的参数;discrete是否是离散的分布;keepdata,确定返回的是数据集还是数据子集,默认返回数据集;keepdata.nb,如果keepdata值为FALSE,keppdata.nb的值决定长度大于多少的子集才返回。
三、实例
例一
引入《判断数据是否服从某一分布(一)》中例二。
数据:
某公司接到一次电话的时间间隔,30个数据(单位:分钟):
0.8 11.7 2.8 11.9 6.1 1
34.8 3.8 5.2 15.0 10.3 12.3
8.2 0.6 1.7 14.5 8.3 28.9
3.1 7.3 10.2 8.9 0.1 15.5
5.7 0.7 8.3 0.9 40.7 2.9
分析:
library(fitdistrplus)
x<-c(0.8,11.7,2.8,11.9,6.1,1,
34.8,3.8,5.2,15.0,10.3,12.3,
8.2,0.6,1.7,14.5,8.3,28.9,
3.1,7.3,10.2,8.9,0.1,15.5,
5.7,0.7,8.3,0.9,40.7,2.9)
descdist(x)
由图可知,观察点接近的分布有gamma分布和指数分布。
首先判断数据对gamma分布的服从程度:
fitdist(x, "gamma")
再判断对指数分布的服从程度:
fitdist(x, "exp")
由上述结果可知,指数分布的Std.Error(标准误)更小。所以数据更服从指数分布。
参考文献
https://cran.r-project.org/web/packages/fitdistrplus/fitdistrplus.pdf
判断数据是否服从某一分布(二)——简单易用fitdistrplus包的更多相关文章
- 使用K-S检验一个数列是否服从正态分布、两个数列是否服从相同的分布
假设检验的基本思想: 若对总体的某个假设是真实的,那么不利于或者不能支持这一假设的事件A在一次试验中是几乎不可能发生的.如果事件A真的发生了,则有理由怀疑这一假设的真实性,从而拒绝该假设. 实质分析: ...
- OAF_开发系列03_实现OAF如何在保存前判断数据是否存在变更(案例)
2014-06-26 Created By BaoXinjian
- js 判断数据是否为空
js 判断数据是否为空 // var a = ""; // var a = " "; // var a = null; // var a = undefined ...
- echart 判断数据是否为空
formatter 判断数据是否为空
- 大数据实践:ODI 和 Twitter (二)
大数据实践:ODI和Twitter(二) 在前面的文章中,我们已经使用flume将数据从twitter抓取到Hive中,现在我们来看看ODI(Oracle Data Integrator)如何在HIV ...
- CYQ.Data 轻量数据层之路 使用篇二曲 MAction 数据查询(十三)----002
原文链接:https://blog.csdn.net/cyq1162/article/details/53303390 前言说明: 本篇继续上一篇内容,本节介绍所有相关查询的使用. 主要内容提要: 1 ...
- mysql语句插入前判断数据是否重复
在mysql中插入数据有时需要判断数据插入是否重复 语句编写:insert into 表(相应字段) select 相应字段 from dual where not exists (select 相应 ...
- 通过exists判断数据,并查找存在的数据
----通过exists判断数据,并查找存在的数据---以scott用户的emp 及dept表为例 select * from emp; select * from dept; ---查找emp表中的 ...
- php判断form数据是否为POST而来,判断数据提交方式
//判断form数据是否为POST而来,判断数据提交方式 if ($_SERVER['REQUEST_METHOD'] != 'POST') { // 非 POST 来路,做警告或你想做的事 retu ...
随机推荐
- Nginx安装及配置虚拟主机
nginx安装部分 依赖环境 yum -y install gcc zlib openssl-devel zlib-devel 1. 下载好下面两个包:nginx-1.8.1.tar.gz pcre- ...
- 51nod算法马拉松 contest7
A题 链接:http://www.51nod.com/contest/problem.html#!problemId=1417 推荐链接:http://blog.csdn.net/a837199685 ...
- IT技术网站汇总
首先是比较著名的博客型的网站!一般来说在国外比较著名的博客基本上都是比较有影响力发起的或者建立的经常发布一些比较有思考力深入分析的文章! 博客媒体网站 1.www.ArsTechnica.com 2. ...
- DDR工作原理(转)
源:DDR工作原理 DDR SDRAM全称为Double Data Rate SDRAM,中文名为“双倍数据流SDRAM”.DDR SDRAM在原有的SDRAM的基础上改进而来.也正因为如此,DDR能 ...
- [转载] python利用psutil遍历进程名字和exe所在目录
本文转载自: http://www.duanzhihe.com/1594.html http://www.jianshu.com/p/64e265f663f6 import psutil,os,tim ...
- IOS开发-UI学习-UIFont,字体设置及批量创建控件
在IOS 中,使用[UIFont familyNames]这个方法获取72种系统字体. 使用[UIFont fontWithName:@"Zapfino" size:18]这个方法 ...
- python 模块添加
python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径.下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构:`-- src ...
- Grunt构建工具插件篇——之less工具3和watch配合自动化编译
grunt less转换成css速度慢 而且页面会全部刷新? 最近遇到了个问题,grunt里用less,当修改完.less里面的样式,对应 的.css文件会好几秒才修改,然后浏览器上显示也会耗时好几秒 ...
- OS X EI Capitan 10.11 & xcode 7.0 beta(7A120f) -- cocoapods安装失败
1.sudo gem install cocoapods: ERROR:While executing gem ... (Errno:EPERM) Operation not permitted - ...
- 浅谈Java工具类CommonUtils的使用
package com.xushouwei.cn; import java.util.HashMap; import java.util.Map; import org.junit.Test; imp ...