You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用scipy.stats估算概率:求Python实现R中pnorm对应方案

解决方案:用Scipy计算答错不超过4道题的概率

首先明确问题:答错题目数量服从二项分布,参数为n=50(总题数),p=0.1(单题答错概率)。你在R中用的是正态近似法(基于中心极限定理),对应Python的实现如下:

1. 正态近似法(和R代码等价)

使用scipy.stats.norm的累积分布函数cdf,参数完全对应R中的pnorm:

  • loc:正态分布的均值(对应R的m),计算为n*p = 50*0.1 = 5
  • scale:正态分布的标准差(对应R的s),计算为sqrt(n*p*(1-p)) = sqrt(4.5)
  • 连续性修正:原分布是离散的,要求答错≤4道,对应连续正态分布的4.5(和R中用4.5的逻辑一致)

代码示例:

import scipy.stats as stats
import numpy as np

# 正态近似计算
prob_approx = stats.norm.cdf(4.5, loc=5, scale=np.sqrt(4.5))
print(f"正态近似概率:{prob_approx:.4f}")

2. 精确二项分布计算

如果需要更精确的结果,可以直接用二项分布的累积分布函数:

# 精确二项分布计算
prob_exact = stats.binom.cdf(4, n=50, p=0.1)
print(f"精确概率:{prob_exact:.4f}")

两种方法的结果会非常接近,正态近似在n较大、p不极端时效果很好。

内容的提问来源于stack exchange,提问作者Tracyrenee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:45:32