-- title: R语言中dnorm, pnorm, qnorm与rnorm以及随机数 date: 2018-09-07 12:02:00 type: "tags" tags: 在R语言中,与正态分布(或者说其它分布)有关的函数有四个,分别为dnorm,pnorm,qnorm和rnorm,其中,dnorm表示密度函数,pnorm表示分布函数,qnorm表示分位数函数,rnorm表示生成随机数的函数。在R中与之类似的函数还有很多,具体的可以通过 help(Distributions) 命令去查看,对于分位数或百分位数的一些介绍可以看这篇笔记 《分位数及其应用》 ,关于正态分布的知识可以看这篇笔记 《正态分布笔记》 。 现在这篇笔记就介绍一下这些函数的区别。 R提供了多种随机数生成器(random number generators, RNG),默认采用的是Mersenne twister方法产生的随机数,该方法是由Makoto Matsumoto和Takuji Nishimura于1997年提出来的,其循环周期是 。R里面还提供了了Wichmann-Hill、Marsaglia-Multicarry、Super-Duper、Knuth-TAOCP-2002、Knuth-TAOCP和L'Ecuyer-CMRG等几种随机数生成方法,可以通过 RNGkind() 函数进行更改,例如,如果要改为WIchmann-Hill方法,就使用如下语句: 在R中使用随机数函数,例如 rnorm() 函数来生成的随机数是不一样的,有时我们在做模拟时,为了比较不同的方法,就需要生成的随机数都一样,即重复生成相同的随机数,此时就可以使用 set.seed() 来设置随机数种子,其参数为整数,如下所示:dnorm 中的 d 表示 density , norm 表示正态贫,这个函数是正态分布的 概率密度(probability density)函数 。 正态分布的公式如下所示:给定x,μ和σ后, dnorm() 这个函数返回的就是会返回上面的这个公式的值,这个值就是Z-score,如果是标准正态分布,那么上述的公式就变成了这个样子,如下所示:现在看一个案例,如下所示:dnorm(0,mean=0,sd=1) 由于是标准正态分布函数的概率密度,这个命令其实可以直接写为 dnorm(0) 即可,如下所示: 再看一个非标准正态分布的案例,如下所示: 虽然在 dnorm() 中,x是一个概率密度函数(PDF,Probability Density Function)的独立变量,但它也能看作是一组经过Z转换后的一组变量,现在我们看一下使用 dnorm 来绘制一个正态分布的概率密度函数曲线,如下所示: 现在使用 dnorm() 函数计算一下Z_scores的概率密度,如下所示: 现在绘图,如下所示: 从上面的结果可以看出,在每个Z-score处, dnorm 可以绘制出这个Z-score对应的正态分布的pdf的高度。pnorm 函数中的 p 表示Probability,它的功能是,在正态分布的PDF曲线上,返回从负无穷到 q 的积分,其中这个 q 指的是一个Z-score。现在我们大概就可以猜测出 pnorm(0) 的值是0.5,因为在标准正态分布曲线上,当Z-score等于0时,这个点正好在标准正态分布曲线的正中间,那么从负无穷到0之间的曲线面积就是整个标准正态分布曲线下面积的一半,如下所示:pnorm 函数还能使用 lower.tail 参数,如果 lower.tail 设置为 FALSE ,那么 pnorm() 函数返回的积分就是从 q 到正无穷区间的PDF下的曲线面积,因此我们就知道了, pnorm(q) 与 1-pnorm(q,lower.tail=FALSE) 的结果是一样的,如下所示: 在计算机出现之前的时代里,统计学家们使用正态分布进行统计时,通常是要查正态分布表的,但是,在计算机时代,通常都不使用正态分布表了,在R中, pnorm() 这个函数完全可以取代正态分布表了,现在我们使用一个Z-scores的向量来计算一下相应的累积概率,如下所示: 以上就是标准正态分布的 累积分布函数(CDF,Cumulative Distribution Function) 曲线。 简单来说, qnorm 是正态分布 累积分布函数(CDF,Cumulative Distribution Function) 的反函数,也就是说它可以视为 pnorm 的反函数,这里的 q 指的是quantile,即分位数。 使用 qnorm 这个函数可以回答这个问题:正态分布中的第p个分位数的Z-score是多少? 现在我们来计算一下,在正态分布分布中,第50百分位数的Z-score是多少,如下所示: 再来看一个案例:在正态分布中,第96个百分位的Z-score是多少,如下所示: 再来看一个案例:在正态分布中,第99个百分位的Z-score是多少,如下所示: 再来看一下 pnorm() 这个函数,如下所示: 从上面我们可以看到, pnorm 这个函数的功能是,我们知道某个Z-score是多少,它位于哪个分位数上。 接着我们进一步举例来说明一下 qnorm 和 pnorm 的具体功能,如下所示: 现在进行绘图,如下所示:rnomr() 函数的功能用于生成一组符合正态分布的随机数,在学习各种统计学方法时, rnorm 这个函数应该是最常用的,它的参数有 n , mean , sd ,其中n表示生成的随机数,mean与sd分别表示正态分布的均值与标准差,现在举个例子,如下所示: 现在我们绘制一下上面的几个向量的直方图,看一下它们的均值是否在70附近,如下所示: 在R语言中,生成不同分布的各种类型的函数都是以d,p,q,r开头的,使用原理跟上面的正态分布都一样。sample() 函数是一个用于生成随机数的重要的核心函数,如果仅传递一个数值n给它,就会返回一个从1到n的自然数的排列,如果传递是 n:m 就是生成从n到m的随机数,如是是 7,5 ,则会生成5个小于7的随机数,如下所示: 从上面的结果可以看出来,这些数字都是不同的,也就是说,sample函数默认情况下是不重复抽样,每个值只出现一次,如果允许有重复抽样,需要添加参数 replace = TRUE ,如下所示: sample函数通常会从某些向量中随机挑一些参数,如下所示: 也可以挑日期,如下所示: 上述分布函数前面加上r,p、q、d就可以表示相应的目的:rnorm(n, mean = 0, sd = 1)n 为产生随机值个数(长度),mean 是平均数, sd 是标准差 。使用该函数的时候后,一般要赋予它 3个值.rnorm() 函数会随机正态分布,然后随机抽样 或者取值 n 次,>rnorm(5,0,1) 以N(0,1)的正态分布,分别列出5个值。r 这列代表随机,可以替换成dnorm, pnorm, qnorm 作不同计算r = random = 随机, d= density = 密度, p= probability = 概率 , q =quantile = 分位
R语言中dnorm, pnorm, qnorm与rnorm以及随机数
给您推荐相同类型的内容:
c语言指令有哪些啊
第一章:绪论?内核版本号格式:x.y.zz-www/x为主版本号,y为次版本号,zz为次次版本号,www为发行号/次版本号改变说明内核有重大变革,其偶数为稳定版本,奇数为尚在开发中的版本 第二章:基础?文件种类:-:txt,二进制/d:目录jquery 怎么用
使用步骤如下:1.jQuery给放到一个文件夹里面,方便我们待会引用这个jQuery,这里我就放到我项目的js文件夹里面。2.然后我们来开始编辑HTML界面代码。3.使用script标签把jQuery引入到我们的HTML界面。src引号里面大旺唯品会正式员工待遇
大旺唯品会正式员工待遇如下。1、数据分析师工资待遇为每月25000元加年终奖2000元。2、java工资待遇为每月10000加终奖2000元。3、仓储专员工资待遇为每月6000。4、android软件开发工程师工资待遇工资待遇为每月2111java中Js验证日期的正则表达式格式为:yyyyMMdd
var result=data.match(((^((1[8-9]d{2})|([2-9]d{3}))()(10|12|0?[13578])()(3[01]|[12][0-9]|0?[1-9])$)|(^((1[8-9]d{怎么将CSS或DODS的人物模型注入GMOD
css和dods的人物模型在g13里都是自带的,虽然质量不是很高。所有的人物模型等都在css和dods模块内,如果装模块有橙盒和非橙盒,这里就不细讲了。如果单纯只是要人物模型,直接就可以去网上搜css和dods的人物模型。然后以素材的方式导11在js的意思
js11是公差,表示上偏差为+0.0545,下偏差为-0.0545。js—公差带代号;11—公差等级,为IT11。机械图纸尺寸标注:完整的尺寸应包括尺寸数字、尺寸线、尺寸界线和表示尺寸线终端的箭头或斜线。由于基本偏差J与JS的偏差非常接近,r语言如何绘制带标准误的线性关系图
r语言绘制带标准误的线性关系图1.打开文件,输入几组具有线性关系的数据。2.用鼠标选中这些数据,点击菜单栏中的“插入”选项。3.在插入菜单中,选择一种散点图。4.右击图表中的散点,在其右键菜单中点击“添加趋势线”选项。5.在出来的页面中,选js原型和原型链的理解是什么?
讲原型和原型链,如果是讲定义,那很是晦涩难懂,今天我们就通俗易懂的说说原型与原型链。还需要借助阮老师的“Javascript继承机制的设计思想”。1,比如我们还要针对学生统计每个人的总分是多少,我们改造构造函数Person,构造函数上有个用css怎么设置div滚动条的样式,可改变大小的
在css设置可改变大小的div滚动条样式方法:1.首先新建html文档,进入代码书写界面。2.在<head>和<body>的里面写入代码,在<div>里面写入想要输请问如何用Python turtle画一个多角星?
一般是要靠算角度的import turtleimport timeturtle.forward(100)turtle.right(144)time.sleep(1)turtle.forward(100)turtle.right(144)tipython集合的运算(交集、并集、差集、补集)
我们在遇到一些问题的时候,使用集合的交集、并集和差集能够更便捷的帮助我们去解决问题,看下面一个例子。 某学校有两个班级,班级A需要学习数学、语文、英语、物理、化学和生物,班级B需要学习数学、语文、英语、政治、地理和历史。 我们可以直CSS 怎么设置价格文字 比如 99.23 前面99大字体、后面.23小点,怎么解决!
<style type="textcss">body {font-size:18px}small {font-size:14px}--><style>&am关于html,我在css里通过background引入一张图片,但是无论怎么设置,宽高都为0,要怎么解决?
a标签和span标签默认都是行内元素,如果里面的内容为空(指实际内容如文字和图片为空,即使里面包含了空的行内元素也是不算作实际内容的,此外背景图片也不是实际内容),则它的宽高始终是保持为0的,不管怎么设置都是不行的(你可以试着在span内加如何利用JavaScript调整盒子大小使盒子适应浏览器大小
如果是顶层(父层标签是<body>),也就是不嵌套到其他标签,直接设置style为:position:absoluteleft:50pxright:50px也可以不设置position,设置margin-left:5css是什么意思
css是层叠样式表。层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以轻松压缩JS文件
在任意文件夹下按住shift按键的同时,点击鼠标右键 打开powershell命令窗口 执行命令: npm install uglify-js -g 首先,打开cmd 其次,查找要压缩的js文件,查找方法如下: 1、输入java 程序中调用bat文件的方法代码?
import java.io.BufferedReaderimport java.io.InputStreamReaderpublic class RunBat {public static void main(String[] argjs正则表达式匹配英文字母跟数字的要怎么写
你好,首先问题描述其实不是很清楚,我分情况给题主作答。 测试字符串var str = 'Adobe InDesign、Microsoft Word 等对中文与西文(这里用「西文」来泛指用空格分词的外文)混合排版支持较好的软件一化儿杰哥怎么样
好。1、授课方面。一化儿杰哥的授课知识点清晰明了,而其他的授课教师略微模糊。2、工作时长方面。一化儿杰哥相比于其他的教师,工作的时长更长,其已经在该平台工作了6年的时间,而其他的教师只有3年左右的时间,所以一化儿杰哥是该平台最好的一位教师。css中兄弟选择器的概念、连接符及用法
1、CSS兄弟相邻选择器加号相邻兄弟选择器使用了加号(+),即相邻兄弟结合符(Adjacent sibling combinator)。注释:与子结合符一样,相邻兄弟结合符旁边可以有空白符。CSS兄弟相邻选择器加号,举例说明HTMLjs如何实现页面跳转
点击小图片就在新窗口中打开大图片,是这个要求吗:<a href=大图地址 target=_blank><img src=小图片地址 ><a>1、改变当前页面的urlJS48S-S是什么
型号:JS48S-S 双设定数显时间继电器 JS48S-S双设定数显时间继电器 延时精度:≤0.3%±0.05S 5060Hz显示方式:0.3英寸LED字高7.6mm 设定方式:任意设定不对称延时时间 计时方式:加注“D”为倒计时,不Java如何与C进行通信
两个不同进程之间的数据交互:1、可以选择socket通信2、可以选择文件,不过要注意好读写3、消息传递,在windows下抛出一个消息具体怎么做我没试过,只知道有这方法4、数据库这个比较容易实现上面说的两个不同进程,当然就是可以选择autojs脚本一键打开微信扫一扫
toast("微信扫一扫Tanghui")本脚本在魅蓝 6上实测有效 正常运行。根据机型不同,代码 也需要做出适当调整 并且打包成APP安装后使用最好了 虽然有提示什么32位的【前端面试:手写js系列】flat---数组扁平化
数组扁平化定义:在前端项目开发过程中,偶尔会出现层叠数据结构的数组,需要把多层数组转换为一级数组(即提取嵌套数组元素最终合并为一个数组),使其内容合并并且展开。 遍历数组的方案: for循环 for...of for...C语言中的枚举类型有什么用么?
枚举类型就相当于助记符,帮助程序员记忆的。比如现在要画一张地图,用到红黄蓝绿四种颜色。为了存储方便,我们规定0=红,1=黄,2=蓝,3=绿。但是当编程到某一阶段时,程序员可能忘记了哪个数字具体对应哪种颜色,或者忘记了到底有多少个数字,这时他怎么设置css,把放在一个div中的图片横着排列
1、新建一个html文件,命名为test.html,用于讲解。2、在test.html文件内,创建一个div模块,并设置其class属性为mydiv。3、在div模块内,使用img图片标签创建两张图片,src属性指向不同的图片路径。4、在cjs正则 获取元素属性值
一、获取img标签的src属性值var imgStr = "<p><img src='http:www.baidu.comFpmF-JifNksQTHo7InP_LMukr语言求平均值
1.导入数据install.packages('xslx')library(xlsx)Sys.setlocale("LC_ALL", "zh_cn.utf-8")a=read.xlc语言入门自学书籍都有哪些?
链接:提取码: y42j《C语言基础》深入浅出地介绍了C语言程序设计的基础知识,内容涉及C语言基础、算法基础、变量、数据类型、运算符、输入输出相关函数、选择结构、循环结构、各种表达式、数组、字符串、指针、函数、结构体、ISO C99的扩