Dear all, I am working on IRF-matchig approach. when u added more variables in get-empirical-irfs file. I got my error as bad gradient. what is reason?

Where did this error appear?

it appears once estimation starts. code is attachedget_empirical_IRFs.m (6.3 KB) IRF_matching_objective.m (1.4 KB) finaldata.xlsx (85.4 KB) IRFNEW.mod (6.4 KB) build_companionform.m (608 Bytes)

You need to adjust

```
%get pointwise variance of IRFs across draws and compute weighting matrix
IRF_variances=var(IRFs([y_pos,pie_pos,rm_pos,rl_pos,c_pos, invest_pos],:,:),0,3)';
IRF_weighting=inv(diag(IRF_variances(2:end)));
```

Currently, the weighting matrix is `Inf`

Are these variances are related to number of variables like

%get pointwise variance of IRFs across draws and compute weighting matrix

IRF_variances=var(IRFs([y_pos,pie_pos,rm_pos,rl_pos,c_pos,invest_pos],:,:),0,7)’;

IRF_weighting=inv(diag(IRF_variances(2:end)))

Yes, something must be wrong here.

on the basis of number of variables it can be defined like this?

I defined on number of variables but didn’t get what is wrong here. if I reduce number of variables, I didn’t got error

You need to check

- whether you are computing the variance across the IRFs correctly (first line)
- whether you are selecting the variances correctly (second line)