如何在Python中實現這五類強大的概率分布

2022-02-13 03:48:43 字數 3099 閱讀 9288

在討論這些概率分布之前,簡單說說什麼是隨機變數(random variable)。隨機變數是對一次試驗結果的量化。

舉個例子,乙個表示拋硬幣結果的隨機變數可以表示成

python12

x=隨機變數是乙個變數,它取值於一組可能的值(離散或連續的),並服從某種隨機性。隨機變數的每個可能取值的都與乙個概率相關聯。隨機變數的所有可能取值和與之相關聯的概率就被稱為概率分布(probability distributrion)。

我鼓勵大家仔細研究一下scipy.stats模組。

概率分布有兩種型別:離散(discrete)概率分布和連續(continuous)概率分布。

離散概率分布也稱為概率質量函式(probability mass function)。離散概率分布的例子有伯努利分布(bernoulli distribution)、二項分布(binomial distribution)、泊松分布(poisson distribution)和幾何分布(geometric distribution)等。

連續概率分布也稱為概率密度函式(probability density function),它們是具有連續取值(例如一條實在線的值)的函式。正態分佈(normal distribution)、指數分布(exponential distribution)和β分布(beta distribution)等都屬於連續概率分布。

服從二項分布的隨機變數x表示在n個獨立的是/非試驗中成功的次數,其中每次試驗的成功概率為p。

如果你想知道每個函式的原理,你可以在ipython筆記本中使用help file命令。 e(x)表示分布的期望或*均值。

鍵入stats.binom?了解二項分布函式binom的更多資訊。

二項分布的例子:拋擲10次硬幣,恰好兩次正面朝上的概率是多少?

假設在該試驗中正面朝上的概率為0.3,這意味著*均來說,我們可以期待有3次是硬幣正面朝上的。我定義擲硬幣的所有可能結果為k = np.arange(0,11):你可能觀測到0次正面朝上、1次正面朝上,一直到10次正面朝上。我使用stats.binom.pmf計算每次觀測的概率質量函式。它返回乙個含有11個元素的列表(list),這些元素表示與每個觀測相關聯的概率值。

可以使用.rvs函式模擬乙個二項隨機變數,其中引數size指定你要進行模擬的次數。讓python返回10000個引數為n和p的二項式隨機變數。輸出這些隨機變數的*均值和標準差,然後畫出所有的隨機變數的直方圖。

乙個服從泊松分布的隨機變數x,表示在具有比率引數(rate parameter)λ的一段固定時間間隔內,事件發生的次數。引數λ告訴你該事件發生的比率。隨機變數x的*均值和方差都是λ。

泊松分布的例子:已知某路口發生事故的比率是每天2次,那麼在此處一天內發生4次事故的概率是多少?

讓我們考慮這個*均每天發生2起事故的例子。泊松分布的實現和二項分布有些類似,在泊松分布中我們需要指定比率引數。泊松分布的輸出是乙個數列,包含了發生0次、1次、2次,直到10次事故的概率。我用結果生成了以下。

可以看到,事故次數的峰值在均值附*。*均來說,可以預計事件發生的次數為λ。嘗試不同的λ和n的值,然後看看分布的形狀是怎麼變化的。

現在來模擬1000個服從泊松分布的隨機變數。

正態分佈是一種連續分布,其函式可以在實在線的任何地方取值。正態分佈由兩個引數描述:分布的*均值μ和方差σ2 。

e(x) = μ, var(x) = σ2

正態分佈的取值可以從負無窮到正無窮。可以注意到,用stats.norm.pdf得到正態分佈的概率密度函式。

β分布是乙個取值在 [0, 1] 之間的連續分布,它由兩個形態引數α和β的取值所刻畫。

β分布的形狀取決於α和β的值。貝葉斯分析中大量使用了β分布。

當將引數α和β都設定為1時,該分布又被稱為均勻分布(uniform distribution)。嘗試不同的α和β取值,看看分布的形狀是如何變化的。

指數分布是一種連續概率分布,用於表示獨立隨機事件發生的時間間隔。比如旅客進入機場的時間間隔、打進客服中心**的時間間隔、中文維基百科新條目出現的時間間隔等等。

我將引數λ設定為0.5,並將x的取值範圍設定為 $[0, 15]$ 。

接著,在指數分布下模擬1000個隨機變數。scale引數表示λ的倒數。函式np.std中,引數ddof等於標準偏差除以 $n-1$ 的值。

概率分布就像蓋房子的藍圖,而隨機變數是對試驗事件的總結。可以去看看哈佛大學資料科學課程的講座,joe blitzstein教授給了乙份摘要,包含了你所需要了解的關於統計模型和分布的全部。

如何在Python中實現資料分箱

1 資料分箱 資料分箱技術在pandas官方給出的定義 bin values into discrete intervals,是指將值劃分到離散區間。好比不同大小的蘋果歸類到幾個事先布置的箱子中 不同年齡的人劃分到幾個年齡段中。這種技術在資料處理時會很有用。2 例子 我們先來看例子 import n...

如何在Python中實現矩陣分析

根據事物 如產品,服務等 的兩個重要屬性 指標 作為分析依據,進行關聯分析,找出解決問題的一種分析方法。如何使用python進行矩陣分析呢 各個省份的gdp 人口矩陣分析,實現如下 import pandas import matplotlib import matplotlib.pyplot as...

如何在Python中實現RFM分析

rfm分析是根據客戶活躍程度和交易金額貢獻,進行客戶價值細分的一種方法 可以通過r,f,m三個維度,將客戶劃分為8種型別。rfm分析過程 1.計算rfm各項分值 r s,距離當前日期越近,得分越高,最高5分,最低1分 f s,交易頻率越高,得分越高,最高5分,最低1分 m s,交易金額越高,得分越高...