1、常见概率分布

##正态分布
pnorm(1.96)                #P(x<=1.96)时的分布概率
pnorm(1.96,0,1)            #上同
pnorm(1.96,lower.tail = F) #P(x>1.96)注意与pnorm的区别
qnorm(0.975)               #已知分布概率求x值
dnorm(0)                   #f(0)概率密度值
rnorm(111)                 #产生符合正态分布的111个随机数

##泊松分布 Possion(x,λ)
dpois(2,0.9)      #等同概率密度
dpois(2.1,0.9)    #x一定需要整数
ppois(2.1,0.9)    #分布概率,取2.1的最小整数

其他一些分布函数:

一个利用概率分布解决问题的例子

1.  某人进行射击,每次击中目标的命中率为0.02,独立射击400次,求至少击中两次的概率。

解:400重伯努利试验,用二项分布求解。

P{X = k} = C400k * (0.02)^k * (0.0=98)^(400-k)

P{X≥2} = 1 – P{X = 0} - P{X = 1}

> 1 - sum(pbinom(0:1, 400, 0.02))
[1] 0.9968561

2、根据分布产生随机数

均匀分布、正态分布是比较常见的产生随机数的分布

> runif(10)
 [1] 0.961465376 0.007521925 0.193619234 0.137027246 0.739370654 0.072907082
 [7] 0.674551635 0.650777811 0.984664183 0.796723066

显著性水平为5%的正态分布的双侧临界值是:

> qnorm(0.025)
[1] -1.959964
> qnorm(0.975)
[1] 1.959964

随机数中产生的问题

问:set.seed设置了种子,但是每次产生的随机数还是不同?

解答:set.seed()只对运行该命令后的第一次随机产生结果有效。

  1. > set.seed(13)
  2. > rnorm(10)
  3. [1]  0.5543269 -0.2802719  1.7751634  0.1873201  1.1425261  0.4155261
  4. [7]  1.2295066  0.2366797 -0.3653828  1.1051443
  5. > set.seed(13)
  6. > rnorm(10)
  7. [1]  0.5543269 -0.2802719  1.7751634  0.1873201  1.1425261  0.4155261
  8. [7]  1.2295066  0.2366797 -0.3653828  1.1051443
  9. >

要得到相同的随机数,还得再“重写”一遍
set seed(123)
rnorm()

这样,每次得到的随机数就一样。

——————————————————————————————————

应用一:rep()和replicate()批量取随机数

来源公众号:砍柴问樵夫

问题:假设我想从符合正态分布的数据集中随机抽取2个数据,排序, 这样的数据我需要10对,你会怎么做?

很多人都会想到用rep()这个函数,我们来试试。

rep(sort(sample(rnorm(n=100,mean = 0,sd = 1),2)),10)

结果文件:

> rep(sort(sample(rnorm(n=100,mean = 0,sd = 1),2)),10)
 [1] 0.1188322 0.3224045 0.1188322 0.3224045 0.1188322 0.3224045 0.1188322
 [8] 0.3224045 0.1188322 0.3224045 0.1188322 0.3224045 0.1188322 0.3224045
[15] 0.1188322 0.3224045 0.1188322 0.3224045 0.1188322 0.3224045

很明显不符合我们的要求。

该怎么解决呢?

replicate()函数可以实现,具体如下:

replicate(n=10,expr=sort(sample(rnorm(n=100,mean = 0,sd = 1),2)))

结果文件:

            [,1]       [,2]      [,3]       [,4]      [,5]       [,6]
[1,] -0.72719296 -0.9876203 -2.212692 -0.8753055 0.2981434 -1.2255357
[2,] -0.02896154  0.9458406  1.511990  1.9813026 1.2695440 -0.2565482
            [,7]       [,8]       [,9]    [,10]
[1,] -0.21979065 -0.6226580 -0.2889041 0.566944
[2,]  0.09309426  0.4599596  0.5187426 1.602581

大家应该注意到:rep()返回的是向量,replicate()返回的是矩阵。

下面列出两个函数的用法:

rep():

rep(x, ...)

rep.int(x, times) #每个元素重复次数

rep_len(x, length.out) #生成向量长度

replicate(),replicate(n, expr, simplify = "array") #随机数生成器

R语言︱分布函数与概率密度+随机数产生的更多相关文章

  1. R语言中的四类统计分布函数

    R语言中提供了四类有关统计分布的函数(密度函数,累计分布函数,分位函数,随机数函数).分别在代表该分布的R函数前加上相应前缀获得(d,p,q,r).如: 1)正态分布的函数是norm,命令dnorm( ...

  2. [转]概率基础和R语言

    概率基础和R语言 R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据的爆发,R语 ...

  3. R语言与非参数统计(核密度估计)

    R语言与非参数统计(核密度估计) 核密度估计是在概率论中用来估计未知的密度函数,属于非参数检验方法之一,由Rosenblatt (1955)和Emanuel Parzen(1962)提出,又名Parz ...

  4. R语言实战(二)数据管理

    本文对应<R语言实战>第4章:基本数据管理:第5章:高级数据管理 创建新变量 #建议采用transform()函数 mydata <- transform(mydata, sumx ...

  5. 数据分析与R语言

    数据结构 创建向量和矩阵 函数c(), length(), mode(), rbind(), cbind() 求平均值,和,连乘,最值,方差,标准差 函数mean(), sum(), min(), m ...

  6. 数据分析R语言1

    数据分析R语言 无意中发现网上的一个数据分析R应用教程,看了几集感觉还不错,本文做一个学习笔记(知识点来源:视频内容+R实战+自己的理解),视频详细的信息请参考http://www.itao521.c ...

  7. R语言函数总结(转)

    R语言特征 对大小写敏感 通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母).不过,一个命名必须以 . 或者字母开头,并且如果以 . 开头,第二个字符不允许是数字. 基本命令要么是表达 ...

  8. R语言编程艺术(4)R对数据、文件、字符串以及图形的处理

    本文对应<R语言编程艺术> 第8章:数学运算与模拟: 第10章:输入与输出: 第11章:字符串操作: 第12章:绘图 =================================== ...

  9. 【R】R语言常用函数

    R语言常用函数 基本 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量character:字符型向量 list:列表 data.frame:数据框c:连接为向量或 ...

随机推荐

  1. PHP使用file_get_contents或curl请求https的域名内容为空或Http 505错误的问题排查方法

    前段日子,突然接到用户的反馈,说系统中原来的QQ登录.微博登录通通都不能用,跟踪代码进去后发现,是在 file_get_contents这个函数请求QQ登录的地方报错,在用该函数file_get_co ...

  2. phantomjs集成到scrapy中,并禁用图片,切换UA

    phantomjs是一个没有界面的浏览器,支持各种web标准,提供DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG,对于爬取一些经过js渲染的页面非常有用.但是phantomj ...

  3. MySQL系统临时表、用户临时表

    MySQL临时表分为系统使用的临时表和用户使用的临时表. 系统使用的临时表是指MySQL在执行某些SQL语句时需要依赖临时表来完成整个过程.系统使用的临时表的情况可以分为以下几种: *  group ...

  4. BZOJ 3624: [Apio2008]免费道路 [生成树 并查集]

    题意: 一张图0,1两种边,构造一个恰有k条0边的生成树 优先选择1边构造生成树,看看0边是否小于k 然后保留这些0边,补齐k条,再加1边一定能构成生成树 类似kruskal的证明 #include ...

  5. 全球(局)唯一标识符GUID的使用

    1.GUID百科介绍: 1.全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) .GUID是 ...

  6. AI 学习新的开始

    推荐入门学习 http://www.cnblogs.com/subconscious/p/6240151.html

  7. 用Android属性动画实现和演示迪士尼动画基本原则

    本文将介绍在Android平台上实现和演示迪士尼动画基本准则. 项目开源,GitHub: https://github.com/vhow/animation 说明: 演示动画原则的想法源自 Anima ...

  8. LeetCode - 657. Judge Route Circle

    Initially, there is a Robot at position (0, 0). Given a sequence of its moves, judge if this robot m ...

  9. nginx/php-fpm 访问php文件直接下载而不运行

    遇到这种问题,首先确认你web服务器配置中的.PHP是不是被指定给FastCGI server处理: location ~ .php$ { fastcgi_pass ; } 如已配置,那么可能是由于f ...

  10. python学习:字典排序

    按字典值排序   按照字典value排序,类似sort -k 命令   import operator x= {1:2,3:4,4:3,2:1,0:0} sorted_x = sorted(x.ite ...