> -----Ursprüngliche Nachricht-----

> Von: R-sig-Geo [mailto:

[hidden email]] Im Auftrag von

> Maryia Bakhtsiyarava

> Gesendet: Montag, 15. Februar 2016 03:59

> An: R-sig-geo Mailing List <

[hidden email]>

> Betreff: [R-sig-Geo] AIC/R^2 in splm

>

> Dear list members,

>

> I am estimating a spatial lag model with time-period fixed effects using

> package splm. I would like to obtain some goodness-of-fit measures for my

> models but I cannot figure out how to do it. The traditional AIC

extraction

> function doesn't work for a an object of class "splm".

Most extract functions do not support "splm" class. You can try to access

the functions for objects of a similar class and rearrange it for splm.

>

> The only thing I can extract is the log likelihood, using which in theory

I can

> calculate AIC, but even in that case I am not sure about the degrees of

> freedom to use in the calculation (do I count time dummies, lag and

intercept

> as parameters?). I tried df.residual(model) but I got NULL.

If you use the same data for different models (having the same number of

time dummies), it does not matter if you include or exclude these dummies.

>

> Is there another way to obtain AIC and/or R^2? I am sure people

> encountered this problem before, so if you have any advice on how to

obtain

> model statistics, I would greatly appreciate it.

If you receive the log Likelihood in your spml model output (

summary(fesar.mod)$logLik ), you can use the following function to calculate

the AIC (it includes the spatial lag as one parameter and the spatial error

as one parameter):

#### AIC function for spml ####

godf.spml<-function(object, k=2, criterion=c("AIC", "BIC"), ...){

s<-summary(object)

l<-s$logLik[1,1]

np<- length(coef(s))

N<- nrow(s$model)

if(criterion=="AIC"){

aic<- -2*l+k*np

names(aic)<-"AIC"

return(aic)

}

if(criterion=="BIC"){

bic<- -2*l+log(N)*np

names(bic)<-"BIC"

if(k!=2){

warning("parameter <k> not used for BIC")

}

return(bic)

}

}

Example:

require(splm)

fesar.mod<-spml(formula= y~x1+x2, data=data.pd, ...)

godf.spml(fesar.mod, criterion="AIC")

If your spml model output does not contain a value for logLik, see here how

to fix this:

http://r-sig-geo.2731867.n2.nabble.com/spml-and-logLik-help-td7581581.htmlThere is an R squared reported in the model output:

summary(fesar.mod)$rsqr

Unfortunately it is not documented what kind of (Pseudo)-R squared this is

(to my knowledge).

Best

Tobi

>

> Thank you,

> Maryia

> --

> Maryia Bakhtsiyarava

> Graduate student

> Department of Geography, Environment and Society University of

> Minnesota, Twin Cities

>

> Research Assistant

> TerraPop Project

> Minnesota Population Center

>

> 414 Social Sciences, 267 19th Ave S, Minneapolis, MN 55455

>

> [[alternative HTML version deleted]]

>

> _______________________________________________

> R-sig-Geo mailing list

>

[hidden email]
>

https://stat.ethz.ch/mailman/listinfo/r-sig-geo_______________________________________________

R-sig-Geo mailing list

[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo