python 中的期望值

A. *_*her 1 python numpy scipy python-3.x

更新**

我正在努力返回预期值 E[x^2]。我已经创建了正常函数来对平均值 mu 和 sigma2 的正常值进行采样。我想使用这个函数生成正常值,然后将fun应用于每个值。我是否需要在循环中定义期望值,然后应用fun?我可以在为每个 x 找到 x^2 后取平均值吗?这是我一直在做的事情:

def fun(x):
    y=x**2
    return y

def EV(fun,n_samples,mu,sigma2):
        for i in range(1,n_samples):
Run Code Online (Sandbox Code Playgroud)

... u= np.random.uniform(0,1,1) ... output.append(float(y)) ... 返回输出

Bil*_*ell 5

您正在进行蒙特卡罗实验,估计正态分布随机数的平方的期望值。为此,您只需累加伪随机偏差的平方和,然后除以它们的数量。

>>> import random
>>> n_samples = 100
>>> sum_x_2 = 0
>>> for i in range(n_samples):
...     sum_x_2 += random.normalvariate(0,1)**2
...     
>>> estimate = sum_x_2 / n_samples
>>> estimate
1.045308497590742
Run Code Online (Sandbox Code Playgroud)

我使用了标准正态偏差。

在 Python 中执行此操作的另一种方法是使用尝试执行计算机代数的库。

>>> from sympy.stats import E, Normal
>>> Z = Normal('Z', 0, 1)
>>> E(Z**2)
1
Run Code Online (Sandbox Code Playgroud)

考虑到我允许的样本太少,蒙特卡洛的表现还不错。