|||
董明提出一个很有意思的数学模型问题,说网购了几本书,收到发货通知后,儿子天天问“今天书会不会到”。刚开始他回答:“可能,机会比昨天大一点。”心中想的是每一天到货的概率分布,这概率密度是类似于正态分布的曲线。按照这个模型,前几天没收到书,今天收到书的概率会越来越大,最后儿子问:“要是一直不来,那十年后,可能性是不是就大得不得了?”他回答:“那书可能就再也来不了,寄丢了。”
问题是:什么样的数学模型可以用来描述这个现象?
这显然可以用一个概率的模型来回答,但它的挑战不在于如何得出准确的曲线,这不难通过统计实验来得到。真正的问题应该是:怎样通过分析,用已有的知识来构造这个数学模型?它首先能定性地解答心中的疑惑,需要时可以细化,定量地给出预测。这功力在于对数学概念的理解和演绎推理的应用,而不是把整个问题不加分析地推给实验来解答。
问题的核心是怎样把正常邮递和丢失情况综合起来,用数学模型反映出,还没收到邮件等待时,对当天收到邮件的预测。
这可以由两个概率子模型组成,一个是在正常邮递时(事件A),从得到通知之日起,至今n天没有收到邮件(事件n),但今天(第n+1天)收到了邮件(事件$D_n$)的概率$P(D_n|A,n)$;另一个是,前n天没有收到邮件,还是正常邮递的可能性$P(A|n)$;因为寄丢了情况(事件B)是不可能收到邮件的,$P(D_n|B)=0$,那么前n天没有收到邮件,今天收到的概率则是:$P(D_n|n)=P(D_n|A,n)P(A|n)$。它就是这个问题模型的公式了。
对于正常邮递情况下,哪一天收到邮件的概率,是以通知中的预测到达日期为峰值,类似于正态分布离散的钟形曲线$f(D_n)$。由此不难得知$P(D_n|A,n)$是随着n增大趋近于1的曲线。$P(A|n)$的含义是前n天没有收到邮件,不是寄丢了的概率,凭经验就可以知道这是个随n增加而趋近于0的曲线。综合这两者,不需要进一步的研究,就可以定性地解答等待邮件的问题了。
有人说,这只不过把常识藏在数学式子里,没什么意义!
这是没学好数学的人,对于数学应用的理解。数学模型首先是平凡的,必须符合实践中的事实,它把实践中的问题分解成数学上已知的问题,需要时可以进一步细化求解。
比如说这不是个人邮购等书了,而是重大事件或者是商业运行环节,值得细化研究其定量结果。我们来看怎么用这个数学模型进行细化计算。
对于正常邮递,邮件到达的概率分布已经有很多的研究,这不是关注的重点。函数$f(D_n)$是可以从其他地方可以抄来,或自己推算的先验概率,按定义有$P(D_n|A)=f(D_n)$,从已知的事件从这个先验的概率算出后验的概率,用贝叶斯公式来计算,注意到事件$D_n$和n的含义,有$ P(n|D_i)=0$ if $i<n$ otherwise $ P(n|D_i)=1$,得到公式:
$P(D_n|A,n)=P(D_n|A)P(n|D_n)/\sum_{i=0}^{\infty}P(D_i|A)P(n|D_i)=f(D_n)/\sum_{i=n}^{\infty}f(D_i)$
从估计会正常邮递到丢失了的认知过程,是由概率$P(A|n)$来反映,我们知道$P(A|n)$的含义是:前n天没有收到邮件,还是正常邮递情况的可能性。从贝叶斯公式:
$P(A|n)= P(n|A)P(A)/ (P(n|A)P(A)+ P(n|B)P(B))$
$P(A)$是正常邮递的先验概率,比如说0.99,$P(B)=1-P(A)$ 和$P(n|B)=1$,我们有:
$ P(A|n)= P(n|A)P(A)/(P(n|A))P(A)+1-P(A))$
这里 $P(n|A)=\prod_{i=0}^{n-1}(1-f(D_i))$ (注:这个等式不精确,见【后记】)
可以看出正常邮递的概率是随着没收到邮件的日子增加趋近于0的曲线。
这样得出了公式。前n天没有收到邮件,今天收到的概率是:(注:纠错后这公式可以化简,见【后记】)
$P(D_n|n)=(f(D_n)/\sum_{i=n}^{\infty}f(D_i))\prod_{i=0}^{n-1}(1-f(D_i))P(A)/(\prod_{i=0}^{n-1}(1-f(D_i))P(A)+1-P(A))$
这是随着时间先上升,过了通知中的预测到达日期后不久下滑趋近于0的曲线。你在等待的过程中,可以用它来估算当天收到包裹的概率。
你也许会问:这个概率的密度曲线是什么?这能有吗?想不通的,查一下定义。
【后记】贴于评论12,点击2284后
写这篇博文意在于例示建立数学模型的思路、细化和用途。贴出后,徐晓指出计算$P(n|A)=\prod_{i=0}^{n-1}(1-f(D_i))$有问题,这里$(1-f(D_i))$不是独立的,不能用在连乘,正确的计算应该是$P(n|A)=1-\sum_{i=0}^{n-1}f(D_i)$,也即是博文在计算$P(D_n|A,n)$的式子中的$\sum_{i=n}^{\infty}f(D_i)$,这也可以从$P(D_n|A,n)=P(D_n|A)/P(n|A)$中看到。将这个纠错后的式子代入综合的公式后,约减后的结果与徐晓的结果一样,它是:
$P(D_n|n)=f(D_n)P(A)/(1- P(A)(\sum_{i=0}^{n-1}f(D_i))$
徐晓推算这个式子时,直接应用形式推理,非常简洁漂亮,建议对这问题有兴趣的读者,看他的博文《与应行仁老师探讨:邮件问题》。
对于正确建立数学模型,合理的抽象是个关键,在这里是事件A,n和$D_n$的定义,有了它们后$P(D_n|n)$便是描述问题的数学模型,后面的只是数学计算。把它分解成$P(D_n|A,n)P(A|n)$能让这模型的结构更直观,也针对董明的疑惑,借用常规的概率问题的结果,不需要深入研究它们的细节就可以定性地解答。如果不加分解直接对这个数学模型计算,注意到事件$D_n$蕴含着事件A和n,就有:
$P(D_n|n)=P(D_n,n)/P(n)=P(D_n)/P(n)=P(D_nA)/P(n)=P(D_n|A)P(A)/P(n)$
这个思路和徐晓的一样,代入$P(D_n|A)=f(D_n)$和$P(n)=P(A)P(n|A)+1-P(A)$的表达式就能得出上述的结果。
为什么分解式$P(D_n|n)=P(D_n|A,n)P(A|n)$也会得出一样的结果呢?
这分解式是直接从概率的概念出发在n约束环境下的条件概率式子,在形式推理里:
$P(D_n|n)=P(D_n,n)/P(n)=P(D_n,A,n)/P(n)=P(D_n|A,n)P(A,n)/P(n)=P(D_n|A,n)P(A|n)$
学习数学时,掌握概念和推理是同等的重要,当你数学概念的想象和形式推理一致时,才算正确地掌握了概念,能够同时应用概念的想象和形式推理就是到达了自由王国。
谢谢徐晓纠正$P(n|A)$式子的错误!
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-21 21:54
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社