Learn R Programming

Pomic (version 0.9.1)

Pomic-package: Pattern Oriented Modeling Information Criterion for ABM/IBM

Description

This package propose calculations of a non-parsimonious based information criterion to check the quality of simulations results of ABM/IBM or other non-linear rule-based models. The POMIC is based on the KL divergence and likelihood theory. These methods are still under development and further work are needed for the incorporation of model complexity measurement in the information criterion.

Arguments

Details

ll{ Package: Pomic Type: Package Version: 0.9.1 Date: 2008-22-08 License: GPL-2 } The pomic function is for distribution patterns. The pomic.timeseries is for autocorrelated patterns. The pomic.simple function is to obtain only the POMIC value. The pomic.corrected function is to obtain raw approximation of KL divergence for multiple patterns means. The analyse.pomics function is for secondary analysis of pomic results (weights of evidence and parameter averaging). The summarize.pomics function is for weights of evidence calculation from pomic results. The summarize.parameters function is for parameter averaging from weights of evidence.

References

Piou 2007, Patterns and individual-based modeling of spatial competition within two main components of Neotropical mangrove ecosystems. PhD thesis, University of Bremen. http://elib.suub.uni-bremen.de/diss/docs/00010671.pdf Piou et al. Proposing an information criterion for individual-based models developed in a pattern-oriented modeling framework. In preparation.

See Also

pomic analyse.pomics pomic.simple pomic.corrected pomic.timeseries

Examples

Run this code
#example of field pattern distribution:        
fieldpattern<-rnorm(100,10,5)
#model results:
model1runs<- rnorm(100*5,10.5,6)
model2runs<- rnorm(100*5,9.5,2)
#POMIC measurements:
pomic(fieldpattern,model1runs,eps=10^-20,plotting=TRUE)
pomic(fieldpattern,model2runs,eps=10^-20,plotting=TRUE)
pomic.simple(fieldpattern,model2runs,eps=10^-20)
pomic.corrected(fieldpattern,model1runs,eps=10^-20)
pomic.corrected(fieldpattern,model2runs,eps=10^-20)

#An analysis with random POMIC scores:
dataset<-data.frame(P1=rep(1:5,each=5),P2=rep(seq(0,5,length=5),5),
                    pomics=runif(25)*20)
analyse.pomics(dataset,c(1,2),3)

#example for time series patterns:
timeserie<-runif(100)+1:100-(seq(1,10,length=100)^2)
model<-NULL
for(i in 1:100){  
  model<-cbind(model,runif(100)+1:100-(seq(1,10,length=100)^2.01)) 
}
pomic.timeseries(timeserie,model,eps=10^-20,fullmsd=TRUE,
                  plotting=TRUE,half_window_size=10,
                  check_whole=TRUE,check_diffs=TRUE)

Run the code above in your browser using DataLab