虫口模型的随机性检验

python实现虫口模型的随机性检验

虫口模型(Logistic模型)简介
虫口模型的灵感来自于自然科学。假设有某种昆虫,在不存在世代交替的情况下,即每年夏天成虫产卵后全部死亡,第二年春天每个虫卵孵化成虫。若产卵数大于一定的数值,则可以想象虫口会大量增加。但是在虫口数量增大的同时,又会由于自然资源的限制,出现争夺食物、生存空间等情况,导致虫口数量减少。

问题的提出
现在我有如下思考,假设一列数据是按照虫口模型的规律生成的,而人们并不知道是这样,那么很自然地,人们可能会选择用各种统计学方法研究这样一个其实是有确定性规律的序列。那么,在这种情况下,虫口模型能不能欺骗各类统计学检验,从而让人们相信它是大自然完全随机生成的序列,从而蒙混过关呢?

设环境能承受的最大虫口数为N0,第n代虫口数为Nn,我们用Xn表示第n代相对虫口数,于是有 Xn=Nn/ N0,相对虫口数不会大于1,Xn∈[0,1],Xn+1∈[0,1],并且用λ表示生殖增长率,λ∈[0,4]。于是得到下式:
虫口模型基本公式
当λ固定后,我们可以选定λ与初值X0,对上式进行n次迭代计算。
计算出一系列数值之后。我们需要对这一系列数值进行随机性检验,也就是判断按照虫口模型生成的一系列数值,是否具有随机性。
下面介绍基本的随机性检验方法:
1. Ljung-Box检验
H0:所有序列的相关系数全为0(即观测值不具有线性相关性)
检验统计量为:
在这里插入图片描述
其中,r的j次方是样本之后j阶的相关系数。统计量Q服从自由度为p的卡方分布, 其中p为滞后阶数。
查卡方分布表,如果Q大于对应的表值,就拒绝H0,序列不是随机的,具有线性相关性。
测试结果见附录
绝大部分的初始值和lamda值的组合,不能够产生通过LB检验的序列。也就是说,大部分的测试结果都显示,生成的序列具有线性相关性。

2. 游程检验
H0:观测值是独立的
该检验的目的也是测试时间序列是否独立。具体检验步骤如下:
2.1 列出观测值
2.2 计算观测值的平均值
2.3 将观测值中,大于等于平均值的记为1,小于平均值的记为0。
2.3 1的个数记为n1,0的个数记为n2
按照观测值的顺序,将正负号的改变个数加1记为runs(也就是连续出现1或者0的一个区段,被称为游程)
得到游程检验的公式如下:
在这里插入图片描述
其中z为游程检验的统计量,其近似服从标准正态分布。如果计算出z,只要将它与标准正态分布的分位数相比,如在5%的置信度下,z小于1.96,那么就不能拒绝原假设。一定程度上,证明了观测值之间有一定的独立性。
而如果z>1.96,那么就可以拒绝相互独立的原假设,观测值就不是随机的。
测试结果见附录。
从测试结果来看,大部分的ini var与lamda的组合并不能够拒绝原假设,所以虫口模型的生成值的随机性不能够被游程检验所拒绝。

3. 单位根检验(ADF检验, Augmented Dickey-Fuller test)
H0:δ = 0
我们需要建立ADF统计量,查表判断是否拒绝原假设,如果拒绝原假设,就不存在单位根,该虫口模型生成的序列就是平稳的。反之,就不能证明该序列是平稳的。
首先,判断虫口模型生成的时间序列{yt}是否为平稳的。
通过一阶回归来检验单位根。
在这里插入图片描述
例如,在代入ini var = 0.618, lamba = 3.7生成的1000个虫

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值