- If parameter uncertainty is not needed, you can turn it off using armaxOptions:EstimateCovariance flag.
- Try reducing armaxOptions:SearchOptions:MaximumIterations.
- Try a different estimation technique, like n4sid which is faster. You can convert the resulting model into polynomial (armax) form using IDPOLY() command. Example:
How to Improve the computation speed for 'ARMAX' function?
    조회 수: 7 (최근 30일)
  
       이전 댓글 표시
    
Hi, I'm currently using ARMAX function to compute a model. I would like to compute all possible model at once in the code (3000 models at once) but I guess it's too much and the computing time took so long. Is there a way to improve my computation speed? Here's the code for the armax function that I used.
na = 1:10;  %polinom output
nb = 1:10;  %polinom input
nc = 1:5;   %polinom noise
nk = 0:5;
order = struc(na,nb,nc,nk);
models = cell(size(order,1),1);
for od = 1:size(order,1)    %ARIMAX MODEL
    models{od} = armax(dataest,[order(od,:)],'IntegrateNoise', true);
end
Please help me, to improve my computation speed since I'm still at lost on how to improve the speed through efficiency of my code. Thank you!
댓글 수: 0
답변 (1개)
  Rajiv Singh
    
 2020년 6월 9일
        
      편집: Rajiv Singh
    
 2020년 6월 9일
  
      If you have access to Parallel Computing Toolbox, you could consider replacing the for-loop with a "parfor" loop. Other things to consider:
sys = idpoly(n4sid(data, 2));
            But this will be hard to do for ARIMAX case. For that, you can replace data with diff(data) and fit a regular         model (no noise integrators) to it. Example: 
data2 = diff(data); % remove integration effects from data
sys = idpoly(n4sid(data2,2)); 
sys.D = [1 -1] % add the integrator back
댓글 수: 0
참고 항목
카테고리
				Help Center 및 File Exchange에서 Uncertainty Analysis에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

