The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
This vignette of package
groupedHyperframe.random
(Github,
RPubs)
documents the simulation of superimpose
d
ppp.object
and the groupedHyperframe
object.
Examples in this vignette require that the search
path
has
library(groupedHyperframe.random)
#> Loading required package: spatstat.random
#> Loading required package: spatstat.data
#> Loading required package: spatstat.univar
#> spatstat.univar 3.1-2
#> Loading required package: spatstat.geom
#> spatstat.geom 3.3-6.001
#> spatstat.random 3.3-3
#> Loading required package: groupedHyperframe
Term / Abbreviation | Description | Reference |
---|---|---|
Forward pipe operator | ?base::pipeOp introduced in R
4.1.0 |
|
CRAN , R |
The Comprehensive R Archive Network | https://cran.r-project.org |
coords |
\(x\)- and \(y\)-coordinates | spatstat.geom:::ppp |
diag |
Diagonal matrix | base::diag |
groupedHyperframe |
Grouped hyper data frame | groupedHyperframe::as.groupedHyperframe |
hypercolumns , hyperframe |
(Hyper columns of) hyper data frame | spatstat.geom::hyperframe |
marks , marked |
(Having) mark values | spatstat.geom::is.marked |
pmax |
Parallel maxima | base::pmax |
ppp , ppp.object |
Point pattern | spatstat.geom::ppp.object |
recycle |
Recycling | https://r4ds.had.co.nz/vectors.html#scalars-and-recycling-rules |
rlnorm |
Log normal random variable | stats::rlnorm |
rMatClust |
Matern’s cluster process | spatstat.random::rMatClust |
rmvnorm_ |
Multivariate normal random variable | groupedHyperframe.random::rmvnorm_ ;
MASS::mvrnorm |
rnbinom |
Negative binomial random variable | stats::rnbinom |
rpoispp |
Poisson point pattern | spatstat.random::rpoispp |
superimpose |
Superimpose | spatstat.geom::superimpose |
var , cor ,
cov |
Variance, correlation, covariance | stats::var , stats::cor ,
stats::cov |
This work is supported by NCI R01CA222847 (I. Chervoneva, T. Zhan, and H. Rui) and R01CA253977 (H. Rui and I. Chervoneva).
Function .rppp()
simulates superimpose
d
ppp.object
s with vectorized parameterization of
random point pattern and distribution of marks
.
marked
Point PatternExample below simulates a coords
-only,
unmarked
, two superimpose
d Matern’s cluster
processes \((\kappa, \mu, s) =
(10,8,.15)\) and \((5,4,.06)\).
marked
Point PatternExample below simulates two superimpose
d
marked
ppp
s,
Matern’s cluster process \((\kappa,\mu,s) = (10,8,.15)\), attached
with a log-normal mark
\((\mu,\sigma)=(3,.4)\), and a
negative-binomial mark
\((r,p)=(4,.3)\).
Matern’s cluster process \((\kappa,\mu,s) = (5,4,.06)\), attached with
a log-normal mark
\((\mu,\sigma)=(5,.2)\), and a
negative-binomial mark
\((r,p)=(4,.3)\).
set.seed(125); r1 = .rppp(
rMatClust(kappa = c(10, 5), mu = c(8, 4), scale = c(.15, .06)),
rlnorm(meanlog = c(3, 5), sdlog = c(.4, .2)),
rnbinom(size = 4, prob = .3) # shorter parameter recycled
)
#> Point-pattern simulated by `spatstat.random::rMatClust()`
#> Marks simulated by `stats::rlnorm()`
#> Marks simulated by `stats::rnbinom()`
Example below simulates two superimpose
d
marked
ppp
s,
Poisson point pattern \(\lambda=3\), attached with a log-normal
mark
\((\mu,\sigma)=(3,.4)\), and a
negative-binomial mark
\((r,p)=(4,.3)\).
Poisson point pattern \(\lambda=6\), attached with a log-normal
mark
\((\mu,\sigma)=(5,.2)\), and a
negative-binomial mark
\((r,p)=(6,.1)\).
set.seed(62); r2 = .rppp(
rpoispp(lambda = c(3, 6)),
rlnorm(meanlog = c(3, 5), sdlog = c(.4, .2)),
rnbinom(size = c(4, 6), prob = c(.3, .1))
)
#> Point-pattern simulated by `spatstat.random::rpoispp()`
#> Marks simulated by `stats::rlnorm()`
#> Marks simulated by `stats::rnbinom()`
In the foreseeable future we will not support simulating more than
one type of point patterns in a single call to function
.rppp()
. End user may manually superimpose
different (marked
) point patterns after simulating each of
them separately.
groupedHyperframe
Now consider two superimpose
d Matern’s cluster processes
attached with a log-normal mark
. The population parameters
are
(p = data.frame(kappa = c(3,2), scale = c(.4,.2), mu = c(10,5),
meanlog = c(3,5), sdlog = c(.4,.2)))
#> kappa scale mu meanlog sdlog
#> 1 3 0.4 10 3 0.4
#> 2 2 0.2 5 5 0.2
We simulate for 3 subjects (e.g., patients). The subject-specific
parameters deviate from the population parameters under a multivariate
normal distribution with variance-covariance matrix \(\Sigma\). The matrix \(\Sigma\) may be specified by a
numeric
scalar, indicating all-equal diag
onal
var
iances and zero
cor
relations/cov
ariances. We also make sure
that all subject-specific parameters satisfy that \(\kappa>1\), \(\mu>1\), \(s>0\) for Matern’s cluster processes,
and \(\sigma>0\) for log-normal
distribution. Each matrix
of the subject-specific
parameters has the subjects on the rows, and the parameters of the
ppp
s to be superimpose
d on the columns.
set.seed(39); (p. = rmvnorm_(n = 3L, mu = p, Sigma = list(
kappa = .2^2, scale = .05^2, mu = .5^2,
meanlog = .1^2, sdlog = .01^2)) |>
within.list(expr = {
kappa = pmax(kappa, 1 + .Machine$double.eps)
mu = pmax(mu, 1 + .Machine$double.eps)
scale = pmax(scale, .Machine$double.eps)
sdlog = pmax(sdlog, .Machine$double.eps)
}))
#> $kappa
#> [,1] [,2]
#> [1,] 3.119196 1.962887
#> [2,] 2.906535 1.754151
#> [3,] 2.915672 1.914559
#>
#> $scale
#> [,1] [,2]
#> [1,] 0.3519187 0.1489174
#> [2,] 0.3947885 0.1688761
#> [3,] 0.4029897 0.2418501
#>
#> $mu
#> [,1] [,2]
#> [1,] 10.227306 5.351866
#> [2,] 10.058303 4.622515
#> [3,] 9.726093 4.727232
#>
#> $meanlog
#> [,1] [,2]
#> [1,] 2.982251 5.007964
#> [2,] 2.878996 4.976754
#> [3,] 3.034019 4.852771
#>
#> $sdlog
#> [,1] [,2]
#> [1,] 0.4055664 0.1975062
#> [2,] 0.4172841 0.2115214
#> [3,] 0.4076479 0.1970090
We simulate one to four ppp
s (e.g., medical images) per
subject.
Function grouped_rppp()
simulates a
groupedHyperframe
with a ppp
-hypercolumn, and
one-or-more columns of the grouping structure.
set.seed(76); (r = p. |>
with.default(expr = {
grouped_rppp(
rMatClust(kappa = kappa, scale = scale, mu = mu),
rlnorm(meanlog = meanlog, sdlog = sdlog),
n = n
)
}))
#> Grouped Hyperframe: ~g1/g2
#>
#> 9 g2 nested in
#> 3 g1
#>
#> ppp g1 g2
#> 1 (ppp) 1 1
#> 2 (ppp) 1 2
#> 3 (ppp) 2 1
#> 4 (ppp) 2 2
#> 5 (ppp) 2 3
#> 6 (ppp) 3 1
#> 7 (ppp) 3 2
#> 8 (ppp) 3 3
#> 9 (ppp) 3 4
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.