首先要做的事情:您在这里遇到的似乎不是编程问题,而是计量经济学问题。因此,它可能更适合Cross Validated。如果是这种情况,那么版主可能会选择将您的问题(和此答案)迁移到那里。
说了这么多,我想我仍然可以在这里提供答案。
您似乎正在处理时间序列回归,其中涉及 - 如果我的首字母缩写词猜测技巧是正确的 - 已实现的波动性或已实现的方差。您的回归量是 RV_{t+1},回归量是 RV_{t},RV_{t-1} 到 RV_{t-5} 的线性组合和 RV_{t-1} 到 RV_{t 的线性组合-30}。
鉴于您的回归数集包含回归量的滞后,我猜有人告诉您查看 AR(p) 模型,这就是问题开始的地方:-) 当然,这是解决这个问题的一种方法,但我个人认为这是错误的方式。为什么?因为您滞后到 t-30,所以您正在查看 AR(30) 模型,但正如您在问题中明确指出的那样,您的模型仅包含 4 个参数。当您只需要估计 4 个参数时,为什么有超过 30 个回归量?这意味着您的估算方法将需要适应对参数的限制,这只会让您的生活变得艰难。
幸运的是,在你的情况下,它是可以避免的。实际上,在我看来,您已经在问题中写下了适当的形式!
我将稍微简化一下符号:让 y_{t+1} = RV_{t+1}, X1_t = RV_t, X2_t = (1/5) (RV_{t-1} + ... + RV_ {t-5}),并且 X3_t = (1/30) (RV_{t-1} + ... + RV_{t-30})。现在我们可以将回归方程写成:
y_{t+1} = c0 + c1*X1_t + c2*X2_t + c3*X3_t + e_t
这是一个简单的带有滞后的时间序列回归。忘记 AR(p) 特定的估计方法,您可以在此基础上做简单、可靠的 OLS。如果残差通过了 Durbin-Watson 检验,那么 OLS 估计量很可能是一致的,并且在一些额外的假设下,最佳线性无偏估计量 (BLUE)。
以下是一些示例代码,可帮助您入门:
%# Randomly generate some observations
T = 1000;
RV = randn(T, 1);
%# Construct your variables
y = RV(32:end); %# your regressor
X1 = RV(31:end-1); %# first lag of your regressor (ie your first regressand)
X2 = conv(RV(26:end-2), (1/5) * ones(5, 1), 'valid'); %# moving window average over 5 observations (ie your second regressand)
X3 = conv(RV(1:end-2), (1/30) * ones(30, 1), 'valid'); %# moving window average over 30 observations (ie your third regressand)
%# Build your matrix of regressors (including a vector of ones for the constant term)
X = [ones(length(X1), 1), X1, X2, X3];
%# Perform OLS
[Coef, CoefConfInt, e] = regress(y, X);
%# Perform a durbin watson test on the residuals
[DWpVal, DWStat] = dwtest(e, X);
if DWpVal < 0.05; fprintf('WARNING: residuals from regression appear to be serially correlated. Estimated coefficients may not be consistent'); end
Coef
存储您的估计系数,并CoefConfInt
存储这些估计器的置信区间。我什至结合了一个测试来检查你的残差是否通过了 Durbin-Watson 测试。显然,您需要将您的实际 RV 替换为我随机生成的 RV。如果在您的实际回归中,残差没有通过 Durbin-Watson 检验,那么您可能需要研究诸如 Feasible GLS 之类的方法,或者阅读 Greene 的“计量经济学分析”的时间序列章节 - 但希望它赢了不要这么说。
如果您认为此回答回答了问题,请随时单击它旁边的勾号。