Aptech Store

error message G0520 : Arguments not conformable

For the following formula I get the error message G0520 : Arguments not conformable

Can anyone help me what I did wrong?

y = 100*(trimr(d,1,0) - trimr(d,0,1)) ~ 100*(trimr(d,2,0) - trimr(d,1,0)) ~ trimr(s - x*theta_pv,1,0);

Before the formula was just

y = 100*(trimr(d,1,0) - trimr(d,0,1))  ~ trimr(s - x*theta_pv,1,0);

but I wanted to increase the number of lags to two. However now for the modified version I get this error message.

I would be very grateful for your support.

1 Answer



0



This error is occurring, because the terms:

(trimr(d,1,0) - trimr(d,0,1));
and
(trimr(d,2,0) - trimr(d,1,0));

have different numbers of rows. As a specific illustration, if:

d = { -0.3,
0.65,
-0.21,
0.89,
-1.25 };

then:

(trimr(d,1,0) - trimr(d,0,1)) =
0.650 - -0.300 = 0.950
-0.210 - 0.650 = -0.860
0.890 - -0.210 = 1.100
-1.250 - 0.890 = -2.140

However,

(trimr(d,2,0) - trimr(d,1,0)) =
- -0.300 = error, rows do not match (arguments not conformable)
-0.210 - 0.650 = -0.860
0.890 - -0.210 = 1.100
-1.250 - 0.890 = -2.140

I am not certain what you are trying to do, but if you wanted the first and second lag of the first difference, you could to this:

first_diff = (trimr(d,1,0) - trimr(d,0,1));
fd_lag12 = lagn(first_diff, 1| 2);

or simply

y = lagn(trimr(d,1,0) - trimr(d,0,1), 1 | 2);

aptech

1,773

Your Answer

1 Answer

0

This error is occurring, because the terms:

(trimr(d,1,0) - trimr(d,0,1));
and
(trimr(d,2,0) - trimr(d,1,0));

have different numbers of rows. As a specific illustration, if:

d = { -0.3,
0.65,
-0.21,
0.89,
-1.25 };

then:

(trimr(d,1,0) - trimr(d,0,1)) =
0.650 - -0.300 = 0.950
-0.210 - 0.650 = -0.860
0.890 - -0.210 = 1.100
-1.250 - 0.890 = -2.140

However,

(trimr(d,2,0) - trimr(d,1,0)) =
- -0.300 = error, rows do not match (arguments not conformable)
-0.210 - 0.650 = -0.860
0.890 - -0.210 = 1.100
-1.250 - 0.890 = -2.140

I am not certain what you are trying to do, but if you wanted the first and second lag of the first difference, you could to this:

first_diff = (trimr(d,1,0) - trimr(d,0,1));
fd_lag12 = lagn(first_diff, 1| 2);

or simply

y = lagn(trimr(d,1,0) - trimr(d,0,1), 1 | 2);


You must login to post answers.

Have a Specific Question?

Get a real answer from a real person

Need Support?

Get help from our friendly experts.