原文链接:http://tecdat.cn/?p=11040

原文出处:拓端数据部落公众号

在这里,我将讨论哪些函数可用于处理正态分布:dnorm,pnorm,qnorm和rnorm。

R中的分布函数

有四个关联的函数, 四个正态分布函数是:

  • d范数:正态分布的密度函数
  • p范数:正态分布的累积密度函数
  • q范数:正态分布的分位数函数
  • r范数:从正态分布中随机抽样

概率密度函数:dnorm

概率密度函数(PDF,简称:密度)表示观察具有特定值的测量值的概率,因此密度上的积分始终为1。 XX,正常密度定义为

使用密度,可以确定事件的概率。例如,您可能想知道:一个人的IQ恰好为140的可能性是多少?。在这种情况下,您将需要检索IQ分布在值140处的密度。可以用100的平均值和15的标准差对IQ分布进行建模。相应的密度为:

sample.range <- 50:150
iq.mean <- 100
iq.sd <- 15
iq.dist <- dnorm(sample.range, mean = iq.mean, sd = iq.sd)
iq.df <- data.frame("IQ" = sample.range, "Density" = iq.dist)
library(ggplot2)
ggplot(iq.df, aes(x = IQ, y = Density)) + geom_point()

通过这些数据,我们现在可以回答初始问题以及其他问题:


# likelihood of IQ == 140?
pp(iq.df$Density[iq.df$IQ == 140])
## [1] "0.076%"
# likelihood of IQ >= 140?
## [1] "0.384%"
# likelihood of 50 < IQ <= 90?
## [1] "26.284%"

累积密度函数:pnorm

累积密度(CDF)函数是单调增加的函数,因为它通过

为了直观了解CDF,让我们为IQ数据创建一个图:


ggplot(iq.df, aes(x = IQ, y = CDF_LowerTail)) + geom_point()

如我们所见,所描绘的CDF显示了IQ小于或等于给定值的可能性。这是因为pnorm默认情况下计算低尾巴,即P[ X< = x ]P[X<=X]。利用这些知识,我们可以以略有不同的方式获得一些先前问题的答案:

# likelihood of 50 < IQ <= 90?
## [1] "25.249%"
# set lower.tail to FALSE to obtain P[X >= x]# Probability for IQ >= 140? same value as before using dnorm!
## [1] "0.383%"

请注意,pnorm的结果与手动汇总通过dnorm所获得的概率所得的结果相同。此外,通过设置lower.tail = FALSEdnorm可用于直接计算p值,该p值用于衡量观察值的可能性至少与获得的值一样高。

分位数功能:qnorm

分位数函数只是累积密度函数(iCDF)的反函数。因此,分位数函数从概率映射到值。让我们看一下分位数函数P[ X< = x ]P[X<=X]:

# input to qnorm is a vector of probabilitiesggplot(icdf.df, aes(x = Probability, y = IQ)) + geom_point()

使用分位数函数,我们可以回答与分位数有关的问题:

# what is the 25th IQ percentile?
## [1] 89.88265
# what is the 75 IQ percentile?
## [1] 110.1173
# note: this is the same results as from the quantile function
##        0%       25%       50%       75%      100%
##      -Inf  89.88265 100.00000 110.11735       Inf

随机采样函数:rnorm

当您想从正态分布中抽取随机样本时,可以使用rnorm。例如,我们可以rnorm用来模拟IQ分布中的随机样本。


# show one facet per random sample of a given size
ggplot() + geom_histogram(data = my.df, aes(x = IQ)) + facet_wrap(.~SampleSize, scales = "free_y")


ggplot(my.sample.df, aes(x = IQ)) + geom_histogram()

请注意,我们进行调用set.seed是为了确保随机数生成器始终生成相同的数字序列以实现可重复性。

拓端tecdat|在R语言中使用概率分布:dnorm,pnorm,qnorm和rnorm相关推荐

  1. R语言入门:正态分布中dnorm(),pnorm(),qnorm(),和rnorm()函数的使用

    dnorm():输入的是x轴上的数值,输出的是该点的概率密度 pnorm():输入的是x的z-score,输出的是面积,不带参数输出的是该点左边的面积,如果后面带lower.tail=F的参数,输出的 ...

  2. R语言中的广义线性模型(GLM)和广义相加模型(GAM):多元(平滑)回归分析保险资金投资组合信用风险敞口

    最近我们被客户要求撰写关于信用风险敞口的研究报告,包括一些图形和统计输出. 在之前的课堂上,我们已经看到了如何可视化多元回归模型(带有两个连续的解释变量).在此,目标是使用一些协变量(例如,驾驶员的年 ...

  3. 在r语言中使用GAM(广义相加模型)进行电力负荷时间序列分析

    广义相加模型(GAM:Generalized Additive Model),它模型公式如下:有p个自变量,其中X1与y是线性关系,其他变量与y是非线性关系,我们可以对每个变量与y拟合不同关系,对X2 ...

  4. 二次拟合r方_拟合R语言中的多项式回归

    原标题:拟合R语言中的多项式回归 让我们看一个经济学的例子:假设你想购买一定数量q的特定产品.如果单价是p,那么你会支付总金额y.这是一个线性关系的典型例子.总价格和数量成正比. 如下所示: 但购买和 ...

  5. 拓端tecdat|bilibili视频流量数据潜望镜

    最近我们被客户要求撰写关于bilibili视频流量的研究报告,包括一些图形和统计输出. 最新研究表明,中国有超过7亿人在观看在线视频内容.Bilibili,被称为哔哩哔哩或简称为B站,是中国大陆第二个 ...

  6. 技巧 | 在R语言中使用高德地图的API进行地理/逆地理编码(地址与经纬度的相互转换)...

    高德地图和百度地图都提供了坐标拾取系统,通过坐标查询或坐标反查操作可以查询一个地址对应的经纬度或经纬度对应的地址名称.但是,手动查询的方式效率很低,也不能进行批量查询. 本篇就来介绍在R语言中调用高德 ...

  7. r语言中检测异常值_R中的异常值检测

    r语言中检测异常值 介绍 (Introduction) An outlier is a value or an observation that is distant from other obser ...

  8. R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型

    全文下载链接:http://tecdat.cn/?p=20531 当线性假设无法满足时,可以考虑使用其他方法(点击文末"阅读原文"获取完整代码数据). 相关视频 多项式回归 扩展可 ...

  9. 用计算机怎么计算r角度,R语言中的数学计算

    原标题:R语言中的数学计算 前言 R是作为统计语言,生来就对数学有良好的支持,一个函数就能实现一种数学计算,所以用R语言做数学计算题特别方便.如果计算器中能嵌入R的计算函数,那么绝对是一种高科技产品. ...

  10. R语言中的数学计算(转载)

    R语言中的数学计算 关于作者: 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: http://blog.fens.me email: ...

最新文章

  1. nodejs实战案例(Express框架+mongoDB)——(1)——前言
  2. boost::spirit模块实现自定义karma计数器的测试程序
  3. js 对 URL 参数进行 加密 解密
  4. 第二章课后习题2-5
  5. MFC开发IM-第一篇
  6. python用程序说爱你_用python写一个聊天小程序!和女朋友的专属聊天工具!
  7. 2008服务器系统安装哪个版本好,Windows Server 2008和Windows Server 2008 R2哪个更好,其中可选的安装版本那个最高级,都有什么用?...
  8. python下载网页歌词_利用Python网络爬虫抓取网易云音乐歌词
  9. python pytz模块_python pytz
  10. ARP报文的存入条件和回复条件
  11. bing输入法linux,必应Bing输入法特殊符号输入方法图文教程
  12. jbox ajax,JBox演示30种不同的调用方法
  13. Vue key的作用
  14. 基于yolov5与改进VGGNet的车辆多标签实时识别算法
  15. 人工智能必看论文系列推荐(含神经网络,计算机视觉,AI,深度学习共计四十余篇)
  16. 富士康员工的逆袭之路,从月薪4K到现在月入1W+,是如何做到的?
  17. 开源一个微信+wap的建站系统
  18. [生而为人-思考] Knowledge Cooking -7th 分享会记录
  19. BMA250传感器驱动
  20. NVIDIA TX2安装CH340驱动

热门文章

  1. django 学习个人总结 之many_to_one
  2. HDOJ---2571 命运[DP]
  3. 使用Faker.NET仿造数据
  4. 【熵】熵,KL散度,交叉熵,最大熵模型
  5. 一、理解网络编程和套接字
  6. 企业级 SpringBoot 教程 (十三)springboot集成spring cache
  7. awstats 日志分析
  8. 算法学习--链表/Hash--LRU cache
  9. Oracle grant connect, resource to user语句中的权限
  10. CMPP3.0实现物联网卡通讯