Title: | Inhomogeneous Poisson Point Processes |
---|---|
Description: | Generates random numbers corresponding to the events on a Poisson point process with changing event rates. This includes the possibility to incorporate additional information such as the number of events occurring or the location of an already known event. It can also generate the probability density functions of specific events in the cases where additional information is available. Based on Hohmann (2019) <arXiv:1901.10754>. |
Authors: | Niklas Hohmann |
Maintainer: | Niklas Hohmann <[email protected]> |
License: | CC BY 4.0 |
Version: | 1.1 |
Built: | 2024-11-16 03:18:24 UTC |
Source: | https://github.com/cran/IPPP |
Generates random numbers corresponding to the events on a Poisson point process with changing event rates. This includes the possibility to incorporate additional information such as the number of events occurring or the location of an already known event. It can also generate the probability density functions of specific events in the cases where additional information is available. Based on Hohmann (2019) <arXiv:1901.10754>.
The DESCRIPTION file:
Package: | IPPP |
Type: | Package |
Title: | Inhomogeneous Poisson Point Processes |
Version: | 1.1 |
Date: | 2019-05-21 |
Author: | Niklas Hohmann |
Maintainer: | Niklas Hohmann <[email protected]> |
Description: | Generates random numbers corresponding to the events on a Poisson point process with changing event rates. This includes the possibility to incorporate additional information such as the number of events occurring or the location of an already known event. It can also generate the probability density functions of specific events in the cases where additional information is available. Based on Hohmann (2019) <arXiv:1901.10754>. |
License: | CC BY 4.0 |
Depends: | stats |
Suggests: | knitr, rmarkdown |
VignetteBuilder: | knitr |
NeedsCompilation: | no |
Packaged: | 2019-05-21 11:02:45 UTC; nick |
Date/Publication: | 2019-05-21 12:00:08 UTC |
Repository: | https://niklashohmann.r-universe.dev |
RemoteUrl: | https://github.com/cran/IPPP |
RemoteRef: | HEAD |
RemoteSha: | 594b12330048b74c257dd028888f550996d823fd |
Index of help topics:
IPPP-package Inhomogeneous Poisson Point Processes IPPPcond Simulate Location of Events for a Fixed Number of Events IPPPconddens Conditional Probability Density Given the Location of one Event IPPPcondrandnum Generate Events Relative to a Known Event of an Inhomogeneous Poisson Point Process IPPPinterval Simulate the Number of Events in an Interval IPPPnthpointdens Probability Density of Events in an Inhomogeneous Poisson Point Process IPPPuncond Simulate Events according to an Inhomogeneous Poisson Point Process
Further information is available in the following vignettes:
IPPP |
IPPP (source, pdf) |
For the vignette, use vignette("IPPP")
Niklas Hohmann
Maintainer: Niklas Hohmann <[email protected]>
Hohmann, Niklas. "Conditional Densities and Simulations of Inhomogeneous Poisson Point Processes: The R package "IPPP"" arXiv 2019. <arXiv:1901.10754>
Returns a vector of random numbers that correspond to the location of events of an inhomogeneous Poisson point process (IPPP) in the case that the number of events is fixed.
The IPPP is described by a rate function r.
IPPPcond(samplesize, xrate, yrate, rnpr = 100)
IPPPcond(samplesize, xrate, yrate, rnpr = 100)
samplesize |
Natural number. The number of events occurring |
xrate |
Vector of (strictly increasing) real numbers |
yrate |
Vector of positive real numbers of the same length as xrate. The vectors xrate and yrate form the rate function r in the sense that r=approxfun(xrate,yrate) |
rnpr |
OPTIONAL, default is 100. The number of random numbers used per run in the loop of the rejection method. For details see the corresponding preprint |
Below min(xrate) and above max(xrate), the rate function r is assumed to have the value zero.
A vector of length samplesize, containing the locations of the simulated events
Niklas Hohmann
Hohmann, Niklas. "Conditional Densities and Simulations of Inhomogeneous Poisson Point Processes: The R package "IPPP"" arXiv 2019. <arXiv:1901.10754>
IPPPuncond
for the unconditioned version with a random number of events occurring.
vignette("IPPP")
for an overview of the features of the IPPP package and some background.
#define rate function sx=1:5 sy=c(0,1,1,3,0) sm=c(1,0,1,0,-1) xrate=seq(1,5,length.out=100) yrate=splinefunH(sx,sy,sm)(xrate) #plot rate function plot(xrate,yrate,type='l',xlim=c(0.5,5.5), main='Rate Function') #simulate location of 5 events: samplesize=5 p5=IPPPcond(samplesize,xrate,yrate) points(p5,rep(0,samplesize),cex=2) #plot results #simulate location of 30 events samplesize=30 p30=IPPPcond(samplesize,xrate,yrate) points(p30,rep(1,samplesize),cex=2,pch=3) #compare with former results
#define rate function sx=1:5 sy=c(0,1,1,3,0) sm=c(1,0,1,0,-1) xrate=seq(1,5,length.out=100) yrate=splinefunH(sx,sy,sm)(xrate) #plot rate function plot(xrate,yrate,type='l',xlim=c(0.5,5.5), main='Rate Function') #simulate location of 5 events: samplesize=5 p5=IPPPcond(samplesize,xrate,yrate) points(p5,rep(0,samplesize),cex=2) #plot results #simulate location of 30 events samplesize=30 p30=IPPPcond(samplesize,xrate,yrate) points(p30,rep(1,samplesize),cex=2,pch=3) #compare with former results
Given knowledge of the location of one event, this function determines the probability density function (pdf) of the distribution of the n-th point above/below the known event.
IPPPconddens(x, pointlocation, xrate, yrate, nthpoint = 1, mode = "forward")
IPPPconddens(x, pointlocation, xrate, yrate, nthpoint = 1, mode = "forward")
x |
Points at which the values of the pdf are determined |
pointlocation |
Location of the known event |
xrate |
Vector of (strictly increasing) real numbers |
yrate |
Vector of strictly positive real numbers of the same length as xrate. The vectors xrate and yrate form the rate function r in the sense that r=approxfun(xrate,yrate) |
nthpoint |
OPTIONAL, default is 1. Setting this to a value i will determine the pdf of the ith event above/below the event at the position pointlocation. |
mode |
OPTIONAL, default is "forward". Determines whether the pdf for points above(right) the known event is determined (mode="forward"), or whether the pdf for points below(left) the known event is determined (mode="backward") |
The value of the rate function r below min(xrate) is set to r(min(xrate)), and for values above max(xrate) it is set to r(max(xrate)). Both r(min(xrate)) and r(max(xrate)) need to be strictly positive for the results to be correct.
Returns a list containing two entries:
x |
Duplicate of the input of the same name |
densval |
Vector consisting of the values of the conditional probability density, evaluated at x |
Niklas Hohmann
Hohmann, Niklas. "Conditional Densities and Simulations of Inhomogeneous Poisson Point Processes: The R package "IPPP"" arXiv 2019. <arXiv:1901.10754>
IPPPnthpointdens
for the probability density of the location of the of the n-th event, given that a fixed number of events occur.
vignette("IPPP")
for an overview of the features of the IPPP package and some background.
#define rate function xrate=seq(0,2*pi,length.out=1000) yrate=sin(xrate)+1.01 plot(xrate,yrate,type="l",main="Rate Function") #define known event: pointlocation=3 lines(c(3,3),c(0,3),lwd=3) #values where the density is calulated: x=xrate #simulate the pdf of the event above the known event: r1=IPPPconddens(x,pointlocation,xrate,yrate) lines(r1$x,r1$densval,col="red",lwd=3) #simulate the pdf of the event below the known event: r2=IPPPconddens(x,pointlocation,xrate,yrate,mode="backward") lines(r2$x,r2$densval,col="blue",lwd=3) #simulate the pdf of the third event below the known event: r2=IPPPconddens(x,pointlocation,xrate,yrate,mode="backward",nthpoint=3) lines(r2$x,r2$densval,col="green",lwd=3)
#define rate function xrate=seq(0,2*pi,length.out=1000) yrate=sin(xrate)+1.01 plot(xrate,yrate,type="l",main="Rate Function") #define known event: pointlocation=3 lines(c(3,3),c(0,3),lwd=3) #values where the density is calulated: x=xrate #simulate the pdf of the event above the known event: r1=IPPPconddens(x,pointlocation,xrate,yrate) lines(r1$x,r1$densval,col="red",lwd=3) #simulate the pdf of the event below the known event: r2=IPPPconddens(x,pointlocation,xrate,yrate,mode="backward") lines(r2$x,r2$densval,col="blue",lwd=3) #simulate the pdf of the third event below the known event: r2=IPPPconddens(x,pointlocation,xrate,yrate,mode="backward",nthpoint=3) lines(r2$x,r2$densval,col="green",lwd=3)
Given knowledge of the location of one event from an inhomogeneous Poisson point process (IPPP), this function determines random numbers corresponding to the location of the n-th event above/below the known event.
The IPPP is described by a rate function r.
IPPPcondrandnum(pointlocation, xrate, yrate, no = 1, nthpoint = 1, mode = "forward")
IPPPcondrandnum(pointlocation, xrate, yrate, no = 1, nthpoint = 1, mode = "forward")
pointlocation |
Location of the known event |
xrate |
Vector of (strictly increasing) real numbers |
yrate |
Vector of strictly positive real numbers of the same length as xrate. The vectors xrate and yrate form the rate function r in the sense that r=approxfun(xrate,yrate) |
no |
OPTIONAL, default is 1. The number of random events to generate |
nthpoint |
OPTIONAL, default is 1. Setting this to a value i will simulate the location of the ith event above/below the event at the position pointlocation |
mode |
OPTIONAL, default is "forward". Determines whether the pdf for points above(right) the known event is determined (mode="forward""), or whether the pdf for points below(left) the known event is determined (mode="backward"") |
The value of rate function r below min(xrate) is set to r(min(xrate)), and for values above max(xrate) it is set to r(max(xrate)). Both r(min(xrate)) and r(max(xrate)) need to be strictly positive for the results to be correct.
Vector of length no, containing the locations of the simulated events.
Niklas Hohmann
Hohmann, Niklas. "Conditional Densities and Simulations of Inhomogeneous Poisson Point Processes: The R package "IPPP"" arXiv 2019. <arXiv:1901.10754>
vignette("IPPP")
for an overview of the features of the IPPP package and some background.
#define rate function xrate=seq(0,2*pi,length.out=1000) yrate=sin(xrate)+1.01 plot(xrate,yrate,type="l",main="Rate Function") #define known event: pointlocation=3 lines(c(3,3),c(0,3),lwd=3) #values where the density is calulated: x=xrate #simulate the next point above the known event: p1=IPPPcondrandnum(pointlocation, xrate,yrate) points(p1,0.5,pch=1,cex=2) #simulate 10 times the next event below the known location: p2=IPPPcondrandnum(pointlocation, xrate,yrate,no=10,mode="backward") points(p2,rep(1,length(p2)),cex=2,pch=2) #simulate the second point above the known event: p3=IPPPcondrandnum(pointlocation, xrate,yrate,no=1,nthpoint=2) points(p3,1.5,cex=2,pch=3) #might be out of the plot
#define rate function xrate=seq(0,2*pi,length.out=1000) yrate=sin(xrate)+1.01 plot(xrate,yrate,type="l",main="Rate Function") #define known event: pointlocation=3 lines(c(3,3),c(0,3),lwd=3) #values where the density is calulated: x=xrate #simulate the next point above the known event: p1=IPPPcondrandnum(pointlocation, xrate,yrate) points(p1,0.5,pch=1,cex=2) #simulate 10 times the next event below the known location: p2=IPPPcondrandnum(pointlocation, xrate,yrate,no=10,mode="backward") points(p2,rep(1,length(p2)),cex=2,pch=2) #simulate the second point above the known event: p3=IPPPcondrandnum(pointlocation, xrate,yrate,no=1,nthpoint=2) points(p3,1.5,cex=2,pch=3) #might be out of the plot
Generates random numbers that correspond to the number of events of an inhomogeneous Poisson point process (IPPP) in a given interval.
The IPPP is described by a rate function r.
IPPPinterval(from, to, xrate, yrate, no = 1, expsamplesize = NULL)
IPPPinterval(from, to, xrate, yrate, no = 1, expsamplesize = NULL)
from |
Real number, describing the lower boundary of the interval of interest |
to |
Real number larger than from, describing the upper boundary of the interval of interest |
xrate |
Vector of (strictly increasing) real numbers |
yrate |
Vector of positive real numbers of the same length as xrate. The vectors xrate and yrate form the rate function r in the sense that r=approxfun(xrate,yrate) |
no |
OPTIONAL, default is 1. The number of times the random number is determined |
expsamplesize |
OPTIONAL, default is NULL. Setting this parameter to a numeric value changes the average number of events generated by the IPPP as a whole to the chosen value. The number of events in the interval changes accordingly |
Below min(xrate) and above max(xrate), the rate function r is assumed to have the value zero.
Vector of length no, whose i-th entry contains the number of events in the interval generated in the i-th run.
Niklas Hohmann
Hohmann, Niklas. "Conditional Densities and Simulations of Inhomogeneous Poisson Point Processes: The R package "IPPP"" arXiv 2019. <arXiv:1901.10754>
vignette("IPPP")
for an overview of the features of the IPPP package and some background.
#determine rate function sx=1:5 sy=c(0,1,1,3,0) sm=c(1,0,1,0,-1) xrate=seq(1,5,length.out=100) yrate=splinefunH(sx,sy,sm)(xrate) #plot rate function plot(xrate,yrate,type='l',xlim=c(0.5,5.5), main='Rate Function') #determine no of events between 3 and 6 from=3 to=5 lines(c(from,from),c(0,10)) #mark interval in the plot lines(c(to,to),c(0,10)) #simulate the number of events in the interval [from, to] IPPPinterval(from,to,xrate,yrate) #simulate the number of events in the interval [from, to] #rescale so that the whole rate function will on average generate 200 events: IPPPinterval(from,to,xrate,yrate,expsamplesize=200) #now more events occur in the interval [from, to]! #Make 20 repetitions of the upper simulation IPPPinterval(from,to,xrate,yrate,no=20,expsamplesize=200)
#determine rate function sx=1:5 sy=c(0,1,1,3,0) sm=c(1,0,1,0,-1) xrate=seq(1,5,length.out=100) yrate=splinefunH(sx,sy,sm)(xrate) #plot rate function plot(xrate,yrate,type='l',xlim=c(0.5,5.5), main='Rate Function') #determine no of events between 3 and 6 from=3 to=5 lines(c(from,from),c(0,10)) #mark interval in the plot lines(c(to,to),c(0,10)) #simulate the number of events in the interval [from, to] IPPPinterval(from,to,xrate,yrate) #simulate the number of events in the interval [from, to] #rescale so that the whole rate function will on average generate 200 events: IPPPinterval(from,to,xrate,yrate,expsamplesize=200) #now more events occur in the interval [from, to]! #Make 20 repetitions of the upper simulation IPPPinterval(from,to,xrate,yrate,no=20,expsamplesize=200)
Determines values of the probability density function of the n-th point of an inhomogeneous Poisson point process (IPPP), given that a fixed number of events occur. The IPPP is described by a rate function r.
IPPPnthpointdens(x, n, samplesize, xrate, yrate)
IPPPnthpointdens(x, n, samplesize, xrate, yrate)
x |
Vector of real numbers where the value of the probability density is determined |
n |
Natural number smaller than samplesize. Determines the event for which the probability density is determined. 1=first event from the left, i=i-th event from the left. |
samplesize |
Natural number. The overall number of events occurring |
xrate |
Vector of (strictly increasing) real numbers |
yrate |
Vector of positive real numbers of the same length as xrate. The vectors xrate and yrate form the rate function r in the sense that r=approxfun(xrate,yrate) |
Below min(xrate) and above max(xrate), the rate function r is assumed to have the value zero.
A list containing two entries:
x |
A duplicate of the input of the same name |
densval |
A vector consisting of the values of the probability density, evaluated at x |
Niklas Hohmann
Hohmann, Niklas. "Conditional Densities and Simulations of Inhomogeneous Poisson Point Processes: The R package "IPPP"" arXiv 2019. <arXiv:1901.10754>
IPPPconddens
for the probability density of the n-th event above/below the location of some given event.
vignette("IPPP")
for an overview of the features of the IPPP package and some background.
sx=c(1,2,3,4,5) sy=c(0,1,1,3,0) sm=c(1,0,1,0,-1) xrate=seq(1,5,length.out=100) yrate=splinefunH(sx,sy,sm)(xrate) #plot rate function plot(xrate,yrate,type='l',xlim=c(0.5,5.5), main='Rate Function') x=seq(0,6,length.out = 1000) #point where the pdf is determined n=1 #get the pdf of the first point from the left ... samplesize=5 #... out of a sample of five ll=IPPPnthpointdens(x,n,samplesize,xrate,yrate) plot(ll$x,ll$densval,type='l') #plot the resulting pdf legend('topleft',legend=paste('pdf of point no.',as.character(n), 'out of ',as.character(samplesize)), 'points' ,lty=1)
sx=c(1,2,3,4,5) sy=c(0,1,1,3,0) sm=c(1,0,1,0,-1) xrate=seq(1,5,length.out=100) yrate=splinefunH(sx,sy,sm)(xrate) #plot rate function plot(xrate,yrate,type='l',xlim=c(0.5,5.5), main='Rate Function') x=seq(0,6,length.out = 1000) #point where the pdf is determined n=1 #get the pdf of the first point from the left ... samplesize=5 #... out of a sample of five ll=IPPPnthpointdens(x,n,samplesize,xrate,yrate) plot(ll$x,ll$densval,type='l') #plot the resulting pdf legend('topleft',legend=paste('pdf of point no.',as.character(n), 'out of ',as.character(samplesize)), 'points' ,lty=1)
Generates random numbers corresponding to the locations of events of an inhomogeneous Poisson point process (IPPP). The IPPP is described by a rate function r.
IPPPuncond(xrate, yrate, expsamplesize = NULL, rnpr = 100)
IPPPuncond(xrate, yrate, expsamplesize = NULL, rnpr = 100)
xrate |
Vector of (strictly increasing) real numbers |
yrate |
Vector of positive real numbers of the same length as xrate. The vectors xrate and yrate form the rate function r in the sense that r=approxfun(xrate,yrate) |
expsamplesize |
OPTIONAL, default is NULL. If this variable is set to a numeric value, it determines the average number of events occurring |
rnpr |
OPTIONAL, default is 100. The number of random numbers used per run in the loop of the rejection method. For more details see the corresponding preprint |
Below min(xrate) and above max(xrate), the rate function r is assumed to have the value zero.
A vector of variable length, containing the generated locations of the events. If no events occur, the output is numeric(0)
Niklas Hohmann
Hohmann, Niklas. "Conditional Densities and Simulations of Inhomogeneous Poisson Point Processes: The R package "IPPP"" arXiv 2019. <arXiv:1901.10754>
IPPPuncond
for a version with a fixed number of events occurring.
vignette("IPPP")
for an overview of the features of the IPPP package and some background.
#Define rate function sx=1:5 sy=c(0,1,1,3,0) sm=c(1,0,1,0,-1) xrate=seq(1,5,length.out=100) yrate=splinefunH(sx,sy,sm)(xrate) #plot rate function plot(xrate,yrate,type='l',xlim=c(0.5,5.5), main='Rate Function') p=IPPPuncond(xrate,yrate) #simulate one set of events points(p,rep(0,length(p)),cex=2) #plot results #simulate location of events with the expected number of events being 20 expsamplesize=20 pp=IPPPuncond(xrate,yrate,expsamplesize) length(pp) #in most cases, the result is not exactely 20 points(pp,rep(1,length(pp)),cex=2,pch=3) #compare with former results
#Define rate function sx=1:5 sy=c(0,1,1,3,0) sm=c(1,0,1,0,-1) xrate=seq(1,5,length.out=100) yrate=splinefunH(sx,sy,sm)(xrate) #plot rate function plot(xrate,yrate,type='l',xlim=c(0.5,5.5), main='Rate Function') p=IPPPuncond(xrate,yrate) #simulate one set of events points(p,rep(0,length(p)),cex=2) #plot results #simulate location of events with the expected number of events being 20 expsamplesize=20 pp=IPPPuncond(xrate,yrate,expsamplesize) length(pp) #in most cases, the result is not exactely 20 points(pp,rep(1,length(pp)),cex=2,pch=3) #compare with former results