Sorry, my advice is incorrect (and I should have known better!). Task views are to search for relevant packages, not for posting questions. R "special interest groups" (SIGs) are for the latter, which in your case might be this one: https://stat.ethz.ch/mailman/listinfo/r-sig-finance .
Cheers, Bert On Tue, Apr 23, 2024 at 11:45 AM Bert Gunter <bgunter.4...@gmail.com> wrote: > > Generally speaking, this sort of detailed statistical question about a > speccial package in R does not get a reply on this general R > programming help list. Instead, I suggest you either email the > maintainer (found by ?maintainer) or ask a question on a relevant R > task view, such as > https://cran.r-project.org/web/views/Econometrics.html . (or any other > that you judge to be more appropriate). > > Cheers, > Bert > > On Tue, Apr 23, 2024 at 9:41 AM Richard Hardy <brukali...@gmail.com> wrote: > > > > A copy of this question can be found on Cross Validated: > > https://stats.stackexchange.com/questions/645362 > > > > I am estimating a system of seemingly unrelated regressions (SUR) in R. > > Each of the equations has one unique regressor and one common regressor. I > > am using `gmm::sysGmm` and am experimenting with different weighting > > matrices. I get the same results (point estimates, standard errors and > > anything else that I can see (**except** for the value of the $J$-test) > > regardless of the weighting matrix. I do not think this is correct. > > The phenomenon persists regardless of what type of covariance matrix > > estimator I use: `MDS`, `CondHom` or `HAC`. > > It also persists regardless of whether I use unrestricted estimation or > > restrict the coefficients on one of the variables (the common regressor) to > > be equal across equations. > > > > **Question:** Why does system GMM via `gmm::sysGmm` yield identical results > > for any weighting matrix? How can I make it yield proper results that vary > > with the weighting matrix (if that makes sense and I am not mistaken, of > > course)? > > > > ------------------------------ R code for a reproducible example > > > > library(gmm) > > library(systemfit) > > > > # Generate and prepare the data > > n <- 1000 # sample size > > m <- 100 # length of the "second part" of the sample > > N <- 3 # number of equations > > set.seed(321); x <- matrix(rnorm(n*N),ncol=N); colnames(x) <- > > paste0("x",1:N) # generate regressors > > dummy <- c( rep(0,n-m), rep(1,m) ) # generate a common regressor > > x <- cbind(x,dummy) # include the common regressor with the > > rest of the regressors > > set.seed(123); y <- matrix(rnorm(n*N),ncol=N); colnames(y) <- > > paste0("y",1:N) # a placeholder for dependent variables > > for(i in 1:N){ > > y[,i] <- i + sqrt(i)*x[,i] - i*dummy + y[,i]*15*sqrt(i) > > # y[,i] is a linear function of x[,i] and dummy, > > # plus an error term with equation-specific variance > > } > > data1 <- as.data.frame(cbind(y,x)) # create a data frame of all data (y and > > x) > > > > # Create the model equations and moment conditions > > ES_g = ES_h <- list() # ES ~ equation system > > for(i in 1:N){ > > ES_g[[i]] <- as.formula(assign(paste0("eq",i), value=paste0("y",i," ~ > > x",i," + dummy"))) # define linear equations of SUR > > ES_h[[i]] <- as.formula(assign(paste0("eq",i), value=paste0( "~ > > x",i," + dummy"))) # define the moment conditions for GMM > > } > > > > # Estimate a WLS-type weighting matrix to use as a user-specified weighting > > matrix in GMM > > m0 <- systemfit(formula=ES_g, method="OLS", data=data1) > > OLSmat <- diag(diag(m0$residCov)); Wmat <- solve(OLSmat) > > > > # Choose the type of covariance matrix in GMM > > vc1 <- "MDS" > > vc1 <- "CondHom" > > vc1 <- "HAC" > > #vc1 <- "TrueFixed" > > > > # Choose between restricted and unrestricted estimation > > cec1=NULL # unrestricted > > cec1=3 # restrict the coefficient on the dummy to be equal across > > equations > > > > # Estimate the model with `sysGmm` using different weighting matrices: > > identity, "optimal" and manually specified > > m1a <- sysGmm(g=ES_g, h=ES_h, wmatrix="ident" , weightsMatrix=NULL, > > vcov=vc1, crossEquConst=cec1, data=data1); summary(m1a) > > m1b <- sysGmm(g=ES_g, h=ES_h, wmatrix="optimal", weightsMatrix=NULL, > > vcov=vc1, crossEquConst=cec1, data=data1); summary(m1b) > > m1c <- sysGmm(g=ES_g, h=ES_h, weightsMatrix=Wmat, > > vcov=vc1, crossEquConst=cec1, data=data1); summary(m1c) > > > > ------------------------------ R session info: > > > > R version 4.3.3 (2024-02-29 ucrt) > > Platform: x86_64-w64-mingw32/x64 (64-bit) > > Running under: Windows 10 x64 (build 19045) > > > > Matrix products: default > > > > locale: > > [1] LC_COLLATE=English_United States.utf8 LC_CTYPE=English_United > > States.utf8 > > [3] LC_MONETARY=English_United States.utf8 LC_NUMERIC=C > > > > [5] LC_TIME=English_United States.utf8 > > > > time zone: Europe/Berlin > > tzcode source: internal > > > > attached base packages: > > [1] stats graphics grDevices utils datasets methods base > > > > other attached packages: > > [1] systemfit_1.1-30 lmtest_0.9-40 zoo_1.8-12 car_3.1-2 > > carData_3.0-5 Matrix_1.6-1 > > [7] gmm_1.8 sandwich_3.0-2 > > > > loaded via a namespace (and not attached): > > [1] MASS_7.3-60.0.1 compiler_4.3.3 tools_4.3.3 abind_1.4-5 > > rstudioapi_0.15.0 grid_4.3.3 > > [7] lattice_0.22-5 > > > > ------------------------------ > > > > Kind regards, > > Richard > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.