复现fish04课代码

import scipy.stats
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

%config InlineBackend.figure_format = 'retina'
## 生成随机数
np.random.seed(123)
np.random.random(5)
array([ 0.69646919,  0.28613933,  0.22685145,  0.55131477,  0.71946897])
np.random.randint(0,9,10)
#生成0-9的10个随机整数
array([6, 1, 0, 1, 0, 0, 3, 4, 0, 0])

蒙特卡洛模拟求圆周率

num = 1000
x = np.random.random(num)
y = np.random.random(num)

pi = np.sum(x**2 + y**2 < 1) / num * 4
print('PI:', pi)
## 为什么呢?   
PI: 3.196

plt.figure(figsize=(5,5))

plt.scatter(x,y, alpha = 0.6)
plt.axis([0,1,0,1])

x2 = np.arange(0, 1.01, 0.01)
y2 = np.sqrt(1 - x2**2)
plt.plot(x2, y2, 'm', lw=3)

plt.show()

output_7_0.png

连续分布和正太分布

模拟面包重量的分布

假设是均值为950克,标准差为50克的正态分布。

那个数学家的故事,想起来了
mean = 950
std = 50

# 生成满足正态分布的随机数,并绘制直方图
sample = np.random.normal(mean, std, size=365)
plt.hist(sample, bins=30, alpha=0.7, rwidth=0.9, normed=True)

plt.show()
output_9_0.png
mean = 950
std = 50
norm = scipy.stats.norm(mean, std)
#  用 `scipy.stats.norm` 生成正态分布,
##这是新的方法咯?
x = np.arange(700, 1200, 1)
## 这里的1,是什么参数
y = norm.pdf(x)
plt.plot(x, y)
plt.show()

### 绘制正太分布的概率密度函数
output_11_0.png
### 累计分布函数cdf,对了到底这几个pdf和cdf的英文全名是什么啊?
# probability density function 
# cumulative distribution function 
x = np.arange(700, 1200, 1)
y = norm.cdf(x)
plt.plot(x, y)
plt.show()
output_12_0.png
### 计算买到的面包小于1000克的概率
# 这个好像很重要呢


#绘制PDF曲线
x = np.arange(700, 1200, 1)
y = norm.pdf(x)
plt.plot(x, y)

#在1000处绘制竖线
plt.vlines(1000, 0, norm.pdf(1000))

#填充颜色
x2 = np.arange(700, 1000, 1)
y2 = norm.pdf(x2)
plt.fill_between(x2, y2, color='blue', alpha=0.1)

#设置y轴范围
plt.ylim(0,0.0085)

plt.show()

![output_16_0.png](http://upload-images.jianshu.io/upload_images/4421285-b947238a22195c45.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
norm.cdf(1000)
## 其实累计分布才能解决,低于1000的问题
0.84134474606854293

计算买到的面包大于1000克的概率

#绘制PDF曲线
x = np.arange(700, 1200, 1)
y = norm.pdf(x)
plt.plot(x, y)

#绘制竖线
plt.vlines(1000, 0, norm.pdf(1000))

#填充颜色
x2 = np.arange(1000, 1200, 1)
y2 = norm.pdf(x2)
plt.fill_between(x2, y2, color='blue', alpha=0.1)

#设置y轴范围
plt.ylim(0,0.0085)

plt.show()
output_16_0.png
1 - norm.cdf(1000)
## 对呀,用1-另一半就可以了呀
0.15865525393145707
norm.sf(1000)
### 这个sf是什么意思
## 好像sf是反函数。但忘了 具体是反什么了?
0.15865525393145707
## 计算面包在950-1050的概率
#绘制PDF曲线
x = np.arange(700, 1200, 1)
y = norm.pdf(x)
plt.plot(x, y)

#绘制竖线
plt.vlines(950, 0, norm.pdf(950))
plt.vlines(1050, 0, norm.pdf(1050))

#填充颜色
x2 = np.arange(950, 1050, 1)
y2 = norm.pdf(x2)
plt.fill_between(x2, y2, color='blue', alpha=0.1)

#设置y轴范围
plt.ylim(0,0.0085)

plt.show()
output_19_0.png
norm.cdf(1050) - norm.cdf(950)
#cdf(1050)是指低于1050的函数的意思么?
0.47724986805182079
# 90%的情况下,买到的面包是小于多少克的?
### ppf才是反函数吧,就是要实现某概率,该是什么初始变量
norm.ppf(0.9)
1014.07757827723
# 80%的情况下,买到的面包是大于多少克的?
norm.isf(0.8)


907.91893832135429

离散分布

outcome = np.random.randint(0,2,10)
outcome
array([1, 0, 0, 1, 1, 0, 1, 1, 0, 1])
np.sum(outcome)
6
sample = [np.sum(np.random.randint(0,2,10)) for i in range(10000)]

sample = pd.Series(sample)
# pdserie 什么意思啊
sample.value_counts().sort_index().plot.bar()
plt.show()
output_28_0.png
# 投硬币问题的二项分布
n = 10
p = 0.5
binomial = scipy.stats.binom(n, p)
x = np.arange(0,11)
plt.plot(x, binomial.pmf(x), 'bo')
plt.vlines(x, 0, binomial.pmf(x), colors='b')
plt.ylim(0,0.3)
plt.show()
output_30_0.png
mean, var = binomial.stats()
print(mean)
print(var)
5.0
2.5
### 应用

# 某家风投企业,投资成功的概率是5%,如果它投了100个项目,恰好有5个成功的概率是多少?
n = 100
p = 0.05
binom = scipy.stats.binom(n,p)

x = np.arange(0,101)
plt.plot(x, binom.pmf(x), 'bo')
plt.vlines(x, 0, binom.pmf(x), colors='b')
plt.ylim(0,0.2)
plt.show()
output_33_0.png
binom.pmf(5)
## pmf概率质量函数
0.18001782727043672
1 - binom.cdf(4)
## 累计概率分布
0.56401869931428927
binom.sf(4)

0.56401869931429105
binom.isf(0.1)
#10%的情况下,能成功多少
8.0
binom.ppf(1 - 0.1)
8.0
## 离散分布 - 泊松分布
# 有一家便利店使用泊松分布来估计周五晚上到店买东西的顾客数,根据以往数据,周五晚上平均每个小时的顾客数是20。
lmd = 20
poisson = scipy.stats.poisson(lmd)
x = np.arange(0,40)
plt.plot(x, poisson.pmf(x), 'bo')
plt.vlines(x, 0, poisson.pmf(x), colors='b')
plt.ylim(0,0.1)
plt.show()
output_40_0.png
mean, var = poisson.stats()
print(mean)
print(var)
20.0
20.0
#顾客数恰好是20的概率?
poisson.pmf(20)
0.088835317392084806
# 顾客数小于15的函数
poisson.cdf(15)
0.15651313463974229
# 顾客数大于等于20的概率?
poisson.sf(19)
0.52974273316075782
# 百分之90%的情况下,顾客数不会超过多少?
poisson.ppf(0.9)
26.0
#作业## 基本作业

#机票超卖现象

#假设某国际航班有300个座位,乘客平均误机率是2%。


#1、如果一共卖出305张机票,那么登机时人数超额的概率是多少?

# 某家风投企业,投资成功的概率是5%,如果它投了100个项目,恰好有5个成功的概率是多少?
n = 305
p = 0.98
binom = scipy.stats.binom(n,p)
binom.pmf(301)


0.12929463926438506
1 - binom.cdf(300)

0.26915013819815137
binom.pmf(301)
0.12929463926438506
n = 305
p = 0.98
binom = scipy.stats.binom(n,p)

lmd=300
poisson = scipy.stats.poisson(lmd)
poisson.ppf(0.9)

322.0

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容