我正在寻找任何脚本(最好是 Python)来计算一系列三维数据的二维正态分布函数。如果不存在,我将不胜感激有人可以提供的任何代码或伪代码。
输入将是一个三元组列表,如下所示
[[x1, y1, z1], [x2, y2, z2], [x3, y3, z3],..., [xn, yn, zn]]
我需要的是最接近表示数据的二维正态分布的平均值和标准差/方差,以便能够对其进行操作,然后再重新创建它。
例子
为了简单起见,我将推迟使用一维法线函数。如果我有以下二维数据点
[
[-4, 0.0001],
[-3, 0.0044],
[-2, 0.054 ],
[-1, 0.242 ],
[0 , 0.3989],
[1 , 0.242 ],
[2 , 0.054 ],
[3 , 0.0044],
[4 , 0.0001]
]
我希望脚本输出
mean = 0.0
standard deviation = 1.0
variance = 1.0
这样,例如,如果我想将标准偏差从 更改sd = 1.0
为sd = 2.0
,我可以修改曲线,重新创建它,对点进行采样-4...4
,然后像这样将值重写为数据。
[
[-4, 0.027 ],
[-3, 0.0648],
[-2, 0.121 ],
[-1, 0.176 ],
[0 , 0.1995],
[1 , 0.176 ],
[2 , 0.121 ],
[3 , 0.0648],
[4 , 0.027 ]
]
现在我的问题是:如何使用紧密代表二维正态分布的三维点列表来做到这一点?
我更喜欢在 Python 中执行此操作,或者调用 shell 脚本。但是,我不会反对使用像 MatLab 或 Maple 这样的程序。