[R-sig-Geo] convert "errorsarlm" to "lm"
niv de malach
nivdemalach at gmail.com
Mon Oct 23 07:47:59 CEST 2017
I am not sure that I fully understand you... I Appologize for my ignorance
1. Do you have some approach of transferring the object coefficients into
"lm" assuming that they are fixed? (if so let me know how...)
2. I am not sure what do you mean by uncertainty (confidence intervals?
significance tests? AIC\BIC scores?something totally different?). You
suggested to use bayesian methods but I am not sure why. In this SEM type
(local estimation approach) I can use the equation (before transformation)
for inference (with all their "uncertainty" whatever that be). Putting them
together as "SEM" is used mainly for testing whether there is a correlation
between some variables and the residuals of equation describing other (non
linked) variables . Using a special test this package test what is the
probability that the model is "wrong" based on the "missing links".
In general it would be better to get also an AIC\BIC for the total SEM
model (which is possible when regular lm objects are used) but my main
goal in this analysis is parameter estimation rather than model selection
(so the SEM is used only as a "sanity check" that
there wasn't any important missing link)
Thanks
On Sun, Oct 22, 2017 at 10:23 PM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
> On Sun, 22 Oct 2017, niv de malach wrote:
>
> Regarding your question about MRF, I don't know what it is...
>>
>
> see for example:
>
> http://www.fromthebottomoftheheap.net/2017/10/19/first-
> steps-with-mrf-smooths/
>
> here using mgcv::gam() to fit a model with an MRF smooth. In effect,
> errorsarlm() is fitting something similar,
>
>
>> I know that the package piecewiseSEM accept the following object types:
>>
>> ‘lm‘, ‘rq‘, ‘glm‘, ‘glm.nb‘, ‘gls‘, ‘pgls‘, ‘merMod‘, ‘merModLmerTest‘,
>> ‘lme‘, ‘glmmPQL‘, ‘glmmadmb‘, and ‘glmmTMB‘.
>>
>> so "transformation" of errorsarlm to any of these object should solve the
>> problem.
>>
>>
> No! You have to pass through the uncertainty associated with fitting the
> spatial regression coefficient. The same would apply with any other
> MRF-based approach. It is possible to pretend that this coefficient is
> fixed (I'll return to the example tomorrow). I don't think that any of the
> listed object types come from fitting functions supporting MRF, though. You
> would likely need to re-fit your piecewiseSEM over samples from the
> coefficients, to check that the path outcomes were robust (just a
> speculation). Any Bayesians who could help?
>
> Roger
>
>
>> Below there is a code where a dataset is simulated and analyzed using 'lm'
>> and 'errorsarlm'. Only 'lm' is accepted for
>> SEM analysis.
>>
>> Thanks,
>> Niv
>>
>>
>> #################### creating a simulated dataset
>> ##############################
>>
>> set.seed(1)
>> sample=50 # sample size (number of points)
>>
>> # spatial location
>> Lattitude=rnorm(sample, mean = 0, sd = 4)
>> Longitude=rnorm(sample, mean = 0, sd = 4
>>
>> # creating exploratory variable
>> <https://maps.google.com/?q=ry+variable&entry=gmail&source=g>s
>> x1=rnorm(sample, mean = 30, sd = 2
>> <https://maps.google.com/?q=30,+sd+%3D+2&entry=gmail&source=g>0)
>> x2=rnorm(sample, mean = -20, sd = 10)
>> x3=rnorm(sample, mean = 5, sd = 3)
>> x4=rnorm(sample, mean = 25,
>> <https://maps.google.com/?q=mean+%3D+25,&entry=gmail&source=g> sd = 5)
>> x5=rnorm(sample, mean = -10, sd = 10)
>> x6=rnorm(sample, mean = 50, sd = 30)
>>
>> # response variables
>> y1=10*x1+5*x2+2*x3+30*Lattitude+rnorm(sample, mean = 0, sd = 20) # y1 is
>> function of x1-x3 +location+random error
>> y2=10*x4+5*x5+2*x6+10*Longitude+rnorm(sample, mean = 0, sd = 20) # y1 is
>> function of x4-x5 +location+random error
>>
>> mydata=data.frame(x1,x2,x3,x4,x5,x6,y1,y2,Lattitude,Longitude)
>>
>> ################# building errorsarlm objects and lm objects
>> ####################################
>>
>> library(spdep)
>>
>> # creating neighbors for errorsarlm function
>> xy=SpatialPoints(as.matrix(mydata[,c(9,10)]))
>> myneighbors=dnearneigh(as.matrix(mydata[,c(9,10)]), 0, 1000, row.names =
>> NULL, longlat = TRUE)# 1000 kilometer distance
>> myweight=nb2listw(myneighbors,style="W") #
>>
>> # two errorsarlm objects
>> sar1=errorsarlm(y1~x1+x2+x3,data=mydata,myweight)
>> sar2=errorsarlm(y2~x4+x5+x6,data=mydata,myweight)
>>
>> # two lm objects
>> lm1=lm(y1~x1+x2+x3,data=mydata)
>> lm2=lm(y2~x4+x5+x6,data=mydata)
>>
>> ############### trying to use sarlm and lm in "piecewiseSEM"
>> ####################
>>
>> library(piecewiseSEM) # package for structural equation modeling
>> SEM_LM=sem.fit(list(lm1,lm2),data=mydata) # the package accept lm objects
>> (and random models such as lme)
>> SEM_errorsarLM=sem.fit(list(sar1,sar2),data=mydata) # the package does
>> not
>> accept errprsarlm objects
>>
>> # Error in nobs.default(x) : no 'nobs' method is available #
>>
>>
>>
>>
>> ᐧ
>>
>> On Fri, Oct 20, 2017 at 2:06 PM, Roger Bivand <Roger.Bivand at nhh.no>
>> wrote:
>>
>> On Wed, 18 Oct 2017, niv de malach wrote:
>>>
>>> Hi all,
>>>
>>>> I need to convert an "errorsarlm" object into a simple "lm" object
>>>> because
>>>> the package I use ("piecewiseSEM") could not deal with "errorsarlm". Is
>>>> there a way to transform the object?
>>>>
>>>>
>>> Please give a reproducible example [1] showing what you are doing,
>>> preferably with a built-in data set. In any case, an lm object made from
>>> a
>>> sarlm object will fix the spatial coefficient and loose its uncertainty.
>>>
>>> [1] https://stackoverflow.com/questions/5963269/how-to-make-a-
>>> great-r-reproducible-example
>>>
>>> Can you use an model class accepted in piecewiseSEM that fits an MRF
>>> random effect?
>>>
>>> Roger
>>>
>>>
>>> Thanks,
>>>> Niv
>>>> ᐧ
>>>>
>>>> [[alternative HTML version deleted]]
>>>>
>>>> _______________________________________________
>>>> R-sig-Geo mailing list
>>>> R-sig-Geo at r-project.org
>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>>
>>>>
>>> --
>>> Roger Bivand
>>> Department of Economics, Norwegian School of
>>> <https://maps.google.com/?q=an+School+of&entry=gmail&source=g>Economics,
>>> Helleveien 30, N-5045 Bergen, Norway.
>>> voice: +47 55 95 93 55; e-mail: Roger.Bivand at nhh.no
>>> Editor-in-Chief of The R Journal, https://journal.r-project.org/
>>> index.html
>>> http://orcid.org/0000-0003-2392-6140
>>> https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
>>>
>>
>>
> --
> Roger Bivand
> Department of Economics, Norwegian School of Economics,
> Helleveien 30, N-5045 Bergen, Norway.
> voice: +47 55 95 93 55; e-mail: Roger.Bivand at nhh.no
> Editor-in-Chief of The R Journal, https://journal.r-project.org/index.html
> http://orcid.org/0000-0003-2392-6140
> https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
>
ᐧ
[[alternative HTML version deleted]]
More information about the R-sig-Geo
mailing list