logLik value of the spml spatial panel model

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

logLik value of the spml spatial panel model

Danlin Yu
Dear List:

In a recent attempt to compare spatial panel models using splm package,
I intend to use the logLik value that was produced by the spml()
routine. When I ran the model, I realize that the logLik value is not
always produced, especially when the spatial.error is set to "b", a NULL
value is returned. I know I must have missed something here, but can
anyone point out why the logLik value is not returned when the
spatial.error value is set to "b" (a spatial panel lag model always
return a logLik value). I tried a bit to dig into the codes, but didn't
find much that can answer my question.

Thank you.

Best,

Danlin

--
___________________________________________
Danlin Yu, Ph.D.
Professor of GIS and Urban Geography
Department of Earth & Environmental Studies
Montclair State University
Montclair, NJ, 07043
Tel: 973-655-4313
Fax: 973-655-4072
email: [hidden email]
webpage: csam.montclair.edu/~yu

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: logLik value of the spml spatial panel model

Jeremie Juste
Danlin Yu <[hidden email]> writes:


Hello,

Could you post the exact command you have used with all the relevant
options? If you dug into the code then you've noticed quite a lot of
nested control structures so a clear idea of your commands might be
useful here.

for instance

    fm <- logc ~ logp+ logpn + logy
    sarpool <-  suppressWarnings(splm::spml(fm,cigar,
                                            listw=lwcig,
                                            model="pooling",
    spatial.error="none",lag=TRUE,index=c("region","time")))

Will produce the logLik
    sarpool$logLik


From what I've understood at some point the function <nlminb> is always
called so a likelihood value is always produced although not always
returned.


Best regards,

Jeremie



> Dear List:
>
> In a recent attempt to compare spatial panel models using splm
> package, I intend to use the logLik value that was produced by the
> spml() routine. When I ran the model, I realize that the logLik value
> is not always produced, especially when the spatial.error is set to
> "b", a NULL value is returned. I know I must have missed something
> here, but can anyone point out why the logLik value is not returned
> when the spatial.error value is set to "b" (a spatial panel lag model
> always return a logLik value). I tried a bit to dig into the codes,
> but didn't find much that can answer my question.
>
> Thank you.
>
> Best,
>
> Danlin

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: logLik value of the spml spatial panel model

Danlin Yu
Dear Jeremie:

Thank you for the response. I actually only copied the scripts from the
spml help page, reproduced here:

fm <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp
## the two standard specifications (SEM and SAR) one with FE
## and the other with RE:
## fixed effects panel with spatial errors
fespaterr <- spml(fm, data = Produc, listw = mat2listw(usaww),
                    model="within", spatial.error="b", Hess = FALSE) #
doesn't matter if I set Hess = T or F here, and doesn't matter if I set
spatial.error = "b" or "kkp"

And when I want to check the logLik value:

fespaterr$logLik

I got the "NULL" value

I checked this with some other data sets, and found that if I am using
the spatial lag specification, I usually got a value for the logLik
parameter. If, however, I use the spatial error specification, I usually
got the "NULL" value for the logLik parameter. I was not able to get to
the bottom of the issue by digging into the codes a bit. Any leads would
be greatly appreciated.

Best,

Danlin


On 2018/10/24 15:30, Jeremie Juste wrote:

> Danlin Yu <[hidden email]> writes:
>
>
> Hello,
>
> Could you post the exact command you have used with all the relevant
> options? If you dug into the code then you've noticed quite a lot of
> nested control structures so a clear idea of your commands might be
> useful here.
>
> for instance
>
>      fm <- logc ~ logp+ logpn + logy
>      sarpool <-  suppressWarnings(splm::spml(fm,cigar,
>                                              listw=lwcig,
>                                              model="pooling",
>      spatial.error="none",lag=TRUE,index=c("region","time")))
>
> Will produce the logLik
>      sarpool$logLik
>
>
>  From what I've understood at some point the function <nlminb> is always
> called so a likelihood value is always produced although not always
> returned.
>
>
> Best regards,
>
> Jeremie
>
>
>
>> Dear List:
>>
>> In a recent attempt to compare spatial panel models using splm
>> package, I intend to use the logLik value that was produced by the
>> spml() routine. When I ran the model, I realize that the logLik value
>> is not always produced, especially when the spatial.error is set to
>> "b", a NULL value is returned. I know I must have missed something
>> here, but can anyone point out why the logLik value is not returned
>> when the spatial.error value is set to "b" (a spatial panel lag model
>> always return a logLik value). I tried a bit to dig into the codes,
>> but didn't find much that can answer my question.
>>
>> Thank you.
>>
>> Best,
>>
>> Danlin

--
___________________________________________
Danlin Yu, Ph.D.
Professor of GIS and Urban Geography
Department of Earth & Environmental Studies
Montclair State University
Montclair, NJ, 07043
Tel: 973-655-4313
Fax: 973-655-4072
Office: CELS 314
Email: [hidden email]
webpage: csam.montclair.edu/~yu

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: logLik value of the spml spatial panel model

Jeremie Juste
Hello,

Indeed the Loglik was not returned here by the function sarpanelerror
here. I have provided a patch (attached). It's an ugly one but better
than nothing. So instead of running spml you could run test..spml after
sourcing the file to obtain the fespaterr$logLik.

fespaterr <- test..spml(fm, data = Produc, listw = mat2listw(usaww),
                   model="within", spatial.error="b", Hess = FALSE)


The only modification I've made is in the function test..(sperrorlm)
where I've added ll=LL in the list returned.


Hope it helps,

Jeremie






> Dear Jeremie:
>
> Thank you for the response. I actually only copied the scripts from
> the spml help page, reproduced here:
>
> fm <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp
> ## the two standard specifications (SEM and SAR) one with FE
> ## and the other with RE:
> ## fixed effects panel with spatial errors
> fespaterr <- spml(fm, data = Produc, listw = mat2listw(usaww),
>                    model="within", spatial.error="b", Hess = FALSE) #
> doesn't matter if I set Hess = T or F here, and doesn't matter if I
> set spatial.error = "b" or "kkp"
>
> And when I want to check the logLik value:
>
> fespaterr$logLik
>
> I got the "NULL" value
>
> I checked this with some other data sets, and found that if I am using
> the spatial lag specification, I usually got a value for the logLik
> parameter. If, however, I use the spatial error specification, I
> usually got the "NULL" value for the logLik parameter. I was not able
> to get to the bottom of the issue by digging into the codes a bit. Any
> leads would be greatly appreciated.
>
> Best,
>
> Danlin
>
> On 2018/10/24 15:30, Jeremie Juste wrote:
>> Danlin Yu <[hidden email]> writes:
>>
>>
>> Hello,
>>
>> Could you post the exact command you have used with all the relevant
>> options? If you dug into the code then you've noticed quite a lot of
>> nested control structures so a clear idea of your commands might be
>> useful here.
>>
>> for instance
>>
>>      fm <- logc ~ logp+ logpn + logy
>>      sarpool <-  suppressWarnings(splm::spml(fm,cigar,
>>                                              listw=lwcig,
>>                                              model="pooling",
>>      spatial.error="none",lag=TRUE,index=c("region","time")))
>>
>> Will produce the logLik
>>      sarpool$logLik
>>
>>
>>  From what I've understood at some point the function <nlminb> is always
>> called so a likelihood value is always produced although not always
>> returned.
>>
>>
>> Best regards,
>>
>> Jeremie
>>
>>
>>
>>> Dear List:
>>>
>>> In a recent attempt to compare spatial panel models using splm
>>> package, I intend to use the logLik value that was produced by the
>>> spml() routine. When I ran the model, I realize that the logLik value
>>> is not always produced, especially when the spatial.error is set to
>>> "b", a NULL value is returned. I know I must have missed something
>>> here, but can anyone point out why the logLik value is not returned
>>> when the spatial.error value is set to "b" (a spatial panel lag model
>>> always return a logLik value). I tried a bit to dig into the codes,
>>> but didn't find much that can answer my question.
>>>
>>> Thank you.
>>>
>>> Best,
>>>
>>> Danlin

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

test.R (44K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: logLik value of the spml spatial panel model

Danlin Yu
Dear Jeremie:

That worked! Thank you very much for the addition.

Best,

Danlin


On 2018/10/25 1:27, Jeremie Juste wrote:

> Hello,
>
> Indeed the Loglik was not returned here by the function sarpanelerror
> here. I have provided a patch (attached). It's an ugly one but better
> than nothing. So instead of running spml you could run test..spml after
> sourcing the file to obtain the fespaterr$logLik.
>
> fespaterr <- test..spml(fm, data = Produc, listw = mat2listw(usaww),
>                     model="within", spatial.error="b", Hess = FALSE)
>
>
> The only modification I've made is in the function test..(sperrorlm)
> where I've added ll=LL in the list returned.
>
>
> Hope it helps,
>
> Jeremie
>
>
>
>
>
>
>> Dear Jeremie:
>>
>> Thank you for the response. I actually only copied the scripts from
>> the spml help page, reproduced here:
>>
>> fm <- log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp
>> ## the two standard specifications (SEM and SAR) one with FE
>> ## and the other with RE:
>> ## fixed effects panel with spatial errors
>> fespaterr <- spml(fm, data = Produc, listw = mat2listw(usaww),
>>                     model="within", spatial.error="b", Hess = FALSE) #
>> doesn't matter if I set Hess = T or F here, and doesn't matter if I
>> set spatial.error = "b" or "kkp"
>>
>> And when I want to check the logLik value:
>>
>> fespaterr$logLik
>>
>> I got the "NULL" value
>>
>> I checked this with some other data sets, and found that if I am using
>> the spatial lag specification, I usually got a value for the logLik
>> parameter. If, however, I use the spatial error specification, I
>> usually got the "NULL" value for the logLik parameter. I was not able
>> to get to the bottom of the issue by digging into the codes a bit. Any
>> leads would be greatly appreciated.
>>
>> Best,
>>
>> Danlin
>>
>> On 2018/10/24 15:30, Jeremie Juste wrote:
>>> Danlin Yu <[hidden email]> writes:
>>>
>>>
>>> Hello,
>>>
>>> Could you post the exact command you have used with all the relevant
>>> options? If you dug into the code then you've noticed quite a lot of
>>> nested control structures so a clear idea of your commands might be
>>> useful here.
>>>
>>> for instance
>>>
>>>       fm <- logc ~ logp+ logpn + logy
>>>       sarpool <-  suppressWarnings(splm::spml(fm,cigar,
>>>                                               listw=lwcig,
>>>                                               model="pooling",
>>>       spatial.error="none",lag=TRUE,index=c("region","time")))
>>>
>>> Will produce the logLik
>>>       sarpool$logLik
>>>
>>>
>>>   From what I've understood at some point the function <nlminb> is always
>>> called so a likelihood value is always produced although not always
>>> returned.
>>>
>>>
>>> Best regards,
>>>
>>> Jeremie
>>>
>>>
>>>
>>>> Dear List:
>>>>
>>>> In a recent attempt to compare spatial panel models using splm
>>>> package, I intend to use the logLik value that was produced by the
>>>> spml() routine. When I ran the model, I realize that the logLik value
>>>> is not always produced, especially when the spatial.error is set to
>>>> "b", a NULL value is returned. I know I must have missed something
>>>> here, but can anyone point out why the logLik value is not returned
>>>> when the spatial.error value is set to "b" (a spatial panel lag model
>>>> always return a logLik value). I tried a bit to dig into the codes,
>>>> but didn't find much that can answer my question.
>>>>
>>>> Thank you.
>>>>
>>>> Best,
>>>>
>>>> Danlin

--
___________________________________________
Danlin Yu, Ph.D.
Professor of GIS and Urban Geography
Department of Earth & Environmental Studies
Montclair State University
Montclair, NJ, 07043
Tel: 973-655-4313
Fax: 973-655-4072
Office: CELS 314
Email: [hidden email]
webpage: csam.montclair.edu/~yu


        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: logLik value of the spml spatial panel model

Roger Bivand
Administrator
In reply to this post by Jeremie Juste
On Thu, 25 Oct 2018, Jeremie Juste wrote:

> Hello,
>
> Indeed the Loglik was not returned here by the function sarpanelerror
> here. I have provided a patch (attached). It's an ugly one but better
> than nothing. So instead of running spml you could run test..spml after
> sourcing the file to obtain the fespaterr$logLik.
>
> fespaterr <- test..spml(fm, data = Produc, listw = mat2listw(usaww),
>                   model="within", spatial.error="b", Hess = FALSE)
>
>
> The only modification I've made is in the function test..(sperrorlm)
> where I've added ll=LL in the list returned.

Good, thanks! And good that Danlin reported that your addition of the
value to the returned object appeared to work for him. I've added the splm
maintainers to this reply. If you can produce a patch file using diff, it
would be easier to add the extra returned value. It may be, however, that
there was a reason for omitting it, so checks to verify that it actually
is a logLik value on the same basis as other logLik values (not from an
abbreviated log-likelihood function used for fitting by omitting
constants) would be helpful. It would be good to provide logLik methods
for the ML fitted model objects.

Again thanks for a good example of collaboration to benifit us all.

Roger

>
>
> Hope it helps,
>
> Jeremie
>
>
>
>

--
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; e-mail: [hidden email]
http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Roger Bivand
Department of Economics
Norwegian School of Economics
Helleveien 30
N-5045 Bergen, Norway
Reply | Threaded
Open this post in threaded view
|

Re: R: logLik value of the spml spatial panel model

Danlin Yu
This is great response. Thank you all, Giovanni, Roger and Jeremie.
Based on the response, it seems that the LL element for fixed effect
model is only useful for optimization, but not cross model comparison?
The fixed effect spatial lag panel model, however, does produce the LL
value. Does that mean this LL value shall not be used for model
comparison purpose as well?

Thank you all.

Best,

Danlin


On 2018/10/25 8:46, Millo Giovanni wrote:

> Hello. Thanks for keeping us posted.
>
> As was aptly observed, while RE and pooled models do actually have a logLik element, FE ones don't but there's a reason. While it is not difficult to output the  LL for the FE models too, like Jeremie did (or perhaps even setting quiet=FALSE and taking the last loglikelihood value from optimization), we never managed to decide whether outputting this is appropriate or not. In fact the LL element from the procedure is relative to the "pooled" model on demeaned data, so it is sort of a crossbred likelihood; most people asking for it want it to compare to the LL of the random effects model or similar uses, which I would not advise.
>
> Gianfranco (author of the FE stuff) do please step in if appropriate.
> Best,
> Giovanni
>
> -----Messaggio originale-----
> Da: Jeremie Juste [mailto:[hidden email]]
> Inviato: giovedì 25 ottobre 2018 11:21
> A: Roger Bivand
> Cc: Danlin Yu; [hidden email]; Millo Giovanni; Gianfranco Piras
> Oggetto: Re: [R-sig-Geo] logLik value of the spml spatial panel model
>
>
> Hello,
>
> Thanks for the feedback.
>
> Here is the diff. It is my first one so I'm not sure I'm doing everything right. :-)
>
>
> modified   R/likelihoodsFE.R
> @@ -459,7 +459,7 @@ if(Hess) asyv <- NULL  else asyv <- asyv
>
>
> -       return<-list(coeff=betas, rho = rho, s2 = s2, rest.se = rest.se, rho.se = rho.se, s2.se = s2.se, asyvar1=asyvar1, residuals = r, asyv = asyv)
> +    return<-list(coeff=betas, rho = rho, s2 = s2, rest.se = rest.se,
> + rho.se = rho.se, s2.se = s2.se, ll=LL, asyvar1=asyvar1, residuals = r,
> + asyv = asyv)
>   }
>
> I have compressed splm with the modification with the .git inside. I have installed the modified package again and checked that the modification worked.
>
>> fespaterr <- spml(fm, data = Produc, listw = mat2listw(usaww),
>> model="within", spatial.error="b", Hess = FALSE) fespaterr$logLik
>
>> It may be,however, that there was a reason for omitting it, so checks
>> to verify that it actually is a logLik value on the same basis as
>> other logLik values (not from an abbreviated log-likelihood function
>> used for fitting by omitting constants) would be helpful. It would be
>> good to provide logLik methods for the ML fitted model objects.
> I have checked that it is the logLik that correspond to the estimation of the rho.
>
> Best regards,
>
> Jeremie
>
>
>
>
> Ai sensi del Reg. UE 2016/679 e normativa vigente si precisa che le informazioni contenute in questo messaggio sono riservate ed a uso esclusivo del destinatario. Qualora il messaggio in parola Le fosse pervenuto per errore, La invitiamo ad eliminarlo senza copiarlo e a non inoltrarlo a terzi, dandocene gentilmente comunicazione. Grazie.
>
> Pursuant to Italian Law and EU Reg. 2016/679, you are hereby informed that this message contains confidential information intended only for the use of the addressee. If you are not the addressee, and have received this message by mistake, please delete it and immediately notify us. You may not copy or disseminate this message to anyone. Thank you.

--
___________________________________________
Danlin Yu, Ph.D.
Professor of GIS and Urban Geography
Department of Earth & Environmental Studies
Montclair State University
Montclair, NJ, 07043
Tel: 973-655-4313
Fax: 973-655-4072
Office: CELS 314
Email: [hidden email]
webpage: csam.montclair.edu/~yu

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Reply | Threaded
Open this post in threaded view
|

Re: logLik value of the spml spatial panel model

Danlin Yu
Dear Dr. Piras: This is great. Thank you very much for the response.

Best,

Danlin


On 2018/11/14 16:32, Gianfranco Piras wrote:

> Sorry for the very slow reply. I was  looking back at the email exchange and this problem sounded familiar.
>
> I have had another user contacting me because he was experiencing the same issue with the pooled model. He also compared the value of the likelihood from R with the value that he was obtaining with codes in Matlab (in the spatial econometrics toolbox).  Anyway, Roger was right when he said that the log-likelihood  from the "fix” was calculated omitting constants. I fixed this specific problem a long time ago, but since the email that was sent to me by the other user had several  other questions (which I didn’t had time to address),  I never committed the new version on R-forge.
>
> Anyway, here is a script and the updated package. I will try to get to the other questions asap and finally upload to CRAN.
>
> Sorry  for any inconvenience related to my delay!
>
> Best,
> G.
>
>
>
>
>      
>
>
>
>> On Oct 25, 2018, at 10:56 AM, Millo Giovanni <[hidden email]> wrote:
>>
>> Correct. It should not be used for comparing FE to anything else. In particular, comparisons between FE and RE specifications have to concentrate on the treatment of the individual effects.
>>
>> Best, Giovanni
>>
>> -----Messaggio originale-----
>> Da: Danlin Yu [mailto:[hidden email]]
>> Inviato: giovedì 25 ottobre 2018 16:54
>> A: Millo Giovanni; Jeremie Juste; Roger Bivand
>> Cc: [hidden email]; Gianfranco Piras
>> Oggetto: Re: R: [R-sig-Geo] logLik value of the spml spatial panel model
>>
>> This is great response. Thank you all, Giovanni, Roger and Jeremie.
>> Based on the response, it seems that the LL element for fixed effect
>> model is only useful for optimization, but not cross model comparison?
>> The fixed effect spatial lag panel model, however, does produce the LL
>> value. Does that mean this LL value shall not be used for model
>> comparison purpose as well?
>>
>> Thank you all.
>>
>> Best,
>>
>> Danlin
>>
>>
>> On 2018/10/25 8:46, Millo Giovanni wrote:
>>> Hello. Thanks for keeping us posted.
>>>
>>> As was aptly observed, while RE and pooled models do actually have a logLik element, FE ones don't but there's a reason. While it is not difficult to output the  LL for the FE models too, like Jeremie did (or perhaps even setting quiet=FALSE and taking the last loglikelihood value from optimization), we never managed to decide whether outputting this is appropriate or not. In fact the LL element from the procedure is relative to the "pooled" model on demeaned data, so it is sort of a crossbred likelihood; most people asking for it want it to compare to the LL of the random effects model or similar uses, which I would not advise.
>>>
>>> Gianfranco (author of the FE stuff) do please step in if appropriate.
>>> Best,
>>> Giovanni
>>>
>>> -----Messaggio originale-----
>>> Da: Jeremie Juste [mailto:[hidden email]]
>>> Inviato: giovedì 25 ottobre 2018 11:21
>>> A: Roger Bivand
>>> Cc: Danlin Yu; [hidden email]; Millo Giovanni; Gianfranco Piras
>>> Oggetto: Re: [R-sig-Geo] logLik value of the spml spatial panel model
>>>
>>>
>>> Hello,
>>>
>>> Thanks for the feedback.
>>>
>>> Here is the diff. It is my first one so I'm not sure I'm doing everything right. :-)
>>>
>>>
>>> modified   R/likelihoodsFE.R
>>> @@ -459,7 +459,7 @@ if(Hess) asyv <- NULL  else asyv <- asyv
>>>
>>>
>>> -       return<-list(coeff=betas, rho = rho, s2 = s2, rest.se = rest.se, rho.se = rho.se, s2.se = s2.se, asyvar1=asyvar1, residuals = r, asyv = asyv)
>>> +    return<-list(coeff=betas, rho = rho, s2 = s2, rest.se = rest.se,
>>> + rho.se = rho.se, s2.se = s2.se, ll=LL, asyvar1=asyvar1, residuals = r,
>>> + asyv = asyv)
>>>   }
>>>
>>> I have compressed splm with the modification with the .git inside. I have installed the modified package again and checked that the modification worked.
>>>
>>>> fespaterr <- spml(fm, data = Produc, listw = mat2listw(usaww),
>>>> model="within", spatial.error="b", Hess = FALSE) fespaterr$logLik
>>>> It may be,however, that there was a reason for omitting it, so checks
>>>> to verify that it actually is a logLik value on the same basis as
>>>> other logLik values (not from an abbreviated log-likelihood function
>>>> used for fitting by omitting constants) would be helpful. It would be
>>>> good to provide logLik methods for the ML fitted model objects.
>>> I have checked that it is the logLik that correspond to the estimation of the rho.
>>>
>>> Best regards,
>>>
>>> Jeremie
>>>
>>>
>>>
>>>
>>> Ai sensi del Reg. UE 2016/679 e normativa vigente si precisa che le informazioni contenute in questo messaggio sono riservate ed a uso esclusivo del destinatario. Qualora il messaggio in parola Le fosse pervenuto per errore, La invitiamo ad eliminarlo senza copiarlo e a non inoltrarlo a terzi, dandocene gentilmente comunicazione. Grazie.
>>>
>>> Pursuant to Italian Law and EU Reg. 2016/679, you are hereby informed that this message contains confidential information intended only for the use of the addressee. If you are not the addressee, and have received this message by mistake, please delete it and immediately notify us. You may not copy or disseminate this message to anyone. Thank you.
>> --
>> ___________________________________________
>> Danlin Yu, Ph.D.
>> Professor of GIS and Urban Geography
>> Department of Earth & Environmental Studies
>> Montclair State University
>> Montclair, NJ, 07043
>> Tel: 973-655-4313
>> Fax: 973-655-4072
>> Office: CELS 314
>> Email: [hidden email]
>> webpage: csam.montclair.edu/~yu
>>

--
___________________________________________
Danlin Yu, Ph.D.
Professor of GIS and Urban Geography
Department of Earth & Environmental Studies
Montclair State University
Montclair, NJ, 07043
Tel: 973-655-4313
Fax: 973-655-4072
Office: CELS 314
Email: [hidden email]
webpage: csam.montclair.edu/~yu


        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo