加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

使用R拟合分布

(2017-06-29 09:50:23)
标签:

r

数据分析师

数据分析师培训

数据挖掘

使用R拟合分布

几个常用的概率函数介绍

这里,参考R语言实战,以及[Fitting Distribution with R]的附录。

一.认识各种分布的形态

1.1 连续型随机变量的分布

首先,我们来回顾一遍各类分布函数的表达式,及其关系。
先逐一介绍与标准正态分布相关的一些分布:正态分布,卡方分布,t−

分布,F−分布,Wishart

分布。
先上个图,一睹为快。
以上几个分布之间的关系如以下结构图所示。
[广义线性模型导论3rd edition,p10]

1.1.1 正态分布

正态分布N(μ,σ2)

的密度函数:

http://www.cda.cn/uploadfile/image/20170628/20170628073113_33842.png

正态分布的形态如图。

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

("正态分布密度函数")

http://www.cda.cn/uploadfile/image/20170628/20170628073200_68609.png

正态分布可以衍生出如下的分布。

1.1.2 卡方分布

若Zi∼ i.i.dN(0,1)

,则有http://www.cda.cn/uploadfile/image/20170628/20170628073226_26587.png

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


("卡方分布密度函数")

http://www.cda.cn/uploadfile/image/20170628/20170628073308_97216.png

1.1.3t−

分布

http://www.cda.cn/uploadfile/image/20170628/20170628073400_60902.png,并且Z和X2独立,则有

http://www.cda.cn/uploadfile/image/20170628/20170628073335_63339.png

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-分布密度函数")

http://www.cda.cn/uploadfile/image/20170628/20170628073523_71780.png

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-分布密度函数")

http://www.cda.cn/uploadfile/image/20170628/20170628073603_17615.png

1.1.5Wishart

分布

Wishart

分布是χ2分布在p

维正态情况下的推广。这里对多维情况暂不展开介绍。

1.2 离散型随机变量的分布

1.2.1 伯努利(Bernoulli

)分布

伯努利分布记为Bernoulli(p)

,只有0和1两种取值。概率测度函数如下:

http://www.cda.cn/uploadfile/image/20170628/20170628073637_45839.png

1.2.2 二项(Binomial

)分布

二项分布B(n,p)

的可能取值范围为0,1,...,n。其概率测度函数如下:

set.seed(123)
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

("二项分布概率分布图")

http://www.cda.cn/uploadfile/image/20170628/20170628073736_56756.png

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 = "观测样本的直方图")

http://www.cda.cn/uploadfile/image/20170628/20170628073842_59530.png

#拟合密度曲线
plot(density(x.norm), main = "密度函数估计")

http://www.cda.cn/uploadfile/image/20170628/20170628073911_11964.png

#绘制累积经验分布图
plot(ecdf(x.norm), main = "累积经验分布函数")

http://www.cda.cn/uploadfile/image/20170628/20170628073952_58869.png

#绘制QQ图
z.norm<-(x.norm - mean(x.norm))/sd(x.norm)
qqnorm(z.norm)
abline(0,1)

http://www.cda.cn/uploadfile/image/20170628/20170628074025_58391.png

其次,通过QQ图来验证数据是否符合正态分布。

二.模型选择

三.参数估计

模拟估计

矩估计

极大似然估计

四.拟合优度指标

五.拟合优度检验

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有