【问题标题】:Calculate Mean and Variance of function output计算函数输出的均值和方差
【发布时间】:2021-12-19 01:38:57
【问题描述】:

我有以下输出 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)
  }

【问题讨论】:

  • 你可以使用meanvar
  • 不清楚你需要什么,Monj。你想要f2dfun 的平均值/var 吗?您希望均值和方差替换还是增加当前返回值?您希望输出的结构如何?

标签: r function random statistics poisson


【解决方案1】:

optimise 返回一个包含两个元素的命名列表,maximumobjectivedpois 的均值/方差 (lambda) 将是 maximum。让fun 只返回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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多