密度函式怎麼生成樣本啊

2021-08-21 11:48:03 字數 2002 閱讀 4946

comp <- sample(c(0, 1), size = 100, prob = c(0.7, 0.3), replace = t)

rnorm(100, mean = ifelse(comp == 0, 0, 1), sd = ifelse(comp == 0, 1, 2))

猜測分布是兩個正態分佈的混合,需要估計出函式中的5個引數:p、μ1、μ2、σ1、σ2。

在r中編寫對數似然函式時,5個引數都存放在向量para中,由於nlminb()是計算極小值的,因此函式function中最後返回的是對數似然函式的相反數。

1

2

3

4

5

6

7

8

> l1=function(para)

+

做引數估計,使用nlminb()之前最大的要點是確定初始值,初始值越接近真實值,計算的結果才能越精確。我們猜想資料的分布是兩個正態的混合,概率p直接用0.5做初值即可。通過直方圖中兩個峰對應的x軸數值(大概為50和80>,就可以將初值設定為μ1和μ2。而概率p處於((0,1)區間內,引數σ1,σ2是正態分佈的標準差,必須大於0,所以通過lower和upper兩個引數進行一定的約束。

1

2

3

4

5

6

7

8

9

10

11

12

> geyser.est=nlminb(c(0.5,50,10,80,10),l1,lower=c(0.0001,-inf,0.0001,-inf,0.0001),upper=c(0.9999,inf,inf,inf,inf))

>options(digits=3)

> geyser.est$par

[1]  0.308 54.203  4.952 80.360  7.508

> p=geyser.est$par[1]

> mu1=geyser.est$par[2];sigma1=geyser.est$par[3]

> mu2=geyser.est$par[4];sigma2=geyser.est$par[5]

> x=seq(40,120)

>#將估計的參凌丈函式代入原密度函式

> f=p*dnorm(x,mu1,sigma1)+(1-p)*dnorm(x,mu2,sigma2)

>hist(waiting,freq=f)

>lines(x,f)

SKlearn 隨機生成測試樣本 分類樣本

from sklearn.datasets.samples generator import make classification x,y make classification n samples 200,n features 4,n informative 2,n redundant 2,n ...

Matlab 概率密度函式

以下函式均是對應分布模型的概率密度函式 函式函式功能 y binopdf x,n,p 產生引數為n,p的二項分布,x為取值點,y為對應的值 y poisspdf x,lambda 泊松分布,引數為lambda y geopdf x,p 幾何分布,引數為p y unidpdf x,m 離散型均勻分布,...

均勻分布的概率密度函式 理解概率密度函式

概率密度函式是概率論中的核心概念之一,用於描述連續型隨機變數所服從的概率分布。在機器學習中,我們經常對樣本向量x的概率分布進行建模,往往是連續型隨機變數。很多同學對於概率論中學習的這一抽象概念是模糊的。在今天的文章中,sigai將直觀的解釋概率密度函式的概念,幫你更深刻的理解它。回憶我們在學習概率論...