我的模型基于以下增长函数:x_t + 1 = x_t + r * x_t *(1-x_t/K)增长率r由每年定义随机抽取(平均值= 0.2,标准偏差= 0.2)。我正在查看10000次运行70年后股票x的概率密度函数。当我计算概率密度函数下的面积时,对于0.1的标准偏差,其大致等于1,而对于0.2或0.3的标准偏差则不大。我用100个值为区域A创建了一个直方图。它在A = 2处显示非常高的峰值,但面积的值甚至达到8.为什么它不等于1?概率密度曲线下面积不等于1
runs=10000
mean=0.2
sd=0.2
K=1
x_0=0.4
v=0.1
t=70
y=c()
x=x_0
for (j in 1:runs) {
rand=rnorm(t,mean,sd)
for (i in 1:t) {
x=max(x+rand[i]*x*(x-v)*(1-x/K),0)
if(i==t)
y[j]=x
next}
x=x_0
next }
library(sfsmisc)
Dens=density(y)
f=approxfun(Dens$x, Dens$y)
h=c()
i=seq(0.9, 1, length.out=100000)
for (e in 1:length(i)) {
h[e]=f(i[e])
next}
options(max.print=1000000)
h[is.na(h)]=0
area=sum(abs(h[-1]+h[-length(h)])/2*diff(i))
谢谢!
你得到的是什么而不是1?如果它接近1 - 你期望什么?数值计算具有舍入误差。 –
它很可能接近于2,但在8处的直方图中甚至有一些峰值,不能是舍入误差 –
'library(sfsmisc)'的要点是什么? –