AIC/R^2 in splm

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

AIC/R^2 in splm

Maryia Bakhtsiyarava
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".

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.

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.

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
Reply | Threaded
Open this post in threaded view
|

Re: AIC/R^2 in splm

Tobias Rüttenauer

> -----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.html

There 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