概率基礎——多元正態分布

概率基礎——多元正態分布

介紹

多元正態分布是統計學中一種重要的多維概率分布,描述了多個隨機變量的聯合分布。在多元正態分布中,每個隨機變量都服從正態分布,且不同隨機變量之間可能存在相關性。本文將以二元標準正態分布為例,介紹多元正態分布的理論和公式。

理論及公式

對于二元標準正態分布,假設隨機變量 X X X Y Y Y都服從均值為0,方差為1的標準正態分布,并且隨機變量 X X X Y Y Y之間的協方差為0。這意味著 X X X Y Y Y是相互獨立的。其概率密度函數(PDF)為:

f ( x , y ) = 1 2 π e ? x 2 + y 2 2 f(x,y) = \frac{1}{2\pi} e^{-\frac{x^2+y^2}{2}} f(x,y)=2π1?e?2x2+y2?

其中, ( x , y ) (x, y) (x,y)表示二維平面上的一個點, π \pi π是圓周率。

對于 n n n 元標準正態分布,如果向量 Z Z Z由若干個遵從標準正態分布的獨立通分布隨機變量 Z 1 , Z 2 , … , Z n Z_1, Z_2, \ldots, Z_n Z1?,Z2?,,Zn?組成,則向量 Z Z Z服從 n n n 元標準正態分布。

參數說明

在二元標準正態分布中,參數已經確定為均值為0,方差為1,并且協方差為0。這意味著隨機變量 X X X Y Y Y之間不存在線性相關性,即它們是相互獨立的。這些參數的設置使得二元標準正態分布的形狀符合常見的二維高斯分布的特征。

Python實現

下面是使用Python繪制二元標準正態分布的示例代碼:

import numpy as np
import matplotlib.pyplot as pltmean = np.array([0, 0])
conv = np.array([[1, 0], [0, 1]])x, y = np.random.multivariate_normal(mean, conv, size=5000).Tplt.figure(figsize=(10, 10))
plt.plot(x, y, 'bo', alpha=0.5)
plt.gca().axes.set_xlim(-4, 4)
plt.gca().axes.set_ylim(-4, 4)
plt.grid(ls='--')
plt.show()

在代碼中,生成了均值為0,方差為1,隨機變量間協方差為0的二元正態分布,隨機變量X和Y,
一共生成了5000組樣本,結果如圖所示。
在這里插入圖片描述

從圖中可以發現,在均值點(此處對應原點)附近,樣本出現的概率較高,遠離均值點的地方樣本出現的概率較低(此處設置的樣本點透明度為0.2,顏色越深表示樣本點個數越多),在中心附近概率密度最高,隨著離中心點的距離增加,概率密度逐漸減小。

import numpy as np
import matplotlib.pyplot as pltmean = np.array([0, 0])
conv_1 = np.array([[1, 0], [0, 1]])
conv_2 = np.array([[4, 0], [0, 0.25]])x_1, y_1 = np.random.multivariate_normal(mean, conv_1, size=5000).T
x_2, y_2 = np.random.multivariate_normal(mean, conv_2, size=5000).Tplt.figure(figsize=(10, 10))
plt.plot(x_1, y_1, 'bo', alpha=0.05)
plt.plot(x_2, y_2, 'ro', alpha=0.05)
plt.gca().axes.set_xlim(-6, 6)
plt.gca().axes.set_ylim(-6, 6)
plt.grid(ls='--')
plt.show()

通過調整參數,可以逐漸將二元正態分布變換為二元一般正態分布,可以調整的參數主要由3個方面:

  1. 調整多個隨機變量自身的均值,讓樣本整體在二維平面上進行平移;
  2. 調整隨機變量X和Y的方差,當然此時還是保留它們互相之間彼此獨立的關系,以下先觀察一下樣本圖像的特點。
    與標準正態分布對照,
    在這里插入圖片描述
  3. 保持隨機變量的方差不變,通過改變協方差的值,來觀察協方差的變換給隨機變量間的相關特性帶來的影響以及圖像上的變換。
import numpy as np
import matplotlib.pyplot as pltfig, ax = plt.subplots(2, 2, figsize=(10, 5))
mean = np.array([0, 0])conv_1 = np.array([[1, 0], [0, 1]])
conv_2 = np.array([[1, 0.3], [0.3, 1]])
conv_3 = np.array([[1, 0.85], [0.85, 1]])
conv_4 = np.array([[1, -0.85], [-0.85, 1]])x_1, y_1 = np.random.multivariate_normal(mean, conv_1, size=5000).T
x_2, y_2 = np.random.multivariate_normal(mean, conv_2, size=5000).T
x_3, y_3 = np.random.multivariate_normal(mean, conv_3, size=5000).T
x_4, y_4 = np.random.multivariate_normal(mean, conv_4, size=5000).Tax[0][0].plot(x_1, y_1, 'bo', alpha=0.5)
ax[0][1].plot(x_2, y_2, 'bo', alpha=0.5)
ax[1][0].plot(x_3, y_3, 'bo', alpha=0.5)
ax[1][1].plot(x_4, y_4, 'bo', alpha=0.5)ax[0][0].grid(ls='--')
ax[0][1].grid(ls='--')
ax[1][0].grid(ls='--')
ax[1][1].grid(ls='--')plt.show()

在這里插入圖片描述
在代碼中,生成了4組二元正態分布,其中第一組是作為對比的二元標準正態分布,第二組的協方差為0.3,第三組的協方差為0.85,第四組的協方差為-0.85。
與二元標準正態分布呈圓形相比,協方差不為0的二元正態分布呈現一定斜率的橢圓,且協方差越大,橢圓越窄;協方差為正和為負,橢圓的方向是相反的,對應于隨機變量之間的正相關和負相關。

總結

本文介紹了多元正態分布及Python實現,敘述了每個隨機變量都服從正態分布,且不同隨機變量之間可能存在相關性的多元正態分布理論,并通過調整參數,將二元正態分布變換為二元一般正態分布。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716541.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716541.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716541.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多線程JUC 第2季 中斷線程

一 中斷線程 1.1 中斷概念 1.在java中,沒有提供一種立即停止一條線程。但卻給了停止線程的協商機制-中斷。 中斷是一種協商機制。中斷的過程完全需要程序員自己實現。也即,如果要中斷一個線程,你需要手動調用該線程的interrupt()方法&…

錄制用戶操作實現自動化任務

先上視頻!! 流程自動化工具-錄制操作繪制流程 這個想法之前就有了,趁著周末時間給它擼出來。 實現思路 從之前的文章自動化桌面未來展望中已經驗證了錄制繪制流程圖的可行性。基于DOM錄制頁面操作軌跡的思路監聽頁面點擊、輸入事件即可&…

無人機鏡頭穩定的原理和相關算法

無人機的鏡頭穩定主要基于兩個關鍵技術:鏡頭平衡技術和實時電子穩像。無人機鏡頭穩定的原理和相關算法主要是通過鏡頭平衡技術和實時電子穩像技術來保持攝像鏡頭的穩定性,從而拍攝出清晰、穩定的畫面。無人機鏡頭穩定的原理主要是通過傳感器和算法來實現…

Ocr之PaddleOcr模型訓練

目錄 一、系統環境 1 鏡像拉取ppocr 進行部署 2 安裝paddlepaddle 二、訓練前的準備 1 下載源碼 2 預模型下載 3 修改模型訓練文件yml 4 編排訓練集 5 執行腳本進行訓練 6 需要修改文件夾名稱 三、開始訓練 1 執行訓練命令 2 對第一次評估進行解釋 3 引言 五、總…

NestJS使用模板引擎ejs

模板引擎? 模板引擎是一種用于生成動態內容的工具,它通過將預定義的模板與特定數據結合,來生成最終的輸出。? 在NodeJS開發中,我們會使用模板引擎來渲染一些常用的頁面,比如渲染代表404的Not Found 頁面,502的Bad …

異常值檢測-值域法 頭歌代碼解釋

這關做得不是很明白,如果有清楚的同志可以在評論區里面討論 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.neighbors import LocalOutlierFactor # 導入數據 abc pd.read_csv(deaths.csv) ## 只分析其中的Population和L…

C語言對類型的轉換

C語言對類型的轉換 文章目錄 C語言對類型的轉換整形提升和截斷整形提升整形提升規則整形提升的意義 截斷截斷規則 算數轉換 我們都知道,C語言中內置了多種整形類型,占用空間從大到小,基本滿足各類使用場景(比如超長數字的運算就不…

【【C語言簡單小題學習-1】】

實現九九乘法表 // 輸出乘法口訣表 int main() {int i 0;int j 0;for (i 1; i < 9; i){for (j 1; j < i;j)printf("%d*%d%d ", i , j, i*j);printf("\n"); }return 0; }猜數字的游戲設計 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdi…

源碼視角,vue3為什么推薦用ref,而不是reactive

ref 和 reactive 是 Vue3 中實現響應式數據的核心 API。ref 用于包裝基本數據類型&#xff0c;而 reactive 用于處理對象和數組。盡管 reactive 似乎更適合處理對象&#xff0c;但 Vue3 官方文檔更推薦使用 ref。 我的想法&#xff0c;ref就是比reactive好用&#xff0c;官方也…

Java 中對包含關系的判斷

本文將為您詳細講解 Java 中對包含關系的判斷&#xff0c;包括數組、字符串等&#xff0c;并提供相應的代碼例子。 1. 數組包含關系判斷 在 Java 中&#xff0c;數組包含關系判斷通常使用循環來實現。以下是幾種常見的判斷方法&#xff1a; 示例 1&#xff1a;使用 for…

Unity曲柄滑塊四桿機構運動計算

一、運動效果 二、機構的介紹 曲柄長度&#xff1a;a&#xff0c;線段AB長度 連桿長度&#xff1a;b&#xff0c;線段BC長度 偏心距離&#xff1a;e&#xff0c;滑塊軌跡與曲柄中心點A的垂直距離 三、已知點A點B和e的值&#xff0c;計算C點的位置 1、計算s的值 var h math.…

通過多進程并發方式(fork)實現服務器(注意要回收子進程)

以下內容為視頻學習記錄。 1、父進程accept后返回的文件描述符為cfd以及用于創建連接的lfd; 調用fork()創建子進程后&#xff0c;子進程繼承cfd,lfd&#xff0c;通過該cfd與連接過來的客戶端通信,lfd對子進程來說沒用&#xff0c;可以直接close(lfd); 對于父進程來說&#x…

雙非二本找實習前的準備day4

學習目標&#xff1a; 每天2-3到簡單sql&#xff08;刷完即止&#xff09;&#xff0c;每天復習代碼隨想錄上的題目3道算法&#xff08;時間充足可以繼續&#xff09;&#xff0c;背誦的八股的問題也在這里記錄了 今日碎碎念&#xff1a; 1&#xff09;偶爾還是貪玩游戲&…

Vue中的計算屬性和方法有什么區別?

Vue.js是一款流行的JavaScript前端框架&#xff0c;提供了豐富的功能和便捷的開發方式。在Vue中&#xff0c;計算屬性和方法是常用的兩種方式來處理數據和邏輯。但它們之間存在一些區別&#xff0c;本文將詳細介紹Vue中計算屬性和方法的區別&#xff0c;并通過示例代碼加深理解…

183896-00-6,Biotin-C3-PEG3-C3-NH2,可以選擇性降解靶蛋白

您好&#xff0c;歡迎來到新研之家 文章關鍵詞&#xff1a;183896-00-6&#xff0c;Biotin-C3-PEG3-C3-NH2&#xff0c;Biotin-C3-PEG3-C3-amine&#xff0c;生物素-C3-PEG3-C3-胺 一、基本信息 【產品簡介】&#xff1a;Biotin-PEG3-C3-NH2是一種PROTAC linker&#xff0c;…

381. 有線電視網絡(網絡流,最小割,《算法競賽進階指南》)

381. 有線電視網絡 - AcWing題庫 給定一張 n 個點 m 條邊的無向圖&#xff0c;求最少去掉多少個點&#xff0c;可以使圖不連通。 如果不管去掉多少個點&#xff0c;都無法使原圖不連通&#xff0c;則直接返回 n。 輸入格式 輸入包含多組測試數據。 每組數據占一行&#xf…

Python推導式大全與實戰:精通列表、字典、集合和生成器推導式【第115篇—python:推導式】

Python推導式大全與實戰&#xff1a;精通列表、字典、集合和生成器推導式 Python語言以其簡潔、優雅的語法而聞名&#xff0c;其中推導式是其獨特之處之一。推導式是一種在一行代碼中構建數據結構的強大方式&#xff0c;它涵蓋了列表、字典、集合和生成器。本篇博客將全面介紹…

YOLOv8實例分割實戰:ONNX模型轉換及TensorRT部署

課程鏈接&#xff1a;https://edu.csdn.net/course/detail/39320 PyTorch版的YOLOv8支持高性能的實時實例分割。 TensorRT是針對英偉達GPU的加速工具。 ONNX &#xff08;Open Neural Network Exchange&#xff09; 作為一個開放的網絡模型中間表示&#xff08;IR&#xff0…

Redis命令大全

通用命令 KEYS pattern&#xff1a;查找所有符合給定模式&#xff08;pattern&#xff09;的 key。EXISTS key&#xff1a;檢查指定 key 是否存在。TYPE key&#xff1a;返回指定 key 的數據類型。DEL key [key …]&#xff1a;刪除指定的 key。RENAME key newkey&#xff1a;…

spring boot 修復 Spring Framework URL解析不當漏洞(CVE-2024-22243)

漏洞描述 當應用程序使用UriComponentsBuilder來解析外部提供的URL&#xff08;如通過查詢參數&#xff09;并對解析的URL的主機執行驗證檢查時可能容易受到Open重定向攻擊和SSRF攻擊&#xff0c;導致網絡釣魚和內部網絡探測等。 受影響產品或系統 6.1.0 < Spring Framew…