在Julia中计算蒙特卡洛法估算π结果的Median absolute deviation
Julia 计算中位数绝对偏差(MAD)的实现方法
方法1:调用官方统计包内置函数
Julia 生态中StatsBase包已经内置了经过验证的mad函数,直接调用即可:
- 第一步:安装并导入依赖包
import Pkg Pkg.add("StatsBase") using StatsBase
- 第二步:将你的π近似值存储为数值向量,再调用函数
# 你的蒙特卡洛估计结果 pi_estimates = [3.0964517741129436, 3.152423788105947, 3.1284357821089457, 3.1404297851074463, 3.0904547726136933] # 计算MAD,默认开启正态化修正(修正系数1.4826,匹配正态分布标准差尺度) mad_result = mad(pi_estimates) # 如果不需要修正,添加参数关闭即可 # mad_result = mad(pi_estimates; normalize=false)
你也可以直接和你的蒙特卡洛模拟代码整合,不用手动录入结果:
using StatsBase # 直接生成5次估计结果并计算MAD estimates = [picircle(1000) for _ in 1:5] println("MAD计算结果: ", mad(estimates))
方法2:无依赖手动实现
如果不想引入额外包,可以直接手动实现逻辑,代码如下:
using Statistics # 标准库自带,无需额外安装 function custom_mad(x::Vector{<:Real}; normalize::Bool=true) med = median(x) abs_deviations = abs.(x .- med) mad_val = median(abs_deviations) return normalize ? mad_val * 1.4826 : mad_val end # 调用示例 custom_mad(pi_estimates)
内容的提问来源于stack exchange,提问作者Struggling_Student
相关产品推荐
相关产品推荐

