首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >D范数(x,mean=200,sd=20)的积分不是1

D范数(x,mean=200,sd=20)的积分不是1
EN

Stack Overflow用户
提问于 2017-08-14 04:46:10
回答 2查看 2.3K关注 0票数 3

我试着计算正态分布密度的积分,期望值为200,标准差为20,从-Inf到Inf应该是1。

我得到了以下信息:

代码语言:javascript
复制
> integrate(dnorm, mean=200, sd=20,-Inf, Inf)$value
[1] 1.429508e-08

对于低于169的期望值,我得到了正确的值,1。对于更大的期望值,我如何获得正确的值?

EN

回答 2

Stack Overflow用户

发布于 2017-08-14 04:57:20

另一个选择

代码语言:javascript
复制
integrate(dnorm, mean=200, sd=20, lower= -Inf, upper= Inf, abs.tol = 0)$value
[1] 1

参见here

要查看发生了什么,请注意以下内容中的细分数量:

代码语言:javascript
复制
js <- integrate(dnorm, mean=200, sd=20, lower = -Inf, upper = Inf)
as <- integrate(dnorm, mean=200, sd=20, lower = -1e4, upper = 1e4)
cj <- integrate(dnorm, mean=200, sd=20, lower = -Inf, upper = Inf, abs.tol = 0)

str(js)
List of 5
 $ value       : num 1.43e-08
 $ abs.error   : num 2.77e-08
 $ subdivisions: int 2
 $ message     : chr "OK"
 $ call        : language integrate(f = dnorm, lower = -Inf, upper = Inf, mean = 200, sd = 20)
 - attr(*, "class")= chr "integrate"

str(as)
List of 5
 $ value       : num 1
 $ abs.error   : num 2e-07
 $ subdivisions: int 9
 $ message     : chr "OK"
 $ call        : language integrate(f = dnorm, lower = -10000, upper = 10000, mean = 200,      sd = 20)
 - attr(*, "class")= chr "integrate"

str(cj)
List of 5
 $ value       : num 1
 $ abs.error   : num 9.37e-05
 $ subdivisions: int 12
 $ message     : chr "OK"
 $ call        : language integrate(f = dnorm, lower = -Inf, upper = Inf, mean = 200, sd = 20,      abs.tol = 0)
 - attr(*, "class")= chr "integrate"
票数 5
EN

Stack Overflow用户

发布于 2017-08-14 04:50:54

设置间隔有限似乎有帮助

代码语言:javascript
复制
integrate(dnorm, mean=200, sd=20, -1e4, 1e4)
# 1 with absolute error < 2e-07
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45664762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档