计算函数输出的均值和方差
Calculate Mean and Variance of function output
我有以下输出 1000 个 MLE 的代码,如何计算输出的均值和方差并将其包含到函数中?
我希望输出是; f2d(5) = 均值和方差值
f2d = function(n){
fun = function(y){
optimise(
function(theta){ sum(dpois(y, theta, log = TRUE)) },
interval = c(0,50),
maximum = TRUE
)
}
# apply the function to each poisson sample
x = replicate(1000, rpois(n, 10))
apply(x, 2, fun)
}
optimise
return 是一个包含两个元素的命名列表,maximum
和 objective
。 dpois
的 mean/variance (lambda) 将是 maximum
。有 fun
return 只是 maximum
:
f2d <- function(n){
fun = function(y){
optimise(
function(theta){ sum(dpois(y, theta, log = TRUE)) },
interval = c(0,50),
maximum = TRUE
)$maximum
}
# apply the function to each poisson sample
x = replicate(1000, rpois(n, 10))
apply(x, 2, fun)
}
顺便说一句,由于 lambda 的 MLE 是观测值的平均值,泊松随机变量的总和也是泊松分布的,您可以将 f2d
替换为
f2d <- function(n) rpois(1e3, 10*n)/n
我有以下输出 1000 个 MLE 的代码,如何计算输出的均值和方差并将其包含到函数中? 我希望输出是; f2d(5) = 均值和方差值
f2d = function(n){
fun = function(y){
optimise(
function(theta){ sum(dpois(y, theta, log = TRUE)) },
interval = c(0,50),
maximum = TRUE
)
}
# apply the function to each poisson sample
x = replicate(1000, rpois(n, 10))
apply(x, 2, fun)
}
optimise
return 是一个包含两个元素的命名列表,maximum
和 objective
。 dpois
的 mean/variance (lambda) 将是 maximum
。有 fun
return 只是 maximum
:
f2d <- function(n){
fun = function(y){
optimise(
function(theta){ sum(dpois(y, theta, log = TRUE)) },
interval = c(0,50),
maximum = TRUE
)$maximum
}
# apply the function to each poisson sample
x = replicate(1000, rpois(n, 10))
apply(x, 2, fun)
}
顺便说一句,由于 lambda 的 MLE 是观测值的平均值,泊松随机变量的总和也是泊松分布的,您可以将 f2d
替换为
f2d <- function(n) rpois(1e3, 10*n)/n