原创在R语言中使用概率分布dnormpnormqnorm和rnorm 数据分析报告论文附代码数据文档格式.docx
- 文档编号:20403500
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:8
- 大小:171.34KB
原创在R语言中使用概率分布dnormpnormqnorm和rnorm 数据分析报告论文附代码数据文档格式.docx
《原创在R语言中使用概率分布dnormpnormqnorm和rnorm 数据分析报告论文附代码数据文档格式.docx》由会员分享,可在线阅读,更多相关《原创在R语言中使用概率分布dnormpnormqnorm和rnorm 数据分析报告论文附代码数据文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
∙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()
通过这些数据,我们现在可以回答初始问题以及其他问题:
pp<
-function(x){
print(paste0(round(x*100,3),"
%"
))
}
#likelihoodofIQ==140?
pp(iq.df$Density[iq.df$IQ==140])
##[1]"
0.076%"
#likelihoodofIQ>
=140?
pp(sum(iq.df$Density[iq.df$IQ>
=140]))
0.384%"
#likelihoodof50<
IQ<
=90?
pp(sum(iq.df$Density[iq.df$IQ<
=90]))
26.284%"
累积密度函数:
pnorm
累积密度(CDF)函数是单调增加的函数,因为它通过
为了直观了解CDF,让我们为IQ数据创建一个图:
cdf<
-pnorm(sample.range,iq.mean,iq.sd)
-cbind(iq.df,"
CDF_LowerTail"
=cdf)
ggplot(iq.df,aes(x=IQ,y=CDF_LowerTail))+geom_point()
如我们所见,所描绘的CDF显示了IQ小于或等于给定值的可能性。
这是因为pnorm默认情况下计算低尾巴,即P[
X<
=
x
]P[X<
=X]。
利用这些知识,我们可以以略有不同的方式获得一些先前问题的答案:
pp(iq.df$CDF_LowerTail[iq.df$IQ==90])
25.249%"
#setlower.tailtoFALSEtoobtainP[X>
=x]
-pnorm(sample.range,iq.mean,iq.sd,lower.tail=FALSE)
CDF_UpperTail"
#ProbabilityforIQ>
samevalueasbeforeusingdnorm!
pp(iq.df$CDF_UpperTail[iq.df$IQ==140])
0.383%"
请注意,pnorm的结果与手动汇总通过dnorm所获得的概率所得的结果相同。
此外,通过设置lower.tail=FALSE,dnorm可用于直接计算p值,该p值用于衡量观察值的可能性至少与获得的值一样高。
分位数功能:
qnorm
分位数函数只是累积密度函数(iCDF)的反函数。
因此,分位数函数从概率映射到值。
让我们看一下分位数函数P[
=X]:
#inputtoqnormisavectorofprobabilities
prob.range<
-seq(0,1,0.001)
icdf.df<
Probability"
=prob.range,"
=qnorm(prob.range,iq.mean,iq.sd))
ggplot(icdf.df,aes(x=Probability,y=IQ))+geom_point()
使用分位数函数,我们可以回答与分位数有关的问题:
#whatisthe25thIQpercentile?
print(icdf.df$IQ[icdf.df$Probability==0.25])
##[1]89.88265
#whatisthe75IQpercentile?
print(icdf.df$IQ[icdf.df$Probability==0.75])
##[1]110.1173
#note:
thisisthesameresultsasfromthequantilefunction
quantile(icdf.df$IQ)
##0%25%50%75%100%##-Inf89.88265100.00000110.11735Inf
随机采样函数:
rnorm
当您想从正态分布中抽取随机样本时,可以使用rnorm。
例如,我们可以rnorm用来模拟IQ分布中的随机样本。
#fixrandomseedforreproducibility
set.seed
(1)
#lawoflargenumbers:
meanwillapproachexpectedvalueforlargeN
n.samples<
-c(100,1000,10000)
my.df<
-do.call(rbind,lapply(n.samples,function(x)data.frame("
SampleSize"
=x,"
=rnorm(x,iq.mean,iq.sd))))
#showonefacetperrandomsampleofagivensize
ggplot()+geom_histogram(data=my.df,aes(x=IQ))+facet_wrap(.~SampleSize,scales="
free_y"
)
my.sample<
-sample(iq.df$IQ,100,prob=iq.df$Density,replace=TRUE)
my.sample.df<
=my.sample)
ggplot(my.sample.df,aes(x=IQ))+geom_histogram()
请注意,我们进行调用set.seed是为了确保随机数生成器始终生成相同的数字序列以实现可重复性。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 原创在R语言中使用概率分布dnormpnormqnorm和rnorm 数据分析报告论文附代码数据 原创 语言 使用 概率 分布 dnormpnormqnorm rnorm 数据 分析 报告 论文 代码
链接地址:https://www.bdocx.com/doc/20403500.html