随机分布的散点图

set.seed(5)
x <- runif(n=1500,min=0,max=500)
y <- runif(n=1500,min=0,max=300)
plot(x, y,xlim=c(0,500),ylim=c(0,300))
abline(v=seq(0,500,by=25),h=seq(0,300,by=25),col = grey(3/8), lty = "dotted")

在一个\(500m \times 300m\)长方形样地内有1500棵树。 它们的密度为 \(\lambda=\) \(1500 \div (500\times 300)\)=0.01 (棵/\(m^2\))。如果这些树是随机分布的,那么在点\(x_{i}\)周围半径为r的研究范围内,点\(x_{i}\)与其他点\(x_{j}\)间的距离是随机的,可能是0m或10m或50m等。因此,随着研究面积\(\pi \times r^2\)不断增大,树木个体数\(\pi \times r^2 \times \lambda\) (棵/\(m^2\))也逐渐增大。

K函数: 随机分布

通过K函数来描述这些点的空间格局,k函数计算方式为 \[ k(r)=\frac{1}{\lambda} \frac{\sum_{i} \sum_{j \ne i} 1 \{ \| x_{i} - x_{j} \| \le r \} e(x_{i},x_{j};r)}{n(x)-1} \]

require(spatstat);  r=0:70
xyi.ppp<-ppp(x, y, window=owin(c(0,500), c(0,300)), check=F)
k0 <- Kest(xyi.ppp,r=r)
plot(k0,main='')

如果样方内的点是随机分布,在点\(x_{i}\)周围半径为r的圆内,k(r)函数值等于\(\pi \times r^2\),树木平均个体数为\(k(r) \times \lambda\)棵。

L函数: 随机分布

L(r)函数值为\(\sqrt{\frac{K(r)}{\pi}}\)

L0  <- Lest(xyi.ppp, r=r)
plot(L0,main='' )

理论上,随机分布时L(r)函数值为r。

K-R函数: 随机分布

Kr_Kpois <- k0$trans - k0$theo
plot(r, Kr_Kpois,ylab='K(r)-K(pois)')
abline(h=0, v=60, lty=2,col=2)

理论上,随机分布时K(r)-K(pois)在小尺度上的平均值为0。

L-R函数: 随机分布

Lr_R <- L0$trans - r
plot(r, Lr_R, ylab='L(r)-r')
abline(h=0, v=60, lty=2,col=2)

理论上,随机分布时L(r)-r在小尺度上的平均值为0。

散点图: 均匀分布

xy <- expand.grid(x=1:50,y=1:30)*10-5
plot(xy$x, xy$y, xlim=c(0,500),ylim=c(0,300))
abline(v=seq(0,500,by=25), h=seq(0,300,by=25), col = grey(3/8), lty = "dotted", lwd = par("lwd"))

如果这1500棵树是均匀分布。他们的密度为 \(\lambda=\) \(1500 \div (500\times 300)\)=0.01 (棵/\(m^2\))。点与点之间存在最小距离,计作d。当研究区域的半径r小于最小距离d时,\(x_{i}\)周围的个体数为0,当r等于d时个体数突然增多。

K函数: 均匀分布

r=0:300/10
xyi.ppp<-ppp(xy$x, xy$y, window=owin(c(0,500), c(0,300)), check=F)
k0 <- Kest(xyi.ppp,r=r)
plot(k0, main='Uniform-distribution')

均匀分布时,k(r)函数曲线呈阶梯式上升。
研究半径r在最小距离d之内时K(r)为0,当r=d是k(r)>K(pois)。

即,当点\(x_{i}\)周围圆的半径r小于10m时k(r)值为0表示该区域没有树,当半径r等于10m时K(r)值突然增大并超过\(K_{pois}\),表示此时个体数突然增大,当r超过10m后,k(r)曲线再次趋于平稳,直至到r为14.14m时,K(r)再次突然增大并再次超过\(K_{pois}\)值。

L函数: 均匀分布

L(r)函数值为\(\sqrt{\frac{K(r)}{\pi}}\).

L0  <- Lest(xyi.ppp, r=r)
plot(L0, main='' )
abline(h=0, lty=2, col=2)

均匀分布时,k(r)函数曲线呈阶梯式上升。

K-R函数: 均匀分布

Kr_Kpois <- k0$trans - k0$theo
plot(r, Kr_Kpois,ylab='K(r)-K(pois)')
abline(h=0 ,lty=2, col=2)

K(r)-K(pois)值呈多条间断型单调递减分布,斜率不同,小尺度上平均值小于0。

L-R函数: 均匀分布

Lr_R <- L0$trans - r
plot(r, Lr_R, ylab='L(r)-r')
abline(h=0, lty=2, col=2)

均匀分布时L(r)-r值呈多条间断型线性分布,斜率相同,小尺度上平均值小于0。

聚集分布-母树1 散点图

Nparents <- 1; Nkids <- 1500/Nparents
SDkids <- 10; set.seed(588)
xy0 <-  data.frame(x=runif(n=Nparents,min=50,max=450),
                   y=runif(n=Nparents,min=50,max=250))
xi  <- rep(xy0$x, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
yi  <- rep(xy0$y, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
plot(xi, yi, xlim=c(0,500),ylim=c(0,300))
abline(v=seq(0,500,by=25), h=seq(0,300,by=25), col = grey(3/8), lty = "dotted", lwd = par("lwd"))

如果这1500棵树只分布在面积为\(\pi \times R^2\)的圆圈内,成聚集分布格局,整个样地内树木的密度\(\lambda\)=0.01(棵/\(m^2\))。直径为2R(约60m)的聚集圆圈内物种个体数为1500棵。随着研究半径r的不断增大,点\(x_{i}\)周围的平均个体数逐渐增多,\(K(r)\)增加。当半径r逐渐增大并超过2R时,研究区域内个体数将不再增加,\(K(r)\)不再增加。

K函数: 聚集分布-母树1

require(spatstat)
r=0:100
xyi.ppp<-ppp(xi, yi, window=owin(c(0,500),c(0,300)),check=F)
k0 <- Kest(xyi.ppp,r=r)
k.max <- max(k0$trans)
r.kmax <- r[which.max(k0$trans)]
plot(k0, main='K function of cluster points')
abline(v=c(40,r.kmax),lty=2)

聚集分布时,k(r)函数曲线呈S型曲线上升,半径r达到2R时K(r)达到最大值。 k(r)函数曲线可以用以下模型拟合: \(k(r) = \pi \times r^2 + (1-e^{-r^2/(4\times SD^2)})\times \kappa.\)

随着半径r逐渐增大,k(r)值逐渐增大,当尺度r增大到40m左右,k(r)的值趋于稳定。

当半径r= 68时,k(r)达到最大值1.596810^{5},所检测到个体数为\(\lambda\)*0.01=1597棵; 此时随机分布个数为\(\pi r^2 \times 0.01\)=145棵。

而聚集圆圈内个体数为1500棵。

L函数: 聚集分布-母树1

L(r)函数值为\(\sqrt{\frac{K(r)}{\pi}}\).

L0  <- Lest(xyi.ppp,r=r)
r0.max <- r[which.max(L0$trans)]
Kfun.r0 <- k0$trans[which.max(L0$trans)] 
plot(L0,main='' )
abline(v=c(40,r.kmax),lty=2)

L(r)相比K(r),数值在半径r上分配更加均匀,曲线为先上升,达到最大值逐渐稳定。

随着半径r逐渐增大,L(r)值逐渐增大,当尺度r增大到40m左右,L(r)的值趋于稳定。

当半径r= 68时,L(r)等于225,所检测到个体数为\(\lambda\)*0.01=1597棵。

K-R函数: 聚集分布-母树1

plot(k0$r,k0$trans-k0$theo, main='K Cluster - Random')
kappa <- round(max(k0$trans-k0$theo))
r.max <- r[which.max(k0$trans-k0$theo)]
abline(v=r.max ,lty=2)

K(r)-K(pois)值呈先上升后下降趋势,最大值为kappa,平均值大于0。

\(k(r)-k_{pois} = (1-e^{-r^2/(4\times SD^2)})\times \kappa.\) 公式中\(\kappa\)代表\(k(r) - k_{pois}\)最大值为1.5228710^{5}。

当半径r为45时,圈内非随机部分个体数为=\(\kappa\times\lambda\)=1523;此时随机分布个体数为64。

而聚集圆圈内个体数为1500棵。

L-R函数: 聚集分布-母树1

Lr_R <- L0$trans - r
r1.max <- r[which.max(Lr_R)]
Kfun.r1 <- (k0$trans-k0$theo)[which.max(Lr_R)] 
plot(r,Lr_R,ylab='L(r)-r')
abline(h=kappa ,v=r1.max,lty=2)

\(L(r) - L_{pois}\)最大值为36。 当半径r为35时,圈内非随机部分个体数为=\(Kfun.r1\times\lambda\)=1477;此时随机分布个体数为38。

而聚集圆圈内个体数为1500棵。

散点图: 聚集分布-母树2

Nparents <- 2
Nkids <- 1500/Nparents
SDkids <- 10
set.seed(588)
xy0 <-  data.frame(x=runif(n=Nparents,min=50,max=450),
                   y=runif(n=Nparents,min=50,max=250))
xi  <- rep(xy0$x, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
yi  <- rep(xy0$y, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
plot(xi , yi ,xlim=c(0,500),ylim=c(0,300))
abline(v=seq(0,500,by=25), h=seq(0,300,by=25), col = grey(3/8), lty = "dotted", lwd = par("lwd"))

如果这1500棵树分布在2个面积为\(\pi \times R^2\)的圆圈内,成聚集分布格局,样方内树木密度仍然为\(\lambda\)=0.01(棵/\(m^2\)),直径为2R(约60m)的单个聚集圆圈内个体数为750棵。以\(x_{i}\)为研究对象,随着半径r的不断增大,研究区域内平均个体数逐渐增多。当半径r逐渐增大并超过2R时,研究区域内个体数将不再增加。

K函数: 聚集分布-母树2

require(spatstat)
r=0:100
xyi.ppp<-ppp(xi, yi, window=owin(c(0,500),c(0,300)),check=F)
k0 <- Kest(xyi.ppp,r=r)
k.max <- max(k0$trans)
r.kmax <- which.max(k0$trans)
plot(k0, main='K function of cluster points')
abline(v=c(40,r.kmax),lty=2)

聚集分布时,k(r)函数曲线呈S型曲线上升,半径r达到2R时K(r)达到最大值。 \(k(r) = \pi \times r^2 + (1-e^{-r^2/(4\times SD^2)})\times \kappa\)

随着半径r的增大,k(r)值逐渐增大,当半径r增大到40m左右趋于稳定。

当半径r= 68时,k(r)达到最大值7.978710^{4},所检测到个体数为\(\lambda\) * 0.01=798棵;此时随机分布个数为\(\pi r^2 \times 0.01\)=145棵。

而单个聚集圆圈内个体数为750棵。

L函数: 聚集分布-母树2

L0  <- Lest(xyi.ppp,r=r)
r0.max <- r[which.max(L0$trans)]
Kfun.r0 <- k0$trans[which.max(L0$trans)] 
plot(L0,main='' )
abline(v=c(40,r.kmax),lty=2)

L(r)函数值为\(\sqrt{\frac{K(r)}{\pi}}\). 随着半径r逐渐增大,L(r)值逐渐增大,当尺度r增大到40m左右,L(r)的值趋于稳定。 当半径r= 67时,L(r)等于159,所检测到个体数为\(\lambda\) * 0.01=798棵。

K-R函数: 聚集分布-母树2

plot(k0$r,k0$trans-k0$theo, main='K function of cluster points')
kappa <- round(max(k0$trans-k0$theo))
r.max <-r[which.max(k0$trans-k0$theo)]
abline(v=r.max ,lty=2)

K(r)-K(pois)值呈先上升后下降趋势,最大值为kappa,平均值大于0。 \(k(r)-k_{pois} = (1-e^{-r^2/(4\times SD^2)})\times \kappa\)

公式中\(\kappa\)代表\(k(r) - k_{pois}\)最大值为7.32110^{4}。

半径r为41时,圈内非随机个体数为=732,随机分布个体数为53。

单个聚集圆圈内个体数为750棵。

L-R函数: 聚集分布-母树2

Lr_R <- L0$trans - r
r1.max <- r[which.max(Lr_R)]
Kfun.r1 <- (k0$trans-k0$theo)[which.max(Lr_R)] 
plot(r,Lr_R,ylab='L(r)-r')
abline(h=kappa ,v=r1.max,lty=2)

\(L(r) - L_{pois}\)最大值为34。

半径r为33时,圈内非随机部分个体数为=\(Kfun.r1\times\lambda\)=707;此时随机分布个体数为34。

而聚集圆圈内个体数为750棵。

散点图: 聚集分布-母树4

Nparents <- 4
Nkids <- 1500/Nparents
SDkids <- 10
set.seed(588)
xy0 <-  data.frame(x=runif(n=Nparents,min=50,max=450),
                   y=runif(n=Nparents,min=50,max=250))
xi  <- rep(xy0$x, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
yi  <- rep(xy0$y, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
plot(xi , yi ,xlim=c(0,500),ylim=c(0,300))
abline(v=seq(0,500,by=25),h=seq(0,300,by=25),col = grey(3/8), lty = "dotted",     lwd = par("lwd"))

如果这1500棵树分布在4个面积为\(\pi \times R^2\)的圆圈内,成聚集分布格局,树木总密度为\(\lambda\)=0.01(棵/\(m^2\))。直径为L(约为60m)的单个聚集圆圈内物种个体数为375棵。随半径r不断增大,点\(x_{i}\)周围区域内平均个体数逐渐增多。当r逐渐增大并超过L时,研究区域内个体数将不再增加。

K函数: 聚集分布-母树4

require(spatstat)
r=0:100
xyi.ppp<-ppp(xi, yi, window=owin(c(0,500),c(0,300)),check=F)
k0 <- Kest(xyi.ppp,r=r)
plot(k0, main='K function of cluster points')
k.max <- round(max(k0$trans))
r.kmax <- which.max(k0$trans)
abline(v=c(40,r.kmax),lty=2)

随半径r逐渐增大,k(r)值逐渐增大,当半径r增大到40m左右,k(r)值趋于稳定。

当半径r= 67时,k(r)达到最大值3.983910^{4},所检测到个体数为\(\lambda\) * 0.01=398棵;随机分布个数为\(\pi r^2 \times 0.01\)=141个。

单个聚集圆圈内个体数为375棵。

L函数: 聚集分布-母树4

L0  <- Lest(xyi.ppp,r=r)
r0.max <- r[which.max(L0$trans)]
Kfun.r0 <- k0$trans[which.max(L0$trans)] 
plot(L0,main='' )
abline(v=c(40,r.kmax),lty=2)

L(r)函数值为\(\sqrt{\frac{K(r)}{\pi}}\). 随着半径r逐渐增大,L(r)值逐渐增大,当尺度r增大到40m左右,L(r)的值趋于稳定。 当半径r= 66时,L(r)等于113,所检测到个体数为\(\lambda\) * 0.01=398棵。

K-R函数: 聚集分布-母树4

plot(k0$r,k0$trans-k0$theo, main='K function of cluster points')
kappa <- round(max(k0$trans-k0$theo))
r.max <-r[which.max(k0$trans-k0$theo)]
abline(v=r.max ,lty=2)

\(k(r) - k_{pois}\)曲线可以用公式 \(k(r)-k_{pois} = (1-e^{-r^2/(4\times SD^2)})\times \kappa\)来拟合。 公式中\(\kappa\)代表\(k(r) - k_{pois}\)最大值为3.413210^{4}。

半径r为38时,圈内非随机个体数为=341,随机分布个体数为45。

单个聚集圆圈内个体数为375棵。

L-R函数: 聚集分布-母树4

Lr_R <- L0$trans - r
r1.max <- r[which.max(Lr_R)]
Kfun.r1 <- (k0$trans-k0$theo)[which.max(Lr_R)] 
plot(r,Lr_R,ylab='L(r)-r')
abline(h=kappa ,v=r1.max,lty=2)

\(L(r) - L_{pois}\)最大值为31。

半径r为30时,圈内非随机部分个体数为=\(Kfun.r1\times\lambda\)=325;此时随机分布个体数为28。

而聚集圆圈内个体数为375棵。

散点图: 聚集分布-母树10a

Nparents <- 10
Nkids <- 1500/Nparents
SDkids <- 10
set.seed(2)
xy0 <-  data.frame(x=runif(n=Nparents,min=50,max=450),
                   y=runif(n=Nparents,min=50,max=250))
xi  <- rep(xy0$x, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
yi  <- rep(xy0$y, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
plot(xi , yi ,xlim=c(0,500),ylim=c(0,300))
abline(v=seq(0,500,by=25),h=seq(0,300,by=25),col = grey(3/8), lty = "dotted",     lwd = par("lwd"))

如果这1500棵树分布在4个面积为\(\pi \times R^2\)的圆圈内,成聚集分布格局,树木总密度为\(\lambda\)=0.01(棵/\(m^2\))。直径为L(约为60m)的单个聚集圆圈内物种个体数为150棵。随半径r不断增大,点\(x_{i}\)周围区域内平均个体数逐渐增多。当r逐渐增大并超过L时,研究区域内个体数将不再增加。

K函数: 聚集分布-母树10a

require(spatstat)
r=0:60
xyi.ppp<-ppp(xi, yi, window=owin(c(0,500),c(0,300)),check=F)
k0 <- Kest(xyi.ppp,r=r)
plot(k0, main='K function of cluster points')
k.max <- round(max(k0$trans))
r.kmax <- which.max(k0$trans)
abline(v=c(40,r.kmax),lty=2)

随半径r逐渐增大,k(r)值逐渐增大,当半径r增大到40m左右,k(r)值趋于稳定。

当半径r= 61时,k(r)达到最大值2.200210^{4},所检测到个体数为\(\lambda\) * 0.01=220棵;随机分布个数为\(\pi r^2 \times 0.01\)=117个。

单个聚集圆圈内个体数为150棵。

L函数: 聚集分布-母树10a

L0  <- Lest(xyi.ppp,r=r)
r0.max <- r[which.max(L0$trans)]
Kfun.r0 <- k0$trans[which.max(L0$trans)] 
plot(L0,main='' )
abline(v=c(40,r.kmax),lty=2)

L(r)函数值为\(\sqrt{\frac{K(r)}{\pi}}\). 随着半径r逐渐增大,L(r)值逐渐增大,当尺度r增大到40m左右,L(r)的值趋于稳定。 当半径r= 60时,L(r)等于84,所检测到个体数为\(\lambda\) * 0.01=220棵。

K-R函数: 聚集分布-母树10a

plot(k0$r,k0$trans-k0$theo, main='K function of cluster points')
kappa <- round(max(k0$trans-k0$theo))
r.max <-r[which.max(k0$trans-k0$theo)]
abline(v=r.max ,lty=2)

\(k(r) - k_{pois}\)曲线可以用公式 \(k(r)-k_{pois} = (1-e^{-r^2/(4\times SD^2)})\times \kappa\)来拟合。 公式中\(\kappa\)代表\(k(r) - k_{pois}\)最大值为1.161410^{4}。

半径r为34时,圈内非随机个体数为=116,随机分布个体数为36。

单个聚集圆圈内个体数为150棵。

L-R函数: 聚集分布-母树10a

Lr_R <- L0$trans - r
r1.max <- r[which.max(Lr_R)]
Kfun.r1 <- (k0$trans-k0$theo)[which.max(Lr_R)] 
plot(r,Lr_R,ylab='L(r)-r')
abline(h=kappa ,v=r1.max,lty=2)

\(L(r) - L_{pois}\)最大值为27。

半径r为26时,圈内非随机部分个体数为=\(Kfun.r1\times\lambda\)=107;此时随机分布个体数为21。

而聚集圆圈内个体数为150棵。

散点图: 聚集分布-母树10b

Nparents <- 10
Nkids <- 1500/Nparents
SDkids <- 10
set.seed(4)
xy0 <-  data.frame(x=runif(n=Nparents,min=50,max=450),
                   y=runif(n=Nparents,min=50,max=250))
xi  <- rep(xy0$x, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
yi  <- rep(xy0$y, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
plot(xi , yi ,xlim=c(0,500),ylim=c(0,300))
abline(v=seq(0,500,by=25),h=seq(0,300,by=25),col = grey(3/8), lty = "dotted",     lwd = par("lwd"))

如果这1500棵树分布在4个面积为\(\pi \times R^2\)的圆圈内,成聚集分布格局,树木总密度为\(\lambda\)=0.01(棵/\(m^2\))。直径为L(约为60m)的单个聚集圆圈内物种个体数为150棵。随半径r不断增大,点\(x_{i}\)周围区域内平均个体数逐渐增多。当r逐渐增大并超过L时,研究区域内个体数将不再增加。

K函数: 聚集分布-母树10b

require(spatstat)
r=0:60
xyi.ppp<-ppp(xi, yi, window=owin(c(0,500),c(0,300)),check=F)
k0 <- Kest(xyi.ppp,r=r)
plot(k0, main='K function of cluster points')
k.max <- round(max(k0$trans))
r.kmax <- which.max(k0$trans)
abline(v=c(40,r.kmax),lty=2)

随半径r逐渐增大,k(r)值逐渐增大,当半径r增大到40m左右,k(r)值趋于稳定。

当半径r= 61时,k(r)达到最大值2.025510^{4},所检测到个体数为\(\lambda\) * 0.01=203棵;随机分布个数为\(\pi r^2 \times 0.01\)=117个。

单个聚集圆圈内个体数为150棵。

L函数: 聚集分布-母树10b

L0  <- Lest(xyi.ppp,r=r)
r0.max <- r[which.max(L0$trans)]
Kfun.r0 <- k0$trans[which.max(L0$trans)] 
plot(L0,main='' )
abline(v=c(40,r.kmax),lty=2)

L(r)函数值为\(\sqrt{\frac{K(r)}{\pi}}\). 随着半径r逐渐增大,L(r)值逐渐增大,当尺度r增大到40m左右,L(r)的值趋于稳定。 当半径r= 60时,L(r)等于80,所检测到个体数为\(\lambda\) * 0.01=203棵。

K-R函数: 聚集分布-母树10b

plot(k0$r,k0$trans-k0$theo, main='K function of cluster points')
kappa <- round(max(k0$trans-k0$theo))
r.max <-r[which.max(k0$trans-k0$theo)]
abline(v=r.max ,lty=2)

\(k(r) - k_{pois}\)曲线可以用公式 \(k(r)-k_{pois} = (1-e^{-r^2/(4\times SD^2)})\times \kappa\)来拟合。 公式中\(\kappa\)代表\(k(r) - k_{pois}\)最大值为1.173310^{4}。

半径r为34时,圈内非随机个体数为=117,随机分布个体数为36。

单个聚集圆圈内个体数为150棵。

L-R函数: 聚集分布-母树10b

Lr_R <- L0$trans - r
r1.max <- r[which.max(Lr_R)]
Kfun.r1 <- (k0$trans-k0$theo)[which.max(Lr_R)] 
plot(r,Lr_R,ylab='L(r)-r')
abline(h=kappa ,v=r1.max,lty=2)

\(L(r) - L_{pois}\)最大值为27。

半径r为26时,圈内非随机部分个体数为=\(Kfun.r1\times\lambda\)=109;此时随机分布个体数为21。

而聚集圆圈内个体数为150棵。

结论:

令: \(\kappa\) <- max(k0 $ trans - k0 $ theo);
\(r_k\) <- r[which.max(k0 $ trans - k0 $ theo)]

则: \(n.kids介于\kappa * \lambda和[\kappa+\pi * (r_k)^2] * \lambda之间.\)

\(~\)

托马斯tomas模型拟合

相关R程序函数:

require(spatstat); 
#
CreatKFun <- function(Nparents=10,SDkids=10){
xy0 <-  data.frame(x=runif(n=Nparents,min=50,max=450),
                   y=runif(n=Nparents,min=50,max=250))
Nkids <- 1500/Nparents
xi  <- rep(xy0$x, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
yi  <- rep(xy0$y, each=Nkids) + rnorm(n=Nparents*Nkids, mean=0, sd=SDkids)
#
xy.ppp<-ppp(xi, yi, window=owin(c(0,500), c(0,300)), check=F)
k0 <- Kest(xy.ppp,r=r, correction ='border')
k0$border
}
#
PlotKFun <- function(K.mat,main){
matplot(K.mat,type='l',xlim=range(r), main=main,col=grey(6/8))
points(r+1,rowMeans(K.mat),type='o',col=2)
points(r+1,rowMeans(K.mat)-pi*r^2,type='l',col=4)
}
#
pointsTomas <- function(K=15000,SD=2){
kr = pi*r^2 + (1-exp(-r^2/(4*SD^2)))*K
kr2 = (1-exp(-r^2/(4*SD^2)))*K
points(r+1, kr, type='l', lty=2, col=5, lwd=2)
points(r+1, kr2, type='l', lty=3,  col=3, lwd=3)
}
#
L.fun <- function(x){ K=x[1]; SD=x[2];
                 Kfun=pi*r^2 + (1-exp(-r^2/(4*SD^2)))*K;
                 L.mat=matrix(data=sqrt(Kfun/pi),nrow=dm[1],ncol=dm[2])
                 sum((L.mat - L.mat1b)^2)
                 }

托马斯tomas模型拟合; Nparents=1, sd=10.

r <- 0:40
K.mat1b <- replicate(200, CreatKFun(Nparents=1, SDkids=10))
L.mat1b <- sqrt(K.mat1b/pi);  dm <- dim(L.mat1b)
PA <- optim(par=c(10000,1), fn=L.fun,  method = "BFGS")
PlotKFun(K.mat1b, main='Nparents=1, sd=10')
pointsTomas(K=PA$par[1], SD=round(PA$par[2], 3))

拟合结果: 子树个体数1454.14, 扩散标准误9.85.

理论数值: 子树个体数 1500, 扩散标准误 10.

托马斯tomas模型拟合; Nparents=2, sd=10.

r <- 0:40
K.mat1b <- replicate(200, CreatKFun(Nparents=2, SDkids=10))
L.mat1b <- sqrt(K.mat1b/pi);  dm <- dim(L.mat1b)
PA <- optim(par=c(10000,1), fn=L.fun,  method = "BFGS")
PlotKFun(K.mat1b, main='Nparents=2, sd=10')
pointsTomas(K=PA$par[1], SD=round(PA$par[2], 3))

拟合结果: 子树个体数739.36, 扩散标准误9.94.

理论数值: 子树个体数 750, 扩散标准误 10.

托马斯tomas模型拟合; Nparents=3, sd=10.

r <- 0:40
K.mat1b <- replicate(200, CreatKFun(Nparents=3, SDkids=10))
L.mat1b <- sqrt(K.mat1b/pi);  dm <- dim(L.mat1b)
PA <- optim(par=c(10000,1), fn=L.fun,  method = "BFGS")
PlotKFun(K.mat1b, main='Nparents=3, sd=10')
pointsTomas(K=PA$par[1], SD=round(PA$par[2], 3))

拟合结果: 子树个体数499.08, 扩散标准误9.96.

理论数值: 子树个体数 500, 扩散标准误 10.

托马斯tomas模型拟合; Nparents=5, sd=10.

r <- 0:40
K.mat1b <- replicate(200, CreatKFun(Nparents=5, SDkids=10))
L.mat1b <- sqrt(K.mat1b/pi);  dm <- dim(L.mat1b)
PA <- optim(par=c(10000,1), fn=L.fun,  method = "BFGS")
PlotKFun(K.mat1b, main='Nparents=5, sd=10')
pointsTomas(K=PA$par[1], SD=round(PA$par[2], 3))

拟合结果: 子树个体数307.79, 扩散标准误10.06.

理论数值: 子树个体数 300, 扩散标准误 10.

托马斯tomas模型拟合; Nparents=5, sd=5.

r <- 0:40
K.mat1b <- replicate(200, CreatKFun(Nparents=5, SDkids=5))
L.mat1b <- sqrt(K.mat1b/pi);  dm <- dim(L.mat1b)
PA <- optim(par=c(10000,1), fn=L.fun,  method = "BFGS")
PlotKFun(K.mat1b, main='Nparents=5, sd=5')
pointsTomas(K=PA$par[1], SD=round(PA$par[2], 3))

拟合结果: 子树个体数305.78, 扩散标准误5.07.

理论数值: 子树个体数 300, 扩散标准误 5.

托马斯tomas模型拟合; Nparents=10, sd=10

r <- 0:40
K.mat1b <- replicate(200, CreatKFun(Nparents=10,SDkids=10))
L.mat1b <- sqrt(K.mat1b/pi);  dm <- dim(L.mat1b)
PA <- optim(par=c(10000,1), fn=L.fun,  method = "BFGS")
PlotKFun(K.mat1b, main='Nparents=10, sd=10')
pointsTomas(K=PA$par[1], SD=round(PA$par[2], 3))

拟合结果: 子树个体数169.86, 扩散标准误10.57.

理论数值: 子树个体数 150, 扩散标准误 10.

托马斯tomas模型拟合; Nparents=10, sd=5.

r <- 0:40
K.mat1b <- replicate(200, CreatKFun(Nparents=10, SDkids=5))
L.mat1b <- sqrt(K.mat1b/pi);  dm <- dim(L.mat1b)
PA <- optim(par=c(10000,1), fn=L.fun,  method = "BFGS")
PlotKFun(K.mat1b, main='Nparents=10, sd=5')
pointsTomas(K=PA$par[1], SD=round(PA$par[2], 3))

拟合结果: 子树个体数162.98, 扩散标准误5.32.

理论数值: 子树个体数 150, 扩散标准误 5.

结论:

整体而言,拟合结果较准确: \(\kappa*\lambda \approx Nkids.\)
当Nparents较小及Nkids较大时,\(\kappa*\lambda\)容易略小于理论值Nkids.
当Nparents较大及Nkids较小时,\(\kappa*\lambda\)容易略大于理论值Nkids.

\(~\)

(完)