Dear Statalisters,
I am trying to use a matrix to save results of looping over countries (panel data) to obtain lag-order selection statistics for VARs and VECMs and feed in the optimal lag into the matrix. However, I keep receiving this error message after running the procedure for the first country:
“new variables cannot be uniquely named or already defined, after running”
I am not able to figure out what is wrong after several attempts. Here is the part of code I am using to loop over countries:
Any help will be kindly appreciated.
Imed
I am trying to use a matrix to save results of looping over countries (panel data) to obtain lag-order selection statistics for VARs and VECMs and feed in the optimal lag into the matrix. However, I keep receiving this error message after running the procedure for the first country:
“new variables cannot be uniquely named or already defined, after running”
I am not able to figure out what is wrong after several attempts. Here is the part of code I am using to loop over countries:
Code:
* Identify the unique countries in your dataset
levelsof country, local(country_list)
* Initialize an empty matrix to store results
local ncount : word count `country_list'
gen Country = "`country_list'"
matrix P = J(`ncount',1,.)
local i = 1
* Loop over each country
foreach country of local country_list {
preserve
* Filter data for the current country
keep if country == "`country'"
di "Processing country:`country'"
varsoc rI rC rY
matrix A = r(stats)
svmat A, name(col)
egen minh = min(H)
gen optimal_lag = lag if minh == HQ
sum optimal_lag if optimal_lag<.
local olag = r(mean)
matrix P[`i',1] = `olag'
matrix drop A
drop lag LL LR df p FPE AIC HQIC SBIC minh optimal_lag
local ++i
}
matrix list P, format(%2.0f)
Imed
