極大似然估計 bbmle和DEoptim 平行計算

2021-10-21 10:53:35 字數 1345 閱讀 7498

(1)bbmle使用

library(bbmle)

###在引數範圍內,隨機生成3個[0,1]範圍內的資料

x=runif(3,0,1)

estimates = mle2(logl,start=list(len1=x[1],x2=x[2],x3=x[3),method = "bfgs")

###儲存資料結果

dd<-summary(estimates)

final<-dd@coef

(2)使用parallel包進行平行計算

library(parallel)

cl <- makecluster(n) ###其中n為呼叫的核數

###其中func代表呼叫的函式,並且在func<-function(j),j的資料會進行1:1000次迴圈

res_df<-do.call('rbind',results)

注:在使用bbmle的過程當中,得到的結果容易造成區域性最優解,所以一般在求解過程當中,在區間範圍內隨機產生初始值進行多次操作,以此來獲得最優解。

除此之外,我們可以使用演化演算法進行求解。

library(deoptim)

###parvar代表呼叫函式過程中所需要的函式名稱以及使用的全域性變數資料

parvar = c("logl","data_fun","list_id","subj","blocks","trials","check")

###其中paralleltype==1,使用平行計算

###下行**中有5個引數,並且對其設定區間

estimates = deoptim(logl,lower =c(0,0,0,0,0),upper=c(1,1,1,1,20),control = deoptim.control(trace = false,np = 100,itermax = 500,paralleltype=1,parvar=parvar))

####儲存相應的引數結果

dd1<-summary(estimates)

final[1]<-dd1$optim$bestmem[1]

final[2]<-dd1$optim$bestmem[2]

final[3]<-dd1$optim$bestmem[3]

final[4]<-dd1$optim$bestmem[4]

final[5]<-dd1$optim$bestmem[5]

final[6]<-dd1$optim$bestval

最大似然估計 極大似然估計

目錄最大似然估計 個人部落格 對於最大似然估計我們使用最簡單的拋硬幣問題來進行講解當我們拋一枚硬幣的時候,就可以去猜測拋硬幣的各種情況的可能性,這個可能性就稱為概率一枚質地均勻的硬幣,在不考慮其他情況下是符合二項分布的,即正面和翻面的概率都是0.5,那麼我們拋10次硬幣5次正面在上面的概率為 但是現...

極大似然估計

在機器學習的領域內,極大似然估計是最常見的引數估計的方法之一,在這裡整理一下它的基本原理。極大似然估計從根本上遵循 眼見為實,這樣的哲學思想。也就是說,它嚴格地僅僅利用了已知的實驗結果,來估計概率模型中的引數。極大似然估計的計算過程非常簡單 1.寫出似然函式 2.求出使得似然函式取最大值的引數的值,...

極大似然估計

一 理論基礎 1 引例 某位同學與一位獵人一起外出打獵,乙隻野兔從前方竄過。只聽一聲槍響,野兔應聲到下,如果要你推測,這一發命中的子彈是誰打的?你就會想,只發一槍便打中,由於獵人命中的概率一般大於這位同學命中的概率,看來這一槍是獵人射中的。這個例子所作的推斷就體現了極大似然法的基本思想。2 簡介 極...