深入浅出统计学 第四五章 离散概率的计算与分布
離散概率計算與分布的應用
在原書的這兩章離散概率計算與分布的應用,重點在于概念的理解和公式的記憶.
而對于整本書而言,四五六章其實都作為第七章:三種離散概率分布,第八,九章,正態分布(連續概率分布之一)做鋪墊.
主要包括以下內容:
1. 期望與方差的計算
2. 線性變換與獨立觀察值變換有關內容
3. 貝葉斯定理
其中特別要注意的1,2點,在之后的內容中都將頻繁使用這些內容.
而貝葉斯定理雖然很重要,但是對于之后的內容影響不大,如果有需要的話.可以進行擴展閱讀貝葉斯算法,貝葉斯優化等.
其中貝葉斯算法算是機器學習比較基本的內容,去年寫過一個實現純Python原生語言的的樸素貝葉斯法分類器的Python3 實現,如果有興趣可以嘗試用numpy和pandas改寫一下.
本文的編碼內容較少,包括生成隨機離散概率分布與相應計算,以及一個簡易的封裝類兩個部分.
用Python代碼計算計算器
生成隨機變量
# 首先使用numpy生成隨機變量 import numpy as np np.random.seed(1024) data = np.random.randint(1,5,size = 301)計算概率分布
假設我們的數據為所有可能結果的數據集,這里我們通過上面生成的數據,計算概率分布.
或者我們也可以直接生成一個格式一致的pandas.core.series.Series類型數據,然后再利用之后的代碼進行計算
計算期望與方差
exp= sum(value_count.index * value_count) var = sum(((value_count.index - exp) ** 2) * value_count) print("exp: {0:.3f}, var: {1:.3f}".format(exp, var))# 線性變換: aX+b a = 2 b=0.5 exp , var = a * exp + b, a * a * var print("exp: {0:.3f}, var: {1:.3f}".format(exp, var)) # 獨立觀察值 nX n = 10 print("exp: {0:.3f}, var: {1:.3f}".format(n * exp, n * var)) exp: 2.452, var: 1.191 exp: 5.404, var: 4.765 exp: 54.037, var: 47.648對代碼進行封裝
封裝后的代碼可以計算數據集期望方差,計算一個確定的離散概率分布的方差,或者計算其相關的線性變換.
而對于獨立觀察值沒有封裝,直接將與默認版本結果 * n 即可
使用封裝代碼
我們首先計算一下之前的數據集,然后在利用封裝的函數計算《深入淺出統計學》第227頁的例題
discrete = Discrete_probability_distribution() data_transfrom, exp, var = discrete.fit_transfrom(data) print("data: \n", data_transfrom) print("exp: {0:.3f}, var: {1:.3f}".format(exp, var)) data: 2 0.292359 1 0.242525 3 0.235880 4 0.229236 dtype: float64 exp: 2.452, var: 1.191 # 計算 P225 頁例題 import pandas as pd Ser = pd.Series([0.8, 0.1, 0.07, 0.03]) Ser.index = [-0.5, 1.5, 4.5, 9.5] discrete.data = Ser exp2, var2 = discrete.transfrom() print("exp: {0:.3f}, var: {1:.3f}".format(exp2, var2)) exp3, var3 = discrete.transfrom(b = -0.5) print("exp: {0:.3f}, var: {1:.3f}".format(exp3, var3)) exp: 0.350, var: 4.428 exp: -0.150, var: 4.428總結
以上是生活随笔為你收集整理的深入浅出统计学 第四五章 离散概率的计算与分布的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: R语言简介与案例
- 下一篇: 深入浅出统计学 第六章 排列与组合