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