I want to estimate a fixed effects model with an interaction term in which one of the variables is endogenous. In fixest:
feols(log(weekly_avg_price) ~ policy_dummy * holiday_dummy * gas_price | item_id+month+store_id | gas_week_price~crude_oil, data = seasonal_data, vcov= "DK", panel.id = c("panel_id", "week_start")
However, I get this error: Endogenous variables should not be used as exogenous regressors.
Is there a way to solve this? Or any other package in r that does this?
structure(list(item_id = c("FOODS_1_032", "FOODS_1_032", "FOODS_1_032",
"FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032",
"FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032",
"FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032",
"FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032",
"FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032", "FOODS_1_032",
"FOODS_1_032", "FOODS_1_032"), store_id = c("CA_1", "CA_1", "CA_1",
"CA_1", "CA_1", "CA_1", "CA_1", "CA_1", "CA_1", "CA_1", "CA_1",
"CA_1", "CA_1", "CA_1", "CA_1", "CA_1", "CA_1", "CA_1", "CA_1",
"CA_1", "CA_1", "CA_1", "CA_1", "CA_1", "CA_1", "CA_1", "CA_1",
"CA_1", "CA_1", "CA_1"), state_id = c("CA", "CA", "CA", "CA",
"CA", "CA", "CA", "CA", "CA", "CA", "CA", "CA", "CA", "CA", "CA",
"CA", "CA", "CA", "CA", "CA", "CA", "CA", "CA", "CA", "CA", "CA",
"CA", "CA", "CA", "CA"), week_start = structure(c(15005, 15012,
15019, 15026, 15033, 15040, 15047, 15054, 15061, 15068, 15075,
15082, 15089, 15096, 15103, 15110, 15117, 15124, 15131, 15138,
15145, 15152, 15159, 15166, 15173, 15180, 15187, 15194, 15201,
15208), class = "Date"), month = c("Jan", "Feb", "Feb", "Feb",
"Feb", "Mar", "Mar", "Mar", "Mar", "Apr", "Apr", "Apr", "Apr",
"May", "May", "May", "May", "May", "Jun", "Jun", "Jun", "Jun",
"Jul", "Jul", "Jul", "Jul", "Aug", "Aug", "Aug", "Aug"), year = c("2011",
"2011", "2011", "2011", "2011", "2011", "2011", "2011", "2011",
"2011", "2011", "2011", "2011", "2011", "2011", "2011", "2011",
"2011", "2011", "2011", "2011", "2011", "2011", "2011", "2011",
"2011", "2011", "2011", "2011", "2011"), panel_id = c("FOODS_1_032_CA_1",
"FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1",
"FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1",
"FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1",
"FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1",
"FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1",
"FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1",
"FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1", "FOODS_1_032_CA_1",
"FOODS_1_032_CA_1"), weekly_avg_price = c(1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.994285714285714, 0.98, 0.98,
0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98, 0.98), weekly_ban_dummy = c(1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1), weekly_sales = c(144, 163, 178, 131,
100, 195, 164, 92, 17, 20, 47, 82, 41, 79, 96, 133, 117, 100,
67, 125, 156, 86, 111, 87, 119, 117, 21, 121, 72, 83), weekly_event = c(1,
0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0,
1, 0, 0, 0, 1, 0, 0, 0), gas_week_price = c(3.444, 3.492, 3.601,
3.765, 3.92, 4, 4.012, 4.074, 4.103, 4.208, 4.251, 4.263, 4.303,
4.302, 4.265, 4.17, 4.105, 4.041, 3.987, 3.947, 3.886, 3.84,
3.826, 3.846, 3.865, 3.857, 3.844, 3.78, 3.781, 3.855), gas_lag1_price = c(3.41,
3.444, 3.492, 3.601, 3.765, 3.92, 4, 4.012, 4.074, 4.103, 4.208,
4.251, 4.263, 4.303, 4.302, 4.265, 4.17, 4.105, 4.041, 3.987,
3.947, 3.886, 3.84, 3.826, 3.846, 3.865, 3.857, 3.844, 3.78,
3.781), gas_lag2_price = c(3.402, 3.41, 3.444, 3.492, 3.601,
3.765, 3.92, 4, 4.012, 4.074, 4.103, 4.208, 4.251, 4.263, 4.303,
4.302, 4.265, 4.17, 4.105, 4.041, 3.987, 3.947, 3.886, 3.84,
3.826, 3.846, 3.865, 3.857, 3.844, 3.78), diesel_week_price = c(3.707,
3.747, 3.799, 3.964, 4.122, 4.17, 4.199, 4.256, 4.323, 4.397,
4.44, 4.438, 4.465, 4.459, 4.371, 4.287, 4.227, 4.223, 4.245,
4.236, 4.146, 4.065, 4.099, 4.114, 4.145, 4.136, 4.067, 3.957,
3.928, 3.958), diesel_lag1_price = c(3.612, 3.707, 3.747, 3.799,
3.964, 4.122, 4.17, 4.199, 4.256, 4.323, 4.397, 4.44, 4.438,
4.465, 4.459, 4.371, 4.287, 4.227, 4.223, 4.245, 4.236, 4.146,
4.065, 4.099, 4.114, 4.145, 4.136, 4.067, 3.957, 3.928), diesel_lag2_price = c(3.602,
3.612, 3.707, 3.747, 3.799, 3.964, 4.122, 4.17, 4.199, 4.256,
4.323, 4.397, 4.44, 4.438, 4.465, 4.459, 4.371, 4.287, 4.227,
4.223, 4.245, 4.236, 4.146, 4.065, 4.099, 4.114, 4.145, 4.136,
4.067, 3.957), crude_oil = c(89.03, 85.58, 86.2, 97.88, 104.42,
101.16, 101.07, 105.4, 107.94, 112.79, 109.66, 112.29, 113.93,
97.18, 99.65, 99.49, 100.59, 100.22, 99.29, 93.01, 91.16, 94.94,
96.2, 97.24, 99.87, 95.7, 86.88, 85.38, 82.26, 85.37)), row.names = c(NA,
-30L), class = c("tbl_df", "tbl", "data.frame"))
>