如何在R中找到离散随机变量X的E(X ^ n)?

问题描述 投票:1回答:1

假设给出离散随机变量X,randomNumbers及其分布prob的值。

我可以使用以下代码找到E(X):

weighted.mean(randomNumbers, prob)

我们怎样才能在R中找到E(X ^ n)?

这段代码有用吗?

weighted.mean(randomNumbers^n, prob)
r statistics probability weighted-average
1个回答
3
投票

以泊松随机变量X ~ Poisson(2)为例。

概率方法

f1 <- function (N) {
  x <- 0:N
  p <- dpois(x, 2)
  ## approximate E[X]
  m1 <- weighted.mean(x, p)
  ## approximate E[X ^ 2]
  m2 <- weighted.mean(x ^ 2, p)
  ## approximate E[X ^ 3]
  m3 <- weighted.mean(x ^ 3, p)
  ## return
  c(m1, m2, m3)
  }

随着N变大,近似变得越来越准确,因为序列在分析上收敛。

N <- seq(10, 200, 10)
m123_prob <- t(sapply(N, f1))
matplot(m123_prob, type = "l", lty = 1)

统计方法(基于抽样的方法)

f2 <- function (sample_size) {
  x <- rpois(sample_size, 2)
  ## unbiased estimate of E[x]
  m1 <- mean(x)
  ## unbiased estimate of E[x ^ 2]
  m2 <- mean(x ^ 2)
  ## unbiased estimate of E[x ^ 3]
  m3 <- mean(x ^ 3)
  ## return
  c(m1, m2, m3)
  }

随着sample_size的增长,估计越来越准确,因为序列在概率上收敛。

sample_size <- seq(10, 200, 10)
m123_stat <- t(sapply(sample_size, f2))
matplot(m123_stat, type = "l", lty = 1)
© www.soinside.com 2019 - 2024. All rights reserved.