R dnorm 结果在标准化值和非标准化值之间不同
R dnorm result different between standardized and unstandardized values
我 运行 在使用标准化值与非标准化值计算 R
中的正态分布密度时陷入混乱:
ds <- function(x, mu, var) {dnorm(x, mean = mu, sd = sqrt(var))}
ds1 <- function(x, mu, var) {dnorm((x-mu)/sqrt(var), mean = 0, sd = 1)}
这两个应该给出相同的结果。然而,他们没有:
> ds(0, 1, 2)
[1] 0.2196956
> ds1(0, 1, 2)
[1] 0.3106966
看来可能是因为sqrt
和dnorm
的数值不同造成的,因为如果我设置var = 1
,那么结果是一样的:
> ds(0, 1, 1)
[1] 0.2419707
> ds1(0, 1, 1)
[1] 0.2419707
> ds1(0, 1, 1.001)
[1] 0.2420916
> ds(0, 1, 1.001)
[1] 0.2419707
谁能指出这是什么原因?
在ds1
中,您忘记了1/sqrt(var)
项:
ds1 <- function(x, mu, var) {dnorm((x-mu)/sqrt(var), mean = 0, sd = 1)/sqrt(var)}
> ds(1,2,3)
[1] 0.1949697
> ds1(1,2,3)
[1] 0.1949697
我 运行 在使用标准化值与非标准化值计算 R
中的正态分布密度时陷入混乱:
ds <- function(x, mu, var) {dnorm(x, mean = mu, sd = sqrt(var))}
ds1 <- function(x, mu, var) {dnorm((x-mu)/sqrt(var), mean = 0, sd = 1)}
这两个应该给出相同的结果。然而,他们没有:
> ds(0, 1, 2)
[1] 0.2196956
> ds1(0, 1, 2)
[1] 0.3106966
看来可能是因为sqrt
和dnorm
的数值不同造成的,因为如果我设置var = 1
,那么结果是一样的:
> ds(0, 1, 1)
[1] 0.2419707
> ds1(0, 1, 1)
[1] 0.2419707
> ds1(0, 1, 1.001)
[1] 0.2420916
> ds(0, 1, 1.001)
[1] 0.2419707
谁能指出这是什么原因?
在ds1
中,您忘记了1/sqrt(var)
项:
ds1 <- function(x, mu, var) {dnorm((x-mu)/sqrt(var), mean = 0, sd = 1)/sqrt(var)}
> ds(1,2,3)
[1] 0.1949697
> ds1(1,2,3)
[1] 0.1949697