Hi all,

I'm conducting analysis in the form below:

Code:
y = x1 + x2 + x3 + x1*x2
In which x1 is the variable of interest and it is endogenous. Say I have a valid instrument for x1: namely z1. The data is in panel structure so ivreg2 is used.

without including the interaction term, I can run the code below successfully:

Code:
xtivreg2: y x2 x3 (x1=z1), fe
But with the interaction term,
Code:
xtivreg2: y x2 x3 (x1 c.x1#c.x2 = z1 c.z1#c.x2), fe
throws an error:
Code:
cx1#c:  operator invalid
I searched online and find a potential remedy here, what it does is:
Code:
gen x1x2 = x1*x2
gen z1x2 = z1*x2
xtivreg2: y x2 x3 (x1 x1x2 = z1 z1x2), fe
This works indeed, but I want to know would this affects the consistency and efficiency of the coefficients?
Or more broadly, what is the shortcoming of this method as compared to one in which I can just run:
Code:
xtivreg2: y x2 x3 (x1 c.x1#c.x2 = z1 c.z1#c.x2), fe
Thanks in advance for all your time and knowledge