我正在使用ecmmvnrmle(数据缺失的多元正态回归)计算matlab中大量资产的滚动测试版,但这需要花费很多时间。有没有办法在不使用循环的情况下做到这一点?
答案 0 :(得分:0)
以下是我正在使用的代码
for i=1:numcol-2 % col have various assets
temp_component = regress_dataset(:,i); %calculating returns
if strcmp(type, 'Equity')
temp_component = price2ret(temp_component);
elseif strcmp(type , 'Corp')
temp_component = diff(temp_component);
end
for j=1:numrows - roll - 1 %calculating rolling betas
temp_index = indexset_ret(j:j+roll-1,:); %index return for last 22 days (roll=22)
temp_index(:,1) = 1;
temp_asset = temp_component(j:j+roll-1,:);
msr(j,:) = [size(temp_index),size(temp_asset) j];
if sum(isnan(temp_asset))> 0
ts_beta(j,k) = NaN;
else
[Param,Covar] = ecmmvnrmle(temp_asset,temp_index); %calculating beta
ts_beta(j,k) = Param(2); %storing beta
end
end
k=k+1;
end