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. 一个简单的node.js服务

    var http = require('http'); var qs = require('querystring'); var server = http.createServer(function ...

  2. oracle用户、权限操作

    oracle用户操作,权限操作: 1.创建用户,并让用户默认表空间为tb1: create user 用户名 identified by 密码 default namespace tb1 2.授权: ...

  3. Windows实用命令

     Windows实用命令   # 统计ESTABLISHED状态下的连接一共有多少个/c是统计行数,/i是忽略大小写 netstat -ano|find /i "established&qu ...

  4. CF 375D. Tree and Queries【莫队 | dsu on tree】

    题意: 一棵树,询问一个子树内出现次数$≥k$的颜色有几种 强制在线见上一道 用莫队不知道比分块高到哪里去了,超好写不用调7倍速度!!! 可以用分块维护出现次数这个权值,实现$O(1)-O(\sqrt ...

  5. 百度地图api 区级以下行政区划

    我们在使用百度地图api想要展示苏州市吴中区各乡镇的行政区范围: 百度api有提供了“添加行政区划”的示例:http://lbsyun.baidu.com/jsdemo.htm#c1_10 但该功能目 ...

  6. Zabbix的网络发现

      Zabbix的网络发现 Zabbix的网络发现功能,可以让我们发现网络中的主机或者服务,并在发现该设备后做出相应的操作; 它可以用HTTP.ICMP.SSH.LDAP.TCP.SNMP.Telne ...

  7. SQL Server 页面查询超时(SOS_SCHEDULER_YIELD等待)

    一.问题概述 问题大概是这样的,有一个功能页面经常查询超时,有时候就算能查询出来也要很长的时间,但是有时又会很快.遇到的这种问题在排除掉网络原因之后基本上可以从查询语句上去找原因. 编译查询SQL语句 ...

  8. 将html table 转成 excel

    package com.sun.office.excel; /** * 跨行元素元数据 * */ public class CrossRangeCellMeta { public CrossRange ...

  9. MYSQL EXPLAIN执行计划命令详解(支持更新中)

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 本篇是根据官网中的每个一点来翻译.举例.验证的:英语不好,所 ...

  10. 查看Zookeeper服务器状态信息的一些命令

    1.Zookeeper服务器当前节点配置信息: echo conf|nc localhost 2181 2.cons:echo cons|nc localhost 2181 输出当前服务器所有客户端连 ...