當前位置:首頁 » 編程語言 » python分布函數

python分布函數

發布時間: 2023-11-17 06:18:26

⑴ 怎麼用python表示出二維高斯分布函數,mu表示均值,sigma表示協方差矩陣,x表示數據點

clear
closeall
%%%%%%%%%%%%%%%%%%%%%%%%%生成實驗數據集

rand('state',0)
sigma_matrix1=eye(2);
sigma_matrix2=50*eye(2);

u1=[0,0];
u2=[30,30];
m1=100;
m2=300;%樣本數
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm1數據集
Y1=multivrandn(u1,m1,sigma_matrix1);
Y2=multivrandn(u2,m2,sigma_matrix2);

scatter(Y1(:,1),Y1(:,2),'bo')
holdon
scatter(Y2(:,1),Y2(:,2),'r*')
title('SM1數據集')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%sm2數據集
u11=[0,0];
u22=[5,5];
u33=[10,10];
u44=[15,15];
m=600;
sigma_matrix3=2*eye(2);
Y11=multivrandn(u11,m,sigma_matrix3);
Y22=multivrandn(u22,m,sigma_matrix3);
Y33=multivrandn(u33,m,sigma_matrix3);
Y44=multivrandn(u44,m,sigma_matrix3);
figure(2)
scatter(Y11(:,1),Y11(:,2),'bo')
holdon
scatter(Y22(:,1),Y22(:,2),'r*')
scatter(Y33(:,1),Y33(:,2),'go')
scatter(Y44(:,1),Y44(:,2),'c*')
title('SM2數據集')
end
functionY=multivrandn(u,m,sigma_matrix)
%%生成指定均值和協方差矩陣的高斯數據
n=length(u);
c=chol(sigma_matrix);
X=randn(m,n);
Y=X*c+ones(m,1)*u;
end

⑵ 統計學入門級:常見概率分布+python繪制分布圖

如果隨機變數X的所有取值都可以逐個列舉出來,則稱X為離散型隨機變數。相應的概率分布有二項分布,泊松分布。

如果隨機變數X的所有取值無法逐個列舉出來,而是取數軸上某一區間內的任一點,則稱X為連續型隨機變數。相應的概率分布有正態分布,均勻分布,指數分布,伽馬分布,偏態分布,卡方分布,beta分布等。(真多分布,好恐怖~~)

在離散型隨機變數X的一切可能值中,各可能值與其對應概率的乘積之和稱為該隨機變數X的期望值,記作E(X) 。比如有隨機變數,取值依次為:2,2,2,4,5。求其平均值:(2+2+2+4+5)/5 = 3。

期望值也就是該隨機變數總體的均值。 推導過程如下:
= (2+2+2+4+5)/5
= 1/5 2 3 + 4/5 + 5/5
= 3/5 2 + 1/5 4 + 1/5 5
= 0.6
2 + 0.2 4 + 0.2 5
= 60% 2 + 20% 4 + 20%*5
= 1.2 + 0.8 + 1
= 3

倒數第三步可以解釋為值為2的數字出現的概率為60%,4的概率為20%,5的概率為20%。 所以E(X) = 60% 2 + 20% 4 + 20%*5 = μ = 3。

0-1分布(兩點分布),它的隨機變數的取值為1或0。即離散型隨機變數X的概率分布為:P{X=0} = 1-p, P{X=1} = p,即:

則稱隨機變數X服從參數為p的0-1分布,記作X~B(1,p)。

在生活中有很多例子服從兩點分布,比如投資是否中標,新生嬰兒是男孩還是女孩,檢查產品是否合格等等。

大家非常熟悉的拋硬幣試驗對應的分布就是二項分布。拋硬幣試驗要麼出現正面,要麼就是反面,只包含這兩個結果。出現正面的次數是一個隨機變數,這種隨機變數所服從的概率分布通常稱為 二項分布 。

像拋硬幣這類試驗所具有的共同性質總結如下:(以拋硬幣為例)

通常稱具有上述特徵的n次重復獨立試驗為n重伯努利試驗。簡稱伯努利試驗或伯努利試驗概型。特別地,當試驗次數為1時,二項分布服從0-1分布(兩點分布)。

舉個栗子:拋3次均勻的硬幣,求結果出現有2個正面的概率
已知p = 0.5 (出現正面的概率) ,n = 3 ,k = 2

所以拋3次均勻的硬幣,求結果出現有2個正面的概率為3/8。

二項分布的期望值和方差 分別為:

泊松分布是用來描述在一 指定時間范圍內或在指定的面積或體積之內某一事件出現的次數的分布 。生活中服從泊松分布的例子比如有每天房產中介接待的客戶數,某微博每月出現伺服器癱瘓的次數等等。 泊松分布的公式為

其中 λ 為給定的時間間隔內事件的平均數,λ = np。e為一個數學常數,一個無限不循環小數,其值約為2.71828。

泊松分布的期望值和方差 分別為:

使用Python繪制泊松分布的概率分布圖:

因為連續型隨機變數可以取某一區間或整個實數軸上的任意一個值,所以通常用一個函數f(x)來表示連續型隨機變數,而f(x)就稱為 概率密度函數 。

概率密度函數f(x)具有如下性質 :

需要注意的是,f(x)不是一個概率,即f(x) ≠ P(X = x) 。在連續分布的情況下,隨機變數X在a與b之間的概率可以寫成:

正態分布(或高斯分布)是連續型隨機變數的最重要也是最常見的分布,比如學生的考試成績就呈現出正態分布的特徵,大部分成績集中在某個范圍(比如60-80分),很小一部分往兩端傾斜(比如50分以下和90多分以上)。還有人的身高等等。

正態分布的定義 :

如果隨機變數X的概率密度為( -∞<x<+∞):

則稱X服從正態分布,記作X~N(μ,σ²)。其中-∞<μ<+∞,σ>0, μ為隨機變數X的均值,σ為隨機變數X的標准差。 正態分布的分布函數

正態分布的圖形特點 :

使用Python繪制正態分布的概率分布圖:

正態分布有一個3σ准則,即數值分布在(μ-σ,μ+σ)中的概率為0.6827,分布在(μ-2σ,μ+2σ)中的概率為0.9545,分布在(μ-3σ,μ+3σ)中的概率為0.9973,也就是說大部分數值是分布在(μ-3σ,μ+3σ)區間內,超出這個范圍的可能性很小很小,僅占不到0.3%,屬於極個別的小概率事件,所以3σ准則可以用來檢測異常值。

當μ=0,σ=1時,有

此時的正態分布N(0,1) 稱為標准正態分布。因為μ,σ都是確定的取值,所以其對應的概率密度曲線是一條 形態固定 的曲線。

對標准正態分布,通常用φ(x)表示概率密度函數,用Φ(x)表示分布函數:

假設有一次物理考試特別難,滿分100分,全班只有大概20個人及格。與此同時語文考試很簡單,全班絕大部分都考了90分以上。小明的物理和語文分別考了60分和80分,他回家後告訴家長,這時家長能僅僅從兩科科目的分值直接判斷出這次小明的語文成績要比物理好很多嗎?如果不能,應該如何判斷呢?此時Z-score就派上用場了。 Z-Score的計算定義

即 將隨機變數X先減去總體樣本均值,再除以總體樣本標准差就得到標准分數啦。如果X低於平均值,則Z為負數,反之為正數 。通過計算標准分數,可以將任何一個一般的正態分布轉化為標准正態分布。

小明家長從老師那得知物理的全班平均成績為40分,標准差為10,而語文的平均成績為92分,標准差為4。分別計算兩科成績的標准分數:
物理:標准分數 = (60-40)/10 = 2
語文:標准分數 = (85-95)/4 = -2.5

從計算結果來看,說明這次考試小明的物理成績在全部同學中算是考得很不錯的,而語文考得很差。

指數分布可能容易和前面的泊松分布混淆,泊松分布強調的是某段時間內隨機事件發生的次數的概率分布,而指數分布說的是 隨機事件發生的時間間隔 的概率分布。比如一班地鐵進站的間隔時間。如果隨機變數X的概率密度為:

則稱X服從指數分布,其中的參數λ>0。 對應的分布函數 為:

均勻分布的期望值和方差 分別為:

使用Python繪制指數分布的概率分布圖:

均勻分布有兩種,分為 離散型均勻分布和連續型均勻分布 。其中離散型均勻分布最常見的例子就是拋擲骰子啦。拋擲骰子出現的點數就是一個離散型隨機變數,點數可能有1,2,3,4,5,6。每個數出現的概率都是1/6。

設連續型隨機變數X具有概率密度函數:

則稱X服從區間(a,b)上的均勻分布。X在等長度的子區間內取值的概率相同。對應的分布函數為:

f(x)和F(x)的圖形分別如下圖所示:

均勻分布的期望值和方差 分別為:

⑶ 如何用python求解一個帶正態分布和ln函數的方程

import scipy.stats as sta
import math

def option_call(s,x,r,sigma,t):
d1=(math.log(s/x)+(r+sigma**2/2)*t)/(math.sqrt(t)*sigma)
d2=d1-sigma*math.sqrt(t)
c=s*sta.norm.cdf(d1,0,1)-x*sta.norm.cdf(d2,0,1)*math.exp(-r*t)
return c

⑷ Python基礎 numpy中的常見函數有哪些

有些Python小白對numpy中的常見函數不太了解,今天小編就整理出來分享給大家。

Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似於矩陣的表示形式,不過numpy為我們提供了更多的函數。

數組常用函數
1.where()按條件返回數組的索引值
2.take(a,index)從數組a中按照索引index取值
3.linspace(a,b,N)返回一個在(a,b)范圍內均勻分布的數組,元素個數為N個
4.a.fill()將數組的所有元素以指定的值填充
5.diff(a)返回數組a相鄰元素的差值構成的數組
6.sign(a)返回數組a的每個元素的正負符號
7.piecewise(a,[condlist],[funclist])數組a根據布爾型條件condlist返回對應元素結果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引

改變數組維度
a.ravel(),a.flatten():將數組a展平成一維數組
a.shape=(m,n),a.reshape(m,n):將數組a轉換成m*n維數組
a.transpose,a.T轉置數組a

數組組合
1.hstack((a,b)),concatenate((a,b),axis=1)將數組a,b沿水平方向組合
2.vstack((a,b)),concatenate((a,b),axis=0)將數組a,b沿豎直方向組合
3.row_stack((a,b))將數組a,b按行方向組合
4.column_stack((a,b))將數組a,b按列方向組合

數組分割
1.split(a,n,axis=0),vsplit(a,n)將數組a沿垂直方向分割成n個數組
2.split(a,n,axis=1),hsplit(a,n)將數組a沿水平方向分割成n個數組

數組修剪和壓縮
1.a.clip(m,n)設置數組a的范圍為(m,n),數組中大於n的元素設定為n,小於m的元素設定為m
2.a.compress()返回根據給定條件篩選後的數組

數組屬性
1.a.dtype數組a的數據類型
2.a.shape數組a的維度
3.a.ndim數組a的維數
4.a.size數組a所含元素的總個數
5.a.itemsize數組a的元素在內存中所佔的位元組數
6.a.nbytes整個數組a所佔的內存空間7.a.astype(int)轉換a數組的類型為int型

數組計算
1.average(a,weights=v)對數組a以權重v進行加權平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)數組a的均值、最大值、最小值、中位數、方差、標准差
3.a.prod()數組a的所有元素的乘積
4.a.cumprod()數組a的元素的累積乘積
5.cov(a,b),corrcoef(a,b)數組a和b的協方差、相關系數
6.a.diagonal()查看矩陣a對角線上的元素7.a.trace()計算矩陣a的跡,即對角線元素之和

以上就是numpy中的常見函數。更多Python學習推薦:PyThon學習網教學中心。

⑸ Python 數據可視化:數據分布統計圖和熱圖

本課將繼續介紹 Seaborn 中的統計圖。一定要牢記,Seaborn 是對 Matplotlib 的高級封裝,它優化了很多古老的做圖過程,因此才會看到一個函數解決問題的局面。

在統計學中,研究數據的分布情況,也是一個重要的工作,比如某些數據是否為正態分布——某些機器學習模型很在意數據的分布情況。

在 Matplotlib 中,可以通過繪制直方圖將數據的分布情況可視化。在 Seaborn 中,也提供了繪制直方圖的函數。

輸出結果:

sns.distplot 函數即實現了直方圖,還順帶把曲線畫出來了——曲線其實代表了 KDE。

除了 sns.distplot 之外,在 Seaborn 中還有另外一個常用的繪制數據分布的函數 sns.kdeplot,它們的使用方法類似。

首先看這樣一個示例。

輸出結果:

① 的作用是設置所得圖示的背景顏色,這樣做的目的是讓下面的 ② 繪制的圖像顯示更清晰,如果不設置 ①,在顯示的圖示中看到的就是白底圖像,有的部分看不出來。

② 最終得到的是坐標網格,而且在圖中分為三部分,如下圖所示。

相對於以往的坐標網格,多出了 B 和 C 兩個部分。也就是說,不僅可以在 A 部分繪制某種統計圖,在 B 和 C 部分也可以繪制。

繼續操作:

輸出結果:

語句 ③ 實現了在坐標網格中繪制統計圖的效果,jp.plot 方法以兩個繪圖函數為參數,分別在 A 部分繪制了回歸統計圖,在 B 和 C 部分繪制了直方圖,而且直方圖分別表示了對應坐標軸數據的分布,即:

我們把有語句 ② 和 ③ 共同實現的統計圖,稱為聯合統計圖。除了用 ② ③ 兩句可以繪制這種圖之外,還有一個函數也能夠「兩步並作一步」,具體如下:

輸出結果:

⑹ 如何用python使變數服從正太分布

正太分布哈哈

首先,如果想要你的一千萬個數據嚴格服從正態分布,那麼先確定這個分布的數據,也就是均值和方差,N(u,o),這里均值 u=50,方差 o 由你確定,根據正態分布概率密度函數,對於每一個 1~100 之間的整數 x,都可以確定它出現的概率 f(x):

正態分布概率密度函數

而共有 10 000 000 個數字,那麼 10000000*f(x) 就是 x 出現的頻率。

因此,使用一個 101 元素的數組 freq[] 存放這些數出現的頻率,用 f(x)*10000000 逐個計算數組元素,也就是 x 應該出現的次數,假如說 2 一共會出現 3 次,那麼 freq[2]=3,計算出之後放在那裡,作為一個參照。再初始化一個全為 0 的 100 個元素的數組 sam[],記錄每個數字已經出現的次數。之後開始從 1~100 隨機,每隨機一個數字 x 都給 sam[x] 加1,再和 freq[x] 比較,如果超出了 freq[x] 就說明這個數字已經不能再出現了,將其舍棄。記錄隨機成功的次數,達到了 10000000 次即可。

熱點內容
群九軸演算法 發布:2025-03-04 07:45:13 瀏覽:166
c語言企業面試題目 發布:2025-03-04 07:45:03 瀏覽:406
e付卡怎麼設置密碼 發布:2025-03-04 07:44:59 瀏覽:89
安卓在手機桌面移除app後如何恢復 發布:2025-03-04 07:26:15 瀏覽:103
開發者隱私密碼如何關閉 發布:2025-03-04 07:21:35 瀏覽:337
neta解壓 發布:2025-03-04 06:57:23 瀏覽:978
安卓啟動界面是什麼意思 發布:2025-03-04 06:31:48 瀏覽:529
安卓智能鎖屏怎麼設置時間設置 發布:2025-03-04 06:31:39 瀏覽:235
C語言程式 發布:2025-03-04 06:30:57 瀏覽:703
建設銀行存儲介質 發布:2025-03-04 06:30:21 瀏覽:782