使用R拟合分布
几个常用的概率函数介绍
这里,参考R语言实战,以及[Fitting Distribution with
R]的附录。
一.认识各种分布的形态
1.1 连续型随机变量的分布
首先,我们来回顾一遍各类分布函数的表达式,及其关系。
先逐一介绍与标准正态分布相关的一些分布:正态分布,卡方分布,t−
分布,F−分布,Wishart
分布。
先上个图,一睹为快。
以上几个分布之间的关系如以下结构图所示。
[广义线性模型导论3rd edition,p10]
1.1.1 正态分布
正态分布N(μ,σ2)
的密度函数:
正态分布的形态如图。
library(ggplot2)
library(reshape2)
library(dplyr)
#产生分布数据
set.seed(123)
data_norm<-data.frame(x1 = rnorm(n = 200, m = 0, sd
= 1),
x2 = rnorm(n = 200, m = 0, sd = sqrt(2)),
x3 = rnorm(n = 200, m = 0, sd = sqrt(0.5)),
x4 = rnorm(n = 200, m = 1, sd = 1),
x5 = rnorm(n = 200, m = -1, sd =1)
)
data_norm_long<-melt(data_norm)
ggplot(data = data_norm_long, aes(x = value, colour =
variable))
geom_density()
ggtitle
("正态分布密度函数")
正态分布可以衍生出如下的分布。
1.1.2 卡方分布
若Zi∼ i.i.dN(0,1)
,则有
set.seed(123)
data_chisq<-data.frame(x1 = rchisq(200, 10, ncp =
0),
x2 = rchisq(200, 50, ncp =0),
x3 = rchisq(200, 100, ncp = 0))
data_chisq_long<-melt(data_chisq)
## No id variables; using all as measure variables
ggplot(data = data_chisq_long, aes(x = value, colour =
variable))
geom_density()
ggtitle
("卡方分布密度函数")
1.1.3t−
分布
若,并且Z和X2独立,则有
set.seed(123)
data_t<-data.frame(x1 = rt(200, 10, ncp = 0),
x2 = rt(200, 50, ncp =0),
x3 = rt(200, 100, ncp = 0))
data_t_long<-melt(data_t)
## No id variables; using all as measure variables
ggplot(data = data_t_long, aes(x = value, colour = variable))
geom_density()
ggtitle
("t-分布密度函数")
1.1.4F−
分布
若,并且X1和X2相互独立,则有
set.seed(123)
data_f<-data.frame(x1 = rf(200,df1 = 10, df2 = 10,
ncp = 0),
x2 = rf(200,df1 = 5, df2 = 3, ncp =0),
x3 = rf(200, df1 = 3, df2 = 5, ncp = 0))
data_f_long<-melt(data_f)
## No id variables; using all as measure variables
ggplot(data = data_f_long, aes(x = value, colour = variable))
geom_density()
ggtitle
("F-分布密度函数")
1.1.5Wishart
分布
Wishart
分布是χ2分布在p
维正态情况下的推广。这里对多维情况暂不展开介绍。
1.2 离散型随机变量的分布
1.2.1 伯努利(Bernoulli
)分布
伯努利分布记为Bernoulli(p)
,只有0和1两种取值。概率测度函数如下:
1.2.2 二项(Binomial
)分布
二项分布B(n,p)
的可能取值范围为0,1,...,n。其概率测度函数如下:

data_binom<-data.frame(x1 = rbinom(n = 1000, size =
10, prob = 0.6),
x2 = rbinom(n = 1000, size = 50, prob = 0.6),
x3 = rbinom(n = 1000, size = 100, prob = 0.6),
x4 = rbinom(n = 1000, size = 500, prob = 0.6))
data_binom_long<-melt(data_binom)
ggplot(data = data_binom_long, aes(x = value, colour =
variable))
geom_density()
ggtitle
("二项分布概率分布图")
1.2.3 负二项(NegativeBinomial
)分布
负二项分布。
1.2.4 几何(Geometric
)分布
1.2.5 泊松(Poission
)分布
1.3 指数分布族及其相互联系
1.3.1 指数分布族
[广义线性模型导论3rd edition,p58]
1.3.2 指数分布
1.3.3 Weibull分布
1.3.4 Beta分布
1.3.5 Gama分布
1.3.6 双指数(DoubleExponential
)分布
1.4 其他分布
1.4.1 均匀(Uniform
)分布
1.4.2 柯西(Cauchy
)分布
1.4.3 对数正态(Lognormal
)分布
1.5 可视化探索的步骤举例
首先,通过直方图,经验累积分布形态等来观察数据的分布形态。
#产生一组服从N(10,2)分布的随机数
set.seed(123)
x.norm<-rnorm(n = 200, m =10, sd = 2)
#绘制直方图
hist(x.norm, main = "观测样本的直方图")
#拟合密度曲线
plot(density(x.norm), main = "密度函数估计")
#绘制累积经验分布图
plot(ecdf(x.norm), main = "累积经验分布函数")
#绘制QQ图
z.norm<-(x.norm - mean(x.norm))/sd(x.norm)
qqnorm(z.norm)
abline(0,1)
其次,通过QQ图来验证数据是否符合正态分布。
二.模型选择
三.参数估计
模拟估计
矩估计
极大似然估计
四.拟合优度指标
五.拟合优度检验
使用R拟合分布的更多相关文章
- 判断数据是否服从某一分布(二)——简单易用fitdistrplus包
一.对数据的分布进行初步判断 1.1 原理 对于不同的分布,有特定的偏度(skewness)和峰度(kurtosis),正态分布.均匀分布.逻辑斯谛分布.指数分布的偏度和峰度都是特定的值,在偏 ...
- [matlab] 1.拟合
x = [1 2 3 4 5 6 7 8 9 ]; y = [9 7 6 3 -1 2 5 7 20]; p=polyfit(x,y,3); %数字代表拟合函数的阶数 xi=0:0.01:10; yi ...
- MATLAB之数据处理+公式拟合
MATLAB之数据处理+公式拟合 前言:由试验得到一组数据,对该组数据进行处理,作图分析,分析各变量的关系,期望得到拟合公式. 试验数据背景 本次试验有三个自变量:V.M.G,因变量为F,每组试验重复 ...
- GAN综述
生成式对抗模型GAN (Generativeadversarial networks) 是Goodfellow等[1]在 2014年提出的一种生成式模型,目前已经成为人工智能学界一个热门的研究方向,著 ...
- Generative Adversarial Networks overview(1)
Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章会先从Gan的简单应用示例讲起,从三个方面问题以及解决思路覆盖25篇GAN论文,第二个大部分会进一步 ...
- Image Processing and Analysis_8_Edge Detection:Edge and line oriented contour detection State of the art ——2011
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- Dykin's blog
回归分析是一种很重要的预测建模技术.主要是研究自变量与因变量之间的因果关系.本文将会从数学角度与代码角度分析不同类型的回归.当你想预测连续型的非独立变量,或者对一系列独立变量或输入项有所反应时,就会使 ...
- 【原】浅谈KL散度(相对熵)在用户画像中的应用
最近做用户画像,用到了KL散度,发现效果还是不错的,现跟大家分享一下,为了文章的易读性,不具体讲公式的计算,主要讲应用,不过公式也不复杂,具体可以看链接. 首先先介绍一下KL散度是啥.KL散度全称Ku ...
- EM算法(2):GMM训练算法
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(2):GMM训练算法 1. 简介 GMM模型全称为Ga ...
随机推荐
- Java正则表达式实例详解
创建正则表达式 你可以从比较简单的东西入手学习正则表达式.要想全面地掌握怎样构建正则表达式,可以去看JDK 文档的java.util.regex 的Pattern 类的文档. 字符 B 字符B \xh ...
- spring整合http
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接出处:https://blog.csdn.net/qq_3076499,否则保留追究法律责任的权利. 如果 ...
- 初学linux时遇到的那些哭笑不得的问题
1.终端中无法输入密码? 在终端输入密码,是不会在输入密码的时候看见星号或者圆点符号的.它不会有任何输入密码的视觉指示,也不会有任何光标移动,什么也不显示. 其实是输进去了,只是没有明文显示出来而已. ...
- ubuntu 16.04 换源
第一步:备份原来的源文件 cd /etc/apt/ 命令 cp sources.list sources.list.bak 将sources.list备份到sources.list.bak 第二步:替 ...
- Django项目:CRM(客户关系管理系统)--55--46PerfectCRM实现登陆后页面才能访问
#urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...
- Thinkphp 错误集锦
1.无法加载控制器 开始还跑TP核心文件中找错误,结果没找到什么结果.最后还是用程序新建模块才发现问题. 问题是命名空间名字写错了.比如书:本来是Report模块下的IndexContrller,但是 ...
- NLog系列之NLong.config变量配置篇
$ {cached} - 将缓存应用于另一个布局输出. $ {db-null} - 为数据库渲染DbNull $ {exception} - 通过调用Logger方法之一提供的异常信息 $ {lev ...
- Docker 私有仓库下载镜像
1.添加私有仓库路径 vim /etc/sysconfig/docker --insecure-registry 192.168.105.30:5000 注:版本差异 2.下载镜像 docker pu ...
- BZOJ2529: [Poi2011]Sticks
2529: [Poi2011]Sticks Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 257 Solved: ...
- Leetcode73. Set Matrix Zeroes矩阵置零
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 示例 1: 输入: [ [1,1,1], [1,0,1], [1,1,1] ] 输 ...