#1 - 2023-4-1 20:22
冷冻水产鉴定员
本帖是基于这就是该放手去做的理由!中所提出的“问题”的随机模拟。此“问题”由@aquarium使用中文日常语言提出,由@kj6w使用包含了统计学相关符号的中文语言解释。我在本帖中将展示我对此问题的随机模拟检验,问题完全基于后者的解释,因为前者我有些难以理解。

叠甲:
做的过程中稍微搬了一下家有点累,也懒得仔细写过程了,很多地方其实写的并不严谨。就当图一乐哈。

代码有错误,懒得改了。

下面的原结论是推翻了猜想,但我又想了一下不能这么说。最终结论应该是给定N为1000,不等式左侧的模拟值大约为1/2,不能说对于所有自然数N,左侧的值一定和1/2有什么关系。懒得继续想了,抛砖引玉求大佬接手吧。

我又悟了,原来的代码虽然逻辑有错误,但相当于在少套了一层P[...]>1/2的情况下,算出了N=1000、sample size=1000时,不等式左侧的一次realization小于了1/2。如果我们接受1000的sample size能给出足够好的approximation的话,这个counter-example是推翻了猜想。


证明或反驳此猜想的解析推导留做习题。

以下是随机模拟检验过程:




—————————————————————————————————————————————
[8 Apr 2023 (BST) Update]
又忍不住根据“看动画好累”10楼的说法更新了一下。结论是N=3时,不等式左侧蒙特卡洛模拟值小于1/2。猜想不成立。



#2 - 2023-4-1 20:41
(米西卡莫斯卡)
#3 - 2023-4-1 20:55
笑死我了,写完自己看的时候总感觉有问题,又感觉没问题。一直在不对不对,哦对的对的,欸不对不对,哦哦哦对的,嗯对吗?
#4 - 2023-4-1 20:58
(What are you waiting for)
你们两个真的,我哭死(bgm50)(bgm50)
#5 - 2023-4-1 21:12
扔个可能有用的链接https://en.wikipedia.org/wiki/Irwin–Hall_distribution。这个问题应该跟精算数学有关系,可惜我要么翘课了要么上课在看小说。
#5-1 - 2023-4-1 21:57
冷冻水产鉴定员
哦对了我看的小说是邻家天使,p9做的动画都在说毁原作我去看的。有一说一大部分内容没我可爱的精算老师有意思。
#6 - 2023-4-1 22:07
(至少,还活着。)
(bgm38),我哭死
想了想,大样本下其实是更接近期望的吧(bgm38)
多运行几次有惊喜(bgm38)
#6-1 - 2023-4-1 23:10
冷冻水产鉴定员
你还在上中学吗?或者大学没学过概率论?我没读过国内高中以后教育不清楚啊。可以搜一下“中心极限定理”和“蒙特卡洛模拟”。前者至少是英国高中知识。
#6-2 - 2023-4-1 23:39
aquarium
冷冻水产鉴定员 说: 你还在上中学吗?或者大学没学过概率论?我没读过国内高中以后教育不清楚啊。可以搜一下“中心极限定理”和“蒙特卡洛模拟”。前者至少是英国高中知识。
学过但忘得差不多了,属于是那种考完试就不怎么用得到的课
#6-3 - 2023-4-2 00:34
冷冻水产鉴定员
aquarium 说: 学过但忘得差不多了,属于是那种考完试就不怎么用得到的课
写错了我去,关系最紧密的应该是大数定律。忘了也没事,反正就是严格地证明了你一开始说的。但多运行是没有惊喜的,我seed了rng。
#7 - 2023-4-1 22:12
(人生若只如初见)
我哭死
#8 - 2023-4-1 22:25
根据我写程序计算,n=4时最后概率大概收敛到0.56,n=3则是0.43,n=2计算结果是2-2ln2,n=1则是1,主要问题还是每一个概率均匀其实是和原来的单次概率均匀是不对等的,并且我无能找不到合适的对应条件。
关于计算问题,n较大(到5时就很困难了)时靠直接模拟是跟本不可能的,n几十的时候算单个概率都很困难了。所以这道我都没有想到你能用计算机枚举(bgm38)
#8-1 - 2023-4-1 23:11
冷冻水产鉴定员
这个应该不是枚举法哈,可以搜一下“蒙特卡洛模拟”。
#8-2 - 2023-4-1 23:13
kj6w
冷冻水产鉴定员 说: 这个应该不是枚举法哈,可以搜一下“蒙特卡洛模拟”。
有听说过,但仅仅听说过(bgm38)
是我不学无术
#9 - 2023-4-1 23:32
(Say hello to my little friend!)
没学过R,问个很菜的问题
q <- mean(s>p_sum)
是什么意思,
s和p_sum不是两个数吗,s>p_sum不应该是一个布尔值吗
#9-1 - 2023-4-1 23:33
冷冻水产鉴定员
TRUE=1, FALSE=0
#9-2 - 2023-4-1 23:34
卯月加油努力
冷冻水产鉴定员 说: TRUE=1, FALSE=0
是啊,那这个mean的结果是什么呢,s>p_sum应该不是一个数组吧
#9-3 - 2023-4-1 23:45
冷冻水产鉴定员
看动画好累 说: 是啊,那这个mean的结果是什么呢,s>p_sum应该不是一个数组吧
s>p_sum也可以理解为一个由0和1构成的array。1代表这个模拟结果下s>p_sum为TRUE,0代表s>p_sum为FALSE。mean(s>p_sum)就是s>p_sum为TRUE的次数占总模拟数的概率。
#9-4 - 2023-4-2 00:13
卯月加油努力
冷冻水产鉴定员 说: s>p_sum也可以理解为一个由0和1构成的array。1代表这个模拟结果下s>p_sum为TRUE,0代表s>p_sum为FALSE。mean(s>p_sum)就是s>p_sum为TRUE的次数占总...
我装了个R,单步调了一下,q每次都是0和1
#9-5 - 2023-4-2 00:14
卯月加油努力
冷冻水产鉴定员 说: s>p_sum也可以理解为一个由0和1构成的array。1代表这个模拟结果下s>p_sum为TRUE,0代表s>p_sum为FALSE。mean(s>p_sum)就是s>p_sum为TRUE的次数占总...
另外我这里复现出来是0.503,seed也是12345(
#9-6 - 2023-4-2 00:21
冷冻水产鉴定员
看动画好累 说: 另外我这里复现出来是0.503,seed也是12345(
上硬核编程我可要投降了,我连单步调是啥都不知道。我不是学CS的,往楼下瞅瞅,我自己独立第一次写一份真正的代码是3个月前。
#9-7 - 2023-4-2 00:36
冷冻水产鉴定员
看动画好累 说: 是啊,那这个mean的结果是什么呢,s>p_sum应该不是一个数组吧
又看了下代码,你说的没错,但我懒得改了。你有兴趣可以修改一下发出来。
#9-8 - 2023-4-2 00:38
卯月加油努力
冷冻水产鉴定员 说: 上硬核编程我可要投降了,我连单步调是啥都不知道。我不是学CS的,往楼下瞅瞅,我自己独立第一次写一份真正的代码是3个月前。
那么其实Prob函数就等价于直接return(s>p_sum),因为q=s>p_sum
当q=1,q>0.5=1;当q=0,q>0.5=0.
我实验验证是成立的。
那么你做的其实就把最外层的概率脱掉了,也就是计算了P(S_N>=E(S_N))。
#9-9 - 2023-4-2 00:51
冷冻水产鉴定员
看动画好累 说: 那么其实Prob函数就等价于直接return(s>p_sum),因为q=s>p_sum
当q=1,q>0.5=1;当q=0,q>0.5=0.
我实验验证是成立的。
那么你做的其实就把最外层的概率脱掉了...
不错,那刚好和你10楼的想法一致是吧。你是主要用python吗?想请教一下这里https://chii.in/group/topic/379831#post_2289292,为什么不能直接用ratio上边的注释那样去算啊。
#9-10 - 2023-4-2 00:58
卯月加油努力
冷冻水产鉴定员 说: 不错,那刚好和你10楼的想法一致是吧。你是主要用python吗?想请教一下这里https://bgm.tv/group/topic/379831#post_2289292,为什么不能直接用ratio上...
注释也不对吧,我猜他想写的是son_preference(prob),不能这么写是因为son_preference的参数应该是一个数值而不是list,这里传list会报错。比较pythonic的写法应该是ratio=[son_preference(p) for p in prob]
#9-11 - 2023-4-2 01:07
冷冻水产鉴定员
看动画好累 说: 注释也不对吧,我猜他想写的是son_preference(prob),不能这么写是因为son_preference的参数应该是一个数值而不是list,这里传list会报错。比较pythonic的写法应...
没错是我的又一丢人之作。是的注释的argument应该是prob。我lecture notes里的代码都是像注释那么做的,argument直接放一个list,整不明白。
#10 - 2023-4-1 23:40
(Say hello to my little friend!)
还有一个问题,为什么数学语言是这样的,按照原题主的意思:
做成的事件比“期望做成的事件”相等或者更多的「概率」比,做成的事件比“期望做成的事件”少的「概率」,要大!
“做成的事件”=S_N,期望做成的事件=E(S_N),那原题的意思应该是P(S_N>=E(S_N))>1/2,因为题主没说w.h.p,应该不用套最外层的概率才对。(概率论小白的理解)
#11 - 2023-4-1 23:43
(读万卷书,行万里路,娶万里花)
教练我也想学(bgm38)计算机零基础,大学再学卷得过那帮从小学开始学的吗(bgm38)
#11-1 - 2023-4-1 23:50
冷冻水产鉴定员
实不相瞒,我自己独立第一次写一份真正的代码是3个月前。
#11-2 - 2023-4-1 23:52
冷冻水产鉴定员
基于个人经历,不建议碰那些花钱的编程课,尤其是什么少儿编程。我3个月前连在哪写代码都不知道,一堆大作业硬是逼我把我专业相关的编程应用全搞会了。
#12 - 2023-4-1 23:44
(Say hello to my little friend!)
还有一个疑问,程序中给定了超参数N=1000,有没有研究过概率对这个超参数的敏感度呢(画个图什么的)
#12-1 - 2023-4-1 23:53
冷冻水产鉴定员
留做习题。
#12-2 - 2023-4-2 11:34
kj6w
根据我的计算和暴力枚举,
N=1 P=1
N=2 P=2-2ln2
N=3 P≈0.43
N=4 P≈0.56
#13 - 2023-4-1 23:58
(There’s magic here tonight.)
首先,计算机的随机数生成器就不一定够随机.....
你可能需要一个TRNG,例如: 这个
#13-1 - 2023-4-2 00:05
冷冻水产鉴定员
v我30镑买一个然后说服我的学校抛弃PRNG
#13-2 - 2023-4-2 00:10
FlyGoat
冷冻水产鉴定员 说: v我30镑买一个然后说服业界抛弃PRNG
如果你的电脑是x86并且足够新的话可以用RDSEED指令,RDSEED来源是热噪声,绝对比基于IO的entropy更能体现自然界的随机性(x
#14 - 2023-4-2 00:50
(Say hello to my little friend!)
由于家里电脑太渣,简单模拟了一下P(S_N>=E(S_N))的概率
N=10,P=0.511
N=100,P=0.486
N=1000,P=0.496
N=10000,P=0.49
N=100000,P=0.513
或许原题应该改成区间估计?
#15 - 2023-4-2 01:40
(我长大了要发明7G)
这下标我还以为是mixture model
ParameterMixtureDistribution[BernoulliDistribution[p], p \[Distributed] UniformDistribution[{0.5, 1}]]
#15-1 - 2023-4-2 01:54
冷冻水产鉴定员
notation啥的随便写的,mixture考试没考我就没啥印象,actuarial maths的lecture notes我甚至没仔细看过。这就是临时抱佛脚选手的自信。
#15-2 - 2023-4-2 02:58
Jerry@Bangumi
冷冻水产鉴定员 说: notation啥的随便写的,mixture考试没考我就没啥印象,actuarial maths的lecture notes我甚至没仔细看过。这就是临时抱佛脚选手的自信。
你写得对,确实是mixture……虽然好像不是我写的那个……
(睡了,我是fw
#16 - 2023-4-10 14:38
(Life, what is it but a dream?)
挖个坟(bgm38)

首先𝔼[𝐴𝑖]是一个具体的值。𝔼[𝐴𝑖] = 𝑃(𝐴𝑖 = 1)这步没错,但是不能直接等于𝑃𝑖

非常的intuitive毕竟𝔼[𝑃𝑖] = (1+0.5)/2 = 0.75
也就是说本帖的conjecture简化一下就是 Given 𝑆_𝑛 ∼ Bin(𝑛, 0.75), 𝑃(𝑆_𝑛 > 0.75𝑛) > 1/2.
但如楼上指出的,𝑛 = 3 时不成立,因为 𝑛 = 3时𝑃(𝑆_𝑛 > 0.75n) = 𝑃(𝑆_𝑛 = 3) = 27/64 < 0.5.

然后,大致看了一下原帖中的问题,如果我没理解错的话应该是
Given 𝑝 ∈ (0.5, 1), 𝑆_𝑛 ∼ Bin(𝑛, 𝑝), 𝑃(𝑆_𝑛 > 𝑛𝑝) ⩼ 𝑃(𝑆_𝑛 < 𝑛𝑝)
对于这个问题我是一点idea都没有(bgm38),Google 上面有一些 𝑃(𝑆_𝑛 > 𝑛𝑝)/𝑃(𝑆_𝑛 < 𝑛𝑝) 分别的upper/lower bound,但是好像并没有什么可以用来比较𝑃(𝑆_𝑛 > 𝑛𝑝)和𝑃(𝑆_𝑛 < 𝑛𝑝)的。
#16-1 - 2023-4-10 15:55
冷冻水产鉴定员
好!还是latex看得顺眼。回头等我什么时候又闲得发慌了细细拜读一下您的derivation。
#16-2 - 2023-4-10 16:06
posthumz
我傻了,𝑛𝑝∉ℤ的时候𝑃(𝑆_𝑛 > 𝑛𝑝) 与 𝑃(𝑆_𝑛 < 𝑛𝑝) 之间的关系可以用median来看,这时候𝑃(𝑆_𝑛 > 𝑛𝑝)+𝑃(𝑆_𝑛 < 𝑛𝑝)=1,也就是说只需要看𝑃(𝑆_𝑛 > 𝑛𝑝) ≥ 1/2是否就行了。而根据median的定义,如果median ≤ ⌊𝑛𝑝⌋那么𝑃(𝑆_𝑛 < 𝑛𝑝) ≥ 1/2,反之亦然。
然后proof by Wikipedia,如果𝑝∈ℚ那么binomial distribution的median是unique的,也就是说对于任何𝑛,median都是一样的。那么考虑𝑛 = 1的情况,很明显𝑝∈(0.5, 1)时𝑃(𝑆_𝑛 > 𝑛𝑝) = 𝑃(𝑆_𝑛 = 1) = 𝑝 > 0.5 > 𝑃(𝑆_𝑛 < 𝑛𝑝) = 𝑃(𝑆_𝑛 = 0),如果Wikipedia上的结论为真那么这对于所有𝑛也都是成立的。
在加上@kj6w (怎么at不了)的对于np为0.5整数倍时也成立的结论,至少所有的有理数𝑝都解决了(bgm38)
无理数就没法了,想用Monte Carlo都挺难(除非用符号计算?)。
#17 - 2023-4-10 16:27
删除了回复
#18 - 2023-4-10 23:09
@posthumz
话说你@的方法好像有点不对?@我要@我的数字id642028,直接@昵称是不行的,但好像设定用户名之后就不能用数字id了。
不知道为什么我要回复你总是会跳到首页,就只有@你试试了,你是不是开了什么隐私之类的(bgm38)
(菜鸡还真挺不习惯这种半英文半中文的写法(bgm38)不过这样写数学表达式好看多了)