如何用matlab估計概率密度函式?不用ksdensity函

2021-03-22 06:43:15 字數 4350 閱讀 2098

1樓:加菲24日

那就有難度了,分佈的概率密度函式,通常都是使用核估計,也就是ksdensity函式執行的內容當然你可以自己編寫核估計函式,不過有難度,我曾經嘗試過,但是失敗了

利用核函式法估計概率密度的matlab程式,不利用matlab自帶的估計函式

2樓:匿名使用者

以估計正態分佈為例,

高斯核函式:

核函式估計方法:

clear all

n=100;

%生成一些正態分佈的隨機數

x=normrnd(0,1,1,n);

minx = min(x);

maxx = max(x);

dx = (maxx-minx)/n;

x1 = minx:dx:maxx-dx;

h=0.5;

f=zeros(1,n);

for j = 1:n

for i=1:n

f(j)=f(j)+exp(-(x1(j)-x(i))^2/2/h^2)/sqrt(2*pi);

endf(j)=f(j)/n/h;

endplot(x1,f);

%用系統函式計算比較

[f2,x2] = ksdensity(x);

hold on;

plot(x2,f2,'r'); %紅色為參考

matlab中ksdensity函式裡面的引數怎麼理解

3樓:匿名使用者

我們在統計資料處理時,經常計算一個樣本的概率密度估計,也就是說給出一組統計資料,要求你繪製出它的概率分佈曲線,matlab的統計工具箱中有直接的函式 就是:ksdensity 核心平滑密度估計

[f,xi] = ksdensity(x)計算樣本向量x的概率密度估計,返回在xi點的概率密度f,此時我們使用plot(xi,f)就可以繪製出概率密度曲線。該函式,首先統計樣本x在各個區間的概率(與hist有些相似),再自動選擇xi,計算對應的xi點的概率密度

f = ksdensity(x,xi)

與上面的相似,只是這時xi我們幫matlab選定了,ksdesity直接計算對應點的概率密度。

如何用matlab估計概率密度函式

4樓:s電

函式:ksdensity

功能:根據給定的資料,估計概率密度分佈

示例:1. 正態分佈

x = randn(1,100000);

[y,xi] = ksdensity(x);

plot(xi,y, 'bo')

% 驗證

hold on

yn=normpdf(xi,0,1); % 標準正態分佈的概率密度函式

plot(xi,yn,'b')

2. 瑞利分佈

x = abs(randn(1,10000) + 1i*randn(1,10000));

[y,xi] = ksdensity(x);

plot(xi,y, 'bo')

% 驗證

hold on

b = 1;

yn = zeros(size(xi));

k=find(b > 0 & xi >= 0);

if any(k),

xk = xi(k);

% 瑞利分佈的概率密度函式

yp(k) = (xk ./ b^2) .* exp(-xk.^2 ./ (2*b^2));

endplot(xi,yp,'b')

3. 萊斯分佈?

n = 100000;

k = 0.5;

const=1/(2*(k+1));

x1=randn(1,n);

x2=randn(1,n);

x=sqrt(const*((x1+sqrt(2*k)).^2+x2.^2));

[y,xi] = ksdensity(x);

plot(xi,y, 'bo')

% 驗證

hold on

sig = 1;

v = 1;

yn = zeros(size(xi));

k=find(b > 0 & xi >= 0);

if any(k),

xk = xi(k);

% rician分佈的概率密度函式

yp(k) = (xk ./ sig^2) .* exp((-xk.

^2 + v.^2) ./ (2*sig^2)) .

* besselj(0, (xk .*v ./ sig^2));

endplot(xi,yp,'b')

如何用matlab估計概率密度函式

5樓:雙子黃鸝鳴翠柳

那就有難度了,分佈的概率密度函式,通常都是使用核估計,也就是ksdensity函式執行的內容當然你可以自己編寫核估計函式,不過有難度,我曾經嘗試過,但是失敗了

matlab 如何畫出 一組資料 最可能的概率密度圖? 用了ksdensity ,但是老是提示有問題!先謝了。

6樓:匿名使用者

a=dlmread('d:\1.txt');

a=a(:);

ksdensity(a);

7樓:匿名使用者

你直接寫函式ksdensity,不要有賦值。如果你寫f,x,u] = ksdensity(a),後面加一個plot(x,f),直接用ksdensity(a)就可以得到圖。

matlab如何將一組資料的概率密度函式與頻數直方圖畫在一起?

8樓:匿名使用者

%生成一組隨機數(正態分佈)

data=normrnd(0,1,1,500);

%繪製直方圖

hist(data,20); hold on;

%求出概率密度函式引數

[mu,sigma]=normfit(data);

%繪製概率密度函式

[n,x]=hist(data,20);

y=normpdf(x,mu,sigma);

%處理一下資料,使得密度函式和最高點對齊

y=y/max(y)*max(n);

plot(x,y,'r-');

9樓:用著追她

1、首先,我們隨機產生三組範圍不同的資料,資料量都為500,他們的邊界分別為[10,15],[23,38],,[38,58]。

2、分別畫出x1,x2,x3對應的曲線,用matlab的內建函式plot進行操作,分別用三個plot進行繪圖。

3、需要用一個語句來保留前面所繪製的圖,在需要保留的圖的後面加一句hold on,即可將該圖保留,使它不被後面的圖所覆蓋。

4、這樣就可以將三條曲線畫在一張圖上,為了區別,要分別給這三條曲線定義不同的顏色。

5、為了圖的美觀,我們可以用grid on新增網格線,還需要新增橫縱座標軸標題。

6、因為我們畫的是多條曲線,因此還需要新增圖例。

10樓:匿名使用者

頻數分佈直方圖

x=load('檔名');

y=[始值:組距:末值];

histogram(x,y);

ax=gca;

ax.ylim=[0 11]; %座標軸刻度範圍ax.ytick=[0:

1:11]; %刻度ax.yticklabel=[0:

1:11]; %顯示出來的刻度ax.xlabel.

string='x軸標題';

ax.ylabel.string='';

ax.xlabel.position=[1700 -0.8 0]; %座標軸標題文字的位置

11樓:夏澀頎·哀

histogram(變數,'normalization','pdf')

請教matlab函式ksdensity的用法

12樓:匿名使用者

>>doc ksdensity

ksdensity

***pute density estimate using a kernel **oothing method

syntax

[f,xi] = ksdensity(x)f = ksdensity(x,xi)

ksdensity(...)

ksdensity(ax,...)

[f,xi,u] = ksdensity(...)[...] = ksdensity(...,'param1',val1,'param2',val2,...)

...........

什麼是概率密度,概率密度和概率密度函式有什麼區別

打個很簡單的比方 現在在一個盒子裡面有1 10000這樣的數字,你隨便在裡面拿出一個數字,出現個位數的概率是9 10000,出現兩位數的概率是9 1000,出現三位數的概率是90 1000出現四位數的概率是900 1000.出現五位數的概率是1 10000 你不難發現 出現四位數的概率最大,也就是說...

已知概率密度函式,求邊緣概率密度函式

1 f x f x,y dy xe x 0,0,其它 f y f x,y dy y e dx e y,e y 0,0其它。2 p x y 1 x y 1 f x,y dxdy 0 1 2 y 1 y e dx dy 0 1 2 e dy 0 1 2 e e dy 0.155 根據變數的取值範圍,對聯...

邊緣概率密度怎麼求,求邊緣概率密度函式

x的邊緣概率密度用聯合概率密度在 上對y求積分,y的邊緣概率密度用聯合概率密度在 上對x求積分.求邊緣概率密度函式 根據變數的範圍,對聯合概率密度函式進行積分 得到y積分的邊際概率密度,得到x積分的邊際概率密度如下 根據變數的取值範圍,對聯合概率密度函式積分,對y積分得到x的邊緣概率密度,對x積分得...