Good morning, I am trying to develop a structural equation model of snake abundance using habitat variables. In attempting to estimate the model using the "sem" package in R version 2.4.0, I receive the following error message: "Error in solve.default(C) : system is computationally singular: reciprocal condition number = 1.75349e-16" MAIN PROBLEM: I am hoping to discover why I am receiving the aforementioned error message and how to successfully estimate the model. OTHER INFORMATION: 1. I believe the model is over-identified rather than under-identified (based on my understanding of the t-rule). I have observed data for 10 variables (9 exogenous, 1 endogenous). 2. I am not certain that I have used the proper tool to estimate the covariance matrix. In this case, I used the "VAR" function. 3. I am most concerned that I have improperly coded the RAM file. For example, in a case where I have three exogenous indicators of one exogenous latent variable, I specify a start value of 1 for one of the exogenous indicators. I am not sure if this is proper or necessary. 4. I am new to SEM; this is the first model I have ever tried to estimate. R CODE: Below is the r-code I have used to estimate the structural equation model -- # LOADING R PACKAGES library(sem) # READING IN THE CSV FILES thsi.2006<-read.csv("thsi_ab_env_space_sem.csv") thsi<-thsi.2006 # MAKING "RAM" FILE 2 model2.nlc <-specify.model() Moist->slope, NA, 1 Moist->sand, lamda21, NA Moist->clay, lamda31, NA Hab->isol, NA, 1 Hab->edgedist_a, lamda52, NA Hab->ag10, lamda62, NA Hab->urb10, lamda72, NA Hab->rd10, lamda82, NA Hab->y, lamda92, NA Moist->this, gamma11, NA Hab->this, gamma12, NA slope<->slope, theta11, NA sand<->sand, theta22, NA clay<->clay, theta33, NA isol<->isol, theta44, NA edgedist_a<->edgedist_a, theta55, NA ag10<->ag10, theta66, NA urb10<->urb10, theta77, NA rd10<->rd10, theta88, NA y<->y, the99, NA Moist<->Moist, phi11, NA Hab<->Hab, phi22, NA this<->this, theps11, NA model2.nlc end # MAKING S (COVARIANCE MATRIX) thsi.var <- var(thsi) # MAKING UNSCALED SEM MODEL sem2<-sem(ram=model2.nlc, S=thsi.var, N=22) I am also attaching a jpeg diagram of the model I am trying to estimate. Please let me know if there is any additional information that I should add to this posting. Thank you so much for your time. Nicolette Cagle -- Ecology Ph.D. Candidate Duke University Durham, NC 27708 www.duke.edu/~nlc4
nicolette.cagle at duke.edu wrote:> Good morning, > > I am trying to develop a structural equation model of snake abundance using > habitat variables. In attempting to estimate the model using the "sem" package > in R version 2.4.0, I receive the following error message: > > "Error in solve.default(C) : system is computationally singular: reciprocal > condition number = 1.75349e-16" > > MAIN PROBLEM: I am hoping to discover why I am receiving the aforementioned > error message and how to successfully estimate the model. > > OTHER INFORMATION: > 1. I believe the model is over-identified rather than under-identified (based on > my understanding of the t-rule). I have observed data for 10 variables (9 > exogenous, 1 endogenous). > > 2. I am not certain that I have used the proper tool to estimate the covariance > matrix. In this case, I used the "VAR" function. > > 3. I am most concerned that I have improperly coded the RAM file. For example, > in a case where I have three exogenous indicators of one exogenous latent > variable, I specify a start value of 1 for one of the exogenous indicators. I > am not sure if this is proper or necessary. > > 4. I am new to SEM; this is the first model I have ever tried to estimate. > > R CODE: Below is the r-code I have used to estimate the structural equation > model -- > > # LOADING R PACKAGES > library(sem) > > # READING IN THE CSV FILES > thsi.2006<-read.csv("thsi_ab_env_space_sem.csv") > thsi<-thsi.2006 > > # MAKING "RAM" FILE 2 > model2.nlc <-specify.model() > Moist->slope, NA, 1 > Moist->sand, lamda21, NA > Moist->clay, lamda31, NA > Hab->isol, NA, 1 > Hab->edgedist_a, lamda52, NA > Hab->ag10, lamda62, NA > Hab->urb10, lamda72, NA > Hab->rd10, lamda82, NA > Hab->y, lamda92, NA > Moist->this, gamma11, NA > Hab->this, gamma12, NA > slope<->slope, theta11, NA > sand<->sand, theta22, NA > clay<->clay, theta33, NA > isol<->isol, theta44, NA > edgedist_a<->edgedist_a, theta55, NA > ag10<->ag10, theta66, NA > urb10<->urb10, theta77, NA > rd10<->rd10, theta88, NA > y<->y, the99, NA > Moist<->Moist, phi11, NA > Hab<->Hab, phi22, NA > this<->this, theps11, NA > > model2.nlc > end > > # MAKING S (COVARIANCE MATRIX) > thsi.var <- var(thsi) > > # MAKING UNSCALED SEM MODEL > sem2<-sem(ram=model2.nlc, S=thsi.var, N=22) > > I am also attaching a jpeg diagram of the model I am trying to estimate. Please > let me know if there is any additional information that I should add to this > posting. > > Thank you so much for your time. > Nicolette CagleYour specification of the model seems OK and it is over-identified (21 free parameters and 34 df). I suspect the problem is that one or more of your 10 variables is a linear function of the remaining variables. If that is the case, then the following should give the same singularity error: factanal(thsi, factors=1) You may be able to drop one or more of the 10 variables from consideration and successfully estimate a conceptually similar model. hope this helps, Chuck Cleland> ------------------------------------------------------------------------ > > ______________________________________________ > R-help at r-project.org mailing list > 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.-- Chuck Cleland, Ph.D. NDRI, Inc. 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894
Good afternoon Chuck, I really appreciate your help. I just ran the factor analysis and did not receive the singularity error (please see results below). Do you happen to have any additional ideas or suggestions? Thank you so much. Nicki FACTANAL RESULTS: Call: factanal(x = thsi, factors = 1) Uniquenesses: this edgedist_a isol ag10 urb10 rd10 slope 0.705 0.914 0.232 0.124 0.136 0.017 0.952 clay sand y 0.534 0.485 0.144 Loadings: Factor1 this 0.543 edgedist_a 0.293 isol 0.876 ag10 -0.936 urb10 0.930 rd10 0.992 slope -0.220 clay -0.682 sand 0.718 y -0.925 Factor1 SS loadings 5.757 Proportion Var 0.576 Test of the hypothesis that 1 factor is sufficient. The chi square statistic is 120.94 on 35 degrees of freedom. The p-value is 2.17e-11 Quoting Chuck Cleland <ccleland at optonline.net>:> nicolette.cagle at duke.edu wrote: >> Good morning, >> >> I am trying to develop a structural equation model of snake abundance using >> habitat variables. In attempting to estimate the model using the >> "sem" package >> in R version 2.4.0, I receive the following error message: >> >> "Error in solve.default(C) : system is computationally singular: reciprocal >> condition number = 1.75349e-16" >> >> MAIN PROBLEM: I am hoping to discover why I am receiving the aforementioned >> error message and how to successfully estimate the model. >> >> OTHER INFORMATION: >> 1. I believe the model is over-identified rather than >> under-identified (based on >> my understanding of the t-rule). I have observed data for 10 variables (9 >> exogenous, 1 endogenous). >> >> 2. I am not certain that I have used the proper tool to estimate the >> covariance >> matrix. In this case, I used the "VAR" function. >> >> 3. I am most concerned that I have improperly coded the RAM file. >> For example, >> in a case where I have three exogenous indicators of one exogenous latent >> variable, I specify a start value of 1 for one of the exogenous >> indicators. I >> am not sure if this is proper or necessary. >> >> 4. I am new to SEM; this is the first model I have ever tried to estimate. >> >> R CODE: Below is the r-code I have used to estimate the structural equation >> model -- >> >> # LOADING R PACKAGES >> library(sem) >> >> # READING IN THE CSV FILES >> thsi.2006<-read.csv("thsi_ab_env_space_sem.csv") >> thsi<-thsi.2006 >> >> # MAKING "RAM" FILE 2 >> model2.nlc <-specify.model() >> Moist->slope, NA, 1 >> Moist->sand, lamda21, NA >> Moist->clay, lamda31, NA >> Hab->isol, NA, 1 >> Hab->edgedist_a, lamda52, NA >> Hab->ag10, lamda62, NA >> Hab->urb10, lamda72, NA >> Hab->rd10, lamda82, NA >> Hab->y, lamda92, NA >> Moist->this, gamma11, NA >> Hab->this, gamma12, NA >> slope<->slope, theta11, NA >> sand<->sand, theta22, NA >> clay<->clay, theta33, NA >> isol<->isol, theta44, NA >> edgedist_a<->edgedist_a, theta55, NA >> ag10<->ag10, theta66, NA >> urb10<->urb10, theta77, NA >> rd10<->rd10, theta88, NA >> y<->y, the99, NA >> Moist<->Moist, phi11, NA >> Hab<->Hab, phi22, NA >> this<->this, theps11, NA >> >> model2.nlc >> end >> >> # MAKING S (COVARIANCE MATRIX) >> thsi.var <- var(thsi) >> >> # MAKING UNSCALED SEM MODEL >> sem2<-sem(ram=model2.nlc, S=thsi.var, N=22) >> >> I am also attaching a jpeg diagram of the model I am trying to >> estimate. Please >> let me know if there is any additional information that I should add to this >> posting. >> >> Thank you so much for your time. >> Nicolette Cagle > > Your specification of the model seems OK and it is over-identified (21 > free parameters and 34 df). I suspect the problem is that one or more > of your 10 variables is a linear function of the remaining variables. > If that is the case, then the following should give the same singularity > error: > > factanal(thsi, factors=1) > > You may be able to drop one or more of the 10 variables from > consideration and successfully estimate a conceptually similar model. > > hope this helps, > > Chuck Cleland > >> ------------------------------------------------------------------------ >> >> ______________________________________________ >> R-help at r-project.org mailing list >> 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. > > -- > Chuck Cleland, Ph.D. > NDRI, Inc. > 71 West 23rd Street, 8th floor > New York, NY 10010 > tel: (212) 845-4495 (Tu, Th) > tel: (732) 512-0171 (M, W, F) > fax: (917) 438-0894 > >-- Ecology Ph.D. Candidate Duke University Durham, NC 27708 www.duke.edu/~nlc4