没有项目描述
mecm的Python项目详细描述
mecm
==
mecm python包提供了q.baghi等人开发的改进期望最大化算法的实现,可在
https://arxiv.org/abs/1608.08530
它基于一种接近于期望最大化的算法,该算法通过利用快速傅立叶变换、快速矩阵到向量乘法、以及以及稀疏线性代数。
让我们考虑一个可以用
格式编写的数据模型。数学:
y=a\beta+n
,其中:
*y是均匀采样的测量时间序列数据(大小n)。
*a是设计矩阵(大小n x k)
*beta是要估计的参数向量(大小k)
*n是噪声向量,假设在给定平滑谱密度s(f)
的情况下遵循高斯平稳分布,现在假设只观察到向量y的一些项。观察到的和丢失的数据的指数是由一个二元掩模向量m提供的,当观察到数据时,它的项
等于1,否则等于0。
所以实际上我们只观察到一个向量y,这样
代码块:
y碜obs=y[m==1]
a和m。
线性平滑器。
*conditionalDraw:一个函数,根据观测数据有条件地计算缺失数据的条件期望值,假设是高斯平稳模型。
安装之前,请确保已安装了以下python包:
-
*numpy:http://www.numpy.org/
*scipy:https://www.scipy.org/
*pyfftw:https://pypi.python.org/pypi/pyfftw
*cvxopt:http://cvxopt.org/
*numba:https://numba.pydata.org/
然后打开一个终端(或在windows上执行一个命令),并使用以下命令::
安装
许可证
----
请参见"许可证文件<;https://github.com/porlopoff/mecm/blob/master/license.txt>;`
《快速入门指南》
----
mecm基本上可用于执行任何多线性回归分析,其中
噪声的分布假定为高斯分布且在
广义上是平稳的,使用平滑的功率谱密度(psd)。
数据生成
首先,我们生成一些包含噪声和信号的简单时间序列。
要生成噪声,我们从一个白色的零均值高斯噪声开始,然后对其进行滤波,得到一个平稳的有色噪声:
。代码块:
大小=n)应用滤波将其转换为有色噪声
r=0.01
b,a=信号。黄油(3,0.1/0.5,bType='High',模拟=假)n=信号。lfilter(b,a,noise,axis=-1,zi=none)+noise*r
然后我们需要一个确定的信号来添加。我们选择一个频率f0和振幅a0分别为
代码块:
t=np.arange(0,n)
f0=1e-2
a0=5e-3
s=a0*np.s in(2*np.pi*f0*t)
数学:
y=a\beta+n
代码块:
m=np.ones(n)
ngaps=30
gapstarts=(n*np.random.random(ngaps)).astype(int)
gaplength=10
gapends=(gapstarts+gaplength).astype(int)
for k in range(ngaps):m[gapstarts[k]:gapends[k]=0
版本,M*Y.
2.线性回归
现在假设我们观察到m*y,我们希望估计频率和相位已知的正弦波的振幅
,以及
噪声残差的psd。
可用数据是
代码块:
y=m*(s+n)
我们必须通过:
指定设计矩阵(即数据模型)。代码块:
a=np.array([np.sin(2*np.pi*f0*t)).t
>然后我们可以运行mecm最大似然估计,方法是写入:
……代码块:
估计的完整数据向量,数据周期图的条件
期望(在傅里叶频率下),以及
psd_估计类的一个实例。
documentation
----
https://github.com/porlopoff/mecm/blob/master/docs/build/html/index.html>;`
contribution
----
mecm是一款开源软件。欢迎大家贡献!
请将原始论文放在科学论文中:
https://arxiv.org/abs/1608.08530
==
mecm python包提供了q.baghi等人开发的改进期望最大化算法的实现,可在
https://arxiv.org/abs/1608.08530
它基于一种接近于期望最大化的算法,该算法通过利用快速傅立叶变换、快速矩阵到向量乘法、以及以及稀疏线性代数。
让我们考虑一个可以用
格式编写的数据模型。数学:
y=a\beta+n
,其中:
*y是均匀采样的测量时间序列数据(大小n)。
*a是设计矩阵(大小n x k)
*beta是要估计的参数向量(大小k)
*n是噪声向量,假设在给定平滑谱密度s(f)
的情况下遵循高斯平稳分布,现在假设只观察到向量y的一些项。观察到的和丢失的数据的指数是由一个二元掩模向量m提供的,当观察到数据时,它的项
等于1,否则等于0。
所以实际上我们只观察到一个向量y,这样
代码块:
y碜obs=y[m==1]
线性平滑器。
*conditionalDraw:一个函数,根据观测数据有条件地计算缺失数据的条件期望值,假设是高斯平稳模型。
安装之前,请确保已安装了以下python包:
-
*numpy:http://www.numpy.org/
*scipy:https://www.scipy.org/
*pyfftw:https://pypi.python.org/pypi/pyfftw
*cvxopt:http://cvxopt.org/
*numba:https://numba.pydata.org/
然后打开一个终端(或在windows上执行一个命令),并使用以下命令::
安装
许可证
----
请参见"许可证文件<;https://github.com/porlopoff/mecm/blob/master/license.txt>;`
《快速入门指南》
----
mecm基本上可用于执行任何多线性回归分析,其中
噪声的分布假定为高斯分布且在
广义上是平稳的,使用平滑的功率谱密度(psd)。
数据生成
首先,我们生成一些包含噪声和信号的简单时间序列。
要生成噪声,我们从一个白色的零均值高斯噪声开始,然后对其进行滤波,得到一个平稳的有色噪声:
。代码块:
大小=n)应用滤波将其转换为有色噪声
r=0.01
b,a=信号。黄油(3,0.1/0.5,bType='High',模拟=假)n=信号。lfilter(b,a,noise,axis=-1,zi=none)+noise*r
然后我们需要一个确定的信号来添加。我们选择一个频率f0和振幅a0分别为
代码块:
t=np.arange(0,n)
f0=1e-2
a0=5e-3
s=a0*np.s in(2*np.pi*f0*t)
数学:
y=a\beta+n
代码块:
m=np.ones(n)
ngaps=30
gapstarts=(n*np.random.random(ngaps)).astype(int)
gaplength=10
gapends=(gapstarts+gaplength).astype(int)
for k in range(ngaps):m[gapstarts[k]:gapends[k]=0
版本,M*Y.
2.线性回归
现在假设我们观察到m*y,我们希望估计频率和相位已知的正弦波的振幅
,以及
噪声残差的psd。
可用数据是
代码块:
y=m*(s+n)
我们必须通过:
指定设计矩阵(即数据模型)。代码块:
a=np.array([np.sin(2*np.pi*f0*t)).t
>然后我们可以运行mecm最大似然估计,方法是写入:
……代码块:
估计的完整数据向量,数据周期图的条件
期望(在傅里叶频率下),以及
psd_估计类的一个实例。
documentation
----
https://github.com/porlopoff/mecm/blob/master/docs/build/html/index.html>;`
contribution
----
mecm是一款开源软件。欢迎大家贡献!
请将原始论文放在科学论文中:
https://arxiv.org/abs/1608.08530