1. 程式人生 > >matlab 產生任意概率密度的聯合分佈

matlab 產生任意概率密度的聯合分佈

用Slice sampling 來得到某單個分佈的樣本演算法:

已知分佈f(x)

1.      選擇一個初始點,x0.

2.      在[0,f(x0)] 之間,通過均分分佈產生一個取樣y

3.      在 f(x) 上畫一條通過 y的 水平線

4.      線上段內再次均勻取樣得到一個點x ,此x就是此次迭代得到的新取樣點。

5.      最後用新得的x作為初始值,重複step 2~step5

 

Y截得f(x)兩點(L,R) ,稱為f(x)的切片,經過不斷迭代,得到很多切片,其中,切片的長度越長,被選取到的概率越大。

難點在於:對於多峰函式,切片所在的邊界往往是不連續的,解決方法是拒絕更短的切片。

Matlab 程式1,生成單個拉普拉斯分佈的取樣

%%

[email protected](y)exp(-abs(y))/2; % mu=0,b=1的拉斯分佈

N=2000; %產生N個取樣點

x = slicesample(1,N,'pdf',laplaceDis1,'thin',5,'burnin',1000);%thin, burn-in 具體設定看介紹

histogram(x,50);%顯示取樣點的直方圖

如圖:





%%matlab 程式2

%% 生成拉普拉斯分佈的聯合分佈,每個隨機變數成分都是獨立的(方便演示)

%  類似Gibbs 多變數取樣的方法,對某個確定的x1,在條件概率密度下P(x2|x1)得到x2的取樣,然後對此x2,得到P(x1|x2)的一個取樣

% 由於此處x1,x2獨立,p(x2|x1)=p(x2),且slicesampling 得到的對概率密度積分和是否為1沒有關聯,所以可以直接生成聯合分佈

[email protected](y)exp(-abs(y))/2; %mu=0,b=1的拉普拉斯分佈
[email protected](y)exp(-sqrt(2)*abs(y-2))/sqrt(2);%mu=2,b=1/sqrt(2) 拉普拉斯分佈


limitL=-5;% 概率密度函式左邊界
limitR=5;

x=zeros(N,2);


for i=1:N
    start=unifrnd(limitL,limitR,1,2);%均布產生一個初值
    x(i,1)=slicesample(start(1),1,'pdf',laplaceDis1);
    x(i,2)=slicesample(start(2),1,'pdf',laplaceDis2);
end

figure
plot(x(:,1),x(:,2),'ro');

如圖:



相關推薦

matlab 產生任意概率密度聯合分佈

用Slice sampling 來得到某單個分佈的樣本演算法: 已知分佈f(x) 1.      選擇一個初始點,x0. 2.      在[0,f(x0)] 之間,通過均分分佈產生一個取樣y 3.      在 f(x) 上畫一條通過 y的 水平線 4.      線上

一分鐘瞭解“matlab產生某個概率分佈概率密度函式”

網上或者matlab文件裡查詢pdf函式,幾乎所有能遇到的概率密度函式都會在裡面遇到。 語法: y = pdf('name',x,A) y = pdf('name',x,A,B) y = pdf('name',x,A,B,C) y = pdf('name',x,A,

聯合概率聯合分佈、條件概率與條件分佈、邊緣概率與邊緣分佈、貝葉斯定理、生成模型(Generative Model)和判別模型(Discriminative Model)的區別

在看生成模型和判別模型之前,我們必須先了解聯合概率與聯合分佈、條件概率與條件分佈、邊緣概率與邊緣分佈、貝葉斯定理的概念。 聯合概率與聯合概率分佈: 假設有隨機變數X與Y, 此時,P(X=a,Y=b)用於表示X=a且Y=b的概率。這類包含多個條件且所有條件同時成立的概率稱為聯合概率。聯合概

matlab畫出概率密度分佈圖1

比方說,你的資料在y這個陣列中. y=rand(1,3000) ymin=min(y); ymax=max(y); x=linspace(ymin,ymax,20);%將最大最小區間分成20個等分點(19等分),然後分別計算各個區間的個數 yy=hist(y,x);

matlab之pdf 概率密度函式1

http://www.cnblogs.com/djcsch2001/archive/2012/01/31/2333960.html 高斯混合模型:http://www.cnblogs.com/zhangchaoyang/articles/2624882.html

MATLAB繪製正態分佈概率密度函式(normpdf)圖形

這裡是一個簡單的實現程式碼 x=linspace(-5,5,50); %生成負五到五之間的五十個數,行向量 y=normpdf(x,0,1); plot(x,y,‘k’); 圖片複製不過來。。就擺個連結好了 https://jingyan.baidu.com/article/6fb756ec

matlab 多元二項分佈概率密度函式

clear all; close all; clc; %randn('seed',0); %%一維高斯函式 mu=0; sigma=1; x=-6:0.1:6; y=normpdf(x,mu,sigma); plot(x,y); figure; %%二維或多維高斯函式

R語言︱分佈函式與概率密度+隨機數產生

1、常見概率分佈##正態分佈 pnorm(1.96) #P(x<=1.96)時的分佈概率 pnorm(1.96,0,1) #上同 pnorm(1

matlab練習程式(生成多維高斯分佈概率密度函式)

clear all; close all; clc; randn('seed',0); %%一維高斯函式 mu=0; sigma=1; x=-6:0.1:6; y=normpdf(x,mu,sigma); plot(x,y); figure; %%二維或多維高斯函式 m

概率函式,分佈函式,密度函式

概率函式:用函式的形式來表達概率   概率分佈:離散型隨機變數的值分佈和值的概率分佈列表   分佈函式:概率函式取值的累加結果,所以它又叫累積概率函式   概率密度函式:連續型隨機變數的“概率函式” 左邊是F(x)連續型隨機變數分佈函式畫出的圖形,右

概率論:分佈概率密度

資料:   聯合概率分佈簡稱聯合分佈,是兩個及以上隨機變數組成的隨機向量的概率分佈。根據隨機變數的不同,聯合概率分佈的表示形式也不同。對於離散型隨機變數,聯合概率分佈可以以列表的形式表示,也可以以函式的形式表示;對於連續型隨機變數,聯合概率分佈通過一非負函式的積分表示。

關於多元正態分佈的條件概率密度

多元正態分佈 多元正態分佈的密度函式如下 : fx(x1,...xn)=1(2π)k√|Σ|1/2exp(−12(x−μ)TΣ−1(x−μ)) (1) 其對應的矩母函式(也有稱動差函式)為exp(μTt+12tTΣt)。事實上,如果隨機向量[X1

高斯分佈概率密度函式(PDF)和累積分佈函式(CDF)

正態分佈(Normal distribution)又名高斯分佈(Gaussian distribution),是一個在數學、物理及工程等領域都非常重要的概率分佈,在統計學的許多方面有著重大的影響力。 若隨機變數X服從一個數學期望為μ、標準方差為σ2的高斯分佈,記為:X∼

Excel在統計分析中的應用—第六章—抽樣分佈-小樣本的抽樣分佈(F分佈概率密度函式圖)

F分佈的概率密度函式圖看上去還是比較平易近人的,不像卡方分佈那樣章亂無序。 Excel計算公式: C362==GAMMA((C$360+C$361)/2)*POWER(C$360,C$360/2)*POWER(C$361,C$361/2)*POWER($B362,C$360

Matlab產生二維混合高斯分佈及隨機數

參考:https://ww2.mathworks.cn/help/stats/gmdistribution.random.html 修改如下: Create a gmdistribution object and generate random variates. De

二維正態分佈的引數與概率密度圖形

用Microsoft Mathematics繪製二維正態分佈的概率密度圖形,引數可以互動地調整。 N(μ1, μ2; σ1, σ2, ρ) μ1 = 1, μ2 = 1, σ1 = 0.49, σ2 = 0.49, ρ = 0 μ1

做出一段資料的概率分佈概率密度

       就是將提問所說的“關於這個隨機變數的一組資料”進行分組(至於如何分組就看實際情況了,你應該會的吧?),得到一系列的組,例如32.5-42.5,42.5-52.5………,組數就是n。觀察數以y表示,例如yi(i為下標)=28,37,……。p的值,例如:p(u<42.5)=p[y<(42

概率函式,概率密度函式,概率分佈函式,高斯分佈

數學基礎複習之概率論(大部分來自百度百科和課本內容) 1.概率函式: (百度說的概率函式一般指概率分佈函式,但課件裡邊提到概率函式時是如下意思↓) 離散型隨機變數的分佈的表現形式 注:截圖來自同濟大學概率論與數理統計課件 2.概率密度函式: 在數學中,連續型隨機變數的概率

Excel圖表—標準正態分佈概率分佈圖(概率密度函式圖及累積概率分佈圖)的繪製

看似很簡單的一張Excel圖表,實際上也花了10多分鐘。這對於已經習慣了Spotfire這種資料視覺化軟體的我而言是不能接受的。 不過,功夫不負有心人,總算是畫出了教科書上的效果。 以下是一點小創新,如果提高資料粒度(資料粒度能夠滿足業務要求),有些問題的答案將一目瞭然

matlab:畫二維高斯分佈密度函式圖

首先,把二維正態分佈密度函式的公式貼這裡 這隻圖好大啊~~ 但是上面的那個是多維正態分佈的密度函式的通式,那個n階是對稱正定方陣叫做協方差矩陣,其中的x,pi,u都是向量形式。雖然這個式子很酷,但是用在matlab裡畫圖不太方面,下面換一個 這個公式與上面的