在Matlab中定义一个特定的概率分布对象
我试图在Matlab中创建一个特定的分布来进行采样。我想对一些分布为ARG(自回归Gamma)的进程进行建模 如果过程v的形式为v~Gamma(A+zt,c),则称其为ARG(A,b,c) 式中zt,~Poisson(bvt-1/c) 参数a、b、c分别对应于自由度、串行相关性度量和尺度参数 我知道MATLAB内置了泊松分布和伽马分布,但我不确定如何创建包含这两种分布的自定义分布函数 我想创建一个函数,用于从遵循ARG动态的进程中进行采样。例如,MATLAb具有在Matlab中定义一个特定的概率分布对象,matlab,probability,distribution,Matlab,Probability,Distribution,我试图在Matlab中创建一个特定的分布来进行采样。我想对一些分布为ARG(自回归Gamma)的进程进行建模 如果过程v的形式为v~Gamma(A+zt,c),则称其为ARG(A,b,c) 式中zt,~Poisson(bvt-1/c) 参数a、b、c分别对应于自由度、串行相关性度量和尺度参数 我知道MATLAB内置了泊松分布和伽马分布,但我不确定如何创建包含这两种分布的自定义分布函数 我想创建一个函数,用于从遵循ARG动态的进程中进行采样。例如,MATLAb具有 R = mvnrnd(MU,SI
R = mvnrnd(MU,SIGMA)
从正态分布生成随机数。如何为ARG创建类似的内容
编辑:
尝试的实现:
function [v] = ARG(a, b, c, startval )
%a = delta
%b = rho
%c = (1-rho)*(1-gamma^2)/delta
v_lag = startval
z = poissrnd(b*v_lag / c)
v = gamrnd(a + z, c)
只需使用适当的输入调用
poissrnd
,并将结果用作参数zt
,从中计算出对gammard
的第一个输入,请参见我的编辑。这就是你的意思吗?然后我想我可以循环函数N次,以得到所需的样本误差向量。是的,这就是我的意思。不需要循环;您可以指定所需的大小作为输入参数,是的,这是一个更好的解决方案,感谢您帮助我使用合适的输入调用poissrnd
,并将结果用作参数zt
,从中计算gammarnd
的第一个输入。请参阅我的编辑。这就是你的意思吗?然后我想我可以循环函数N次,以得到所需的样本误差向量。是的,这就是我的意思。不需要循环;您可以指定所需的大小作为输入参数,是的,这是一个更好的解决方案,谢谢您的帮助