python+正态分布+蒙特卡洛预测男女身高概率!

医药统计项目联系QQ:231469242
正态分布也称常态分布或常态分配,是连续随机变量概率分布的一种,是在数理统计的理论与实际应用中占有重要地位的一种理论分布。自然界人类社会,心理与教育中大量现象均按正态形式分布。例如能力的高低,学生成绩的好坏,人们的社会态度,行为表现以及身高、体重等身体状态。
(高斯Carl Friedrich Gauss)

正态分布是由阿伯拉罕·德莫弗尔(Abraham de Moivre)1733年发现的。其他几位学者如拉普拉斯(Marquis de Laplace)、高斯 (Carl Friedrich Gauss)对正态分布的研究也做出了贡献,故有时称正态分布为高斯分布。
正态分布的函数(又称密度函数)为

标准正态分布这两个参数分别为0与1。
标准正态分布的密度函数可写作:

(正态分布三个标准差的概率分布)

所有正太分布都可以转化成标准正态分布。
期望值μ决定了其位置,其标准差σ决定了分布的幅度。

正态分布具有很大医学意义。正态分布的应用某些医学现象,如同质群体的身高、红细胞数、血红蛋白量、胆固醇等,以及实验中的随机误差,呈现为正态或近似正态分布。
我们提出一个常见的身高概率问题:假设男性平均身高175,标准差6;女性平均身高168, 标准差3;随机抽取一个女性和男性,女性高于男性随机概率是多少?
我们不需要通过复杂公式来计算。只需让计算机产生足够多的随机值来模拟计算,最后得到答案。
下面我们用Python的蒙特卡洛建模正态分布函数,解决这个男女身高概率问题。
(matplotlib绘制两个正态分布,红色表示女性,蓝色表示男性)

程序模拟10万个随机值,最后算出结果0.14727
即女性高于男性随机概率为0.14727

测试环境Anaconda Python2.7
源代码已经本人测试无问题
# -*- coding: utf-8 -*-
‘’’
By Toby ,Blog:
http://www.cnblogs.com/webRobot/
’’’
import numpy as np
import matplotlib.pyplot as plt
import scipy.stats as stats
import seaborn as sns
import math,pylab,matplotlib,numpy
from matplotlib.font_manager import FontProperties
#设置中文字体
font=FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=15)
#测试n次
n=100000
#标准正太分布
normalDistribution=stats.norm(175,6)
#方差较大正态分布
normalDistribution1=stats.norm(168,3)
#一次随机
def Random_single():
array_male=normalDistribution.rvs(1)
array_female=normalDistribution1.rvs(1)
male=array_male[0]
female=array_female[0]
if female>male:
return True
else:
return False
#n次随机,返回count(女性高于男性的次数)
def Multiple_random(n):
count=0
for i in range(n):
value=Random_single()
if value==True:
count+=1
return count
# 计算女性高于男性概率
def Probability(n):
count=Multiple_random(n)
p=count*1.0/n
return p
probability=Probability(n)
print '随机次数',n
print '女性高于男性概率:',probability
#绘图
x=np.arange(60,220)
y=normalDistribution.pdf(x)
y1=normalDistribution1.pdf(x)
plt.plot(x,y,label="male")
plt.plot(x,y1,'r',label="female")
plt.xlabel("x")
plt.ylabel("probability density")
#plt.title("Normal distribution:mean=%.1f,standard
deviation=%.1f"%(mean,std))
plt.title("Normal distribution")
plt.legend()
plt.show()
python+正态分布+蒙特卡洛预测男女身高概率!的更多相关文章
- python 实现 灰色预测 GM(1,1)模型 灰色系统 预测 灰色预测公式推导
来源公式推导连接 https://blog.csdn.net/qq_36387683/article/details/88554434 关键词:灰色预测 python 实现 灰色预测 GM(1,1)模 ...
- 用python做时间序列预测九:ARIMA模型简介
本篇介绍时间序列预测常用的ARIMA模型,通过了解本篇内容,将可以使用ARIMA预测一个时间序列. 什么是ARIMA? ARIMA是'Auto Regressive Integrated Moving ...
- caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例
caffe机器学习环境搭建及python接口编译参见我的上一篇博客:机器学习caffe环境搭建--redhat7.1和caffe的python接口编译 1.运行caffe图片分类器python接口 还 ...
- 利用Python统计微信联系人男女比例以及简单的地区分布
寒暄的话不多说,直接进入主题. 运行效果图: [准备环境] Python版本:v3.5及其以上 开发工具:随意,此处使用Pycharm [依赖包] 1.itchat (CMD运行:pip instal ...
- python数据分析Adult-Salary预测
具体文档戳下方网站 https://pan.wps.cn/l/s4ojed8 代码如下: import pandas as pdimport numpy as npimport matplotlib. ...
- python多分类预测模版,输出支持度,多种分类器,str的csv转float
预测结果为1到11中的1个 首先加载数据,训练数据,训练标签,预测数据,预测标签: if __name__=="__main__": importTrainContentdata( ...
- Facebook支持python的开源预测工具Prophet
Facebook 宣布开源一款基于 Python 和 R 语言的数据预测工具――“Prophet”,即“先知”.取名倒是非常直白. Facebook 表示,Prophet 相比现有预测工具更加人性化, ...
- ROC曲线是通过样本点分类概率画出的 例如某一个sample预测为1概率为0.6 预测为0概率0.4这样画出来,此外如果曲线不是特别平滑的话,那么很可能存在过拟合的情况
ROC和AUC介绍以及如何计算AUC from:http://alexkong.net/2013/06/introduction-to-auc-and-roc/ ROC(Receiver Operat ...
- python实现贝叶斯网络的概率推导(Probabilistic Inference)
写在前面 这是HIT2019人工智能实验三,由于时间紧张,代码没有进行任何优化,实验算法仅供参考. 实验要求 实现贝叶斯网络的概率推导(Probabilistic Inference) 具体实验指导书 ...
随机推荐
- K8s爆严重安全漏洞?有何应对措施与建议
Kubernetes最近爆出严重安全漏洞,影响几乎目前所有的版本.实际影响究竟多大?老版本用户是否必须升级?以下是华为云容器服务团队对该漏洞的分析解读. Kubernetes爆出的严重安全漏洞: 攻击 ...
- python-两个图片相似度算法
# -*- coding: UTF-8 -*- """ 作者:zxj 版本:1.0 日期:19-3-24 """ import cv2 im ...
- ping命令使用及其常用参数
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量检查网络是否连通,可以很好地帮助我们分析和判定网络故障.Ping发送一个ICMP(Internet Con ...
- [咸恩静][Love effect]
歌词来源:http://music.163.com/#/song?id=31877654 作曲 : Monster Factory/양승욱 [作曲 : Monster Factory/yang-seu ...
- 微软职位内部推荐-SW Engineer II for Embedded System
微软近期Open的职位: Do you have a passion for embedded devices and services?   Does the following m ...
- PHP Lavavel 使用控制器 传递变量 以及调用 视图模板
控制器第一次入门使用 位置: 在app/Http/Controllers 目录下创建文件名格式:例如 UserController路由调用格式:Route::get('user/tom','UserC ...
- PowerTeam--Alpha阶段个人贡献分及转会人员
PowerTeam--Alpha阶段个人贡献分 我们的团队共有6人,总分300分. 经团队成员通过个人申请以及组内投票的方式,最终的等级评定如下面的等级评定矩阵所示: β1 β2 β3 γ1 γ2 ...
- 2-Eighteenth Scrum Meeting-20151218
任务安排 成员 今日完成 明日任务 闫昊 写完学习进度记录的数据库操作 写完学习进度记录的数据库操作 唐彬 编写与服务器交互的代码 和服务器老师交流讨论区后台接口 史烨轩 获取视频url 尝试使用 ...
- 20135220谈愈敏Linux Book_1&2
第一章 Linux内核简介 从unix的历史视角来认识Linux内核与Linux操作系统的前世今生. Unix历史 贝尔实验室设计的一个文件系统原型逐渐演化而成Unix,而后Unix操作系统用C语言重 ...
- process.tar.gz
exec1.c #include <stdio.h> #include <unistd.h> int main() { char *arglist[3]; arglist[0] ...
