r - R:R中大数据的优化
问题描述
我有一个面板数据,其中包含 5 年内的 5908 个个人观察结果。我想使用 optim() 包估计最大似然估计器。这是我的代码
library(pglm)
library(plm)
data("HealthIns")
dat<- pdata.frame(HealthIns,index = c("id","year"))
summary(dat)
dat$claims<-ifelse(dat$size>=4,1,0)
y<-data.matrix(dat$claims)
y[is.na(y)]=0
Y<-matrix(data=y,nrow=5908,ncol=5)
dat$ageclass<-ifelse(dat$age >=30,1,0)
x1<-data.matrix(dat$ageclass)
x1[is.na(x1)]=0
X1<-matrix(data=x1,nrow=5908,ncol=5)
dat$gender <-ifelse(dat$sex=="male",1,0)
x2<-data.matrix(dat$gender)
x2[is.na(x2)]=0
X2<-matrix(data=x2,nrow=5908,ncol=5)
dat$child<-ifelse(dat$child=="yes",1,0)
x3<-data.matrix(dat$child)
x3[is.na(x3)]=0
X3<-matrix(data=x3,nrow=5908,ncol=5)
我想使用的 -log 可能性是
po.gam=function(para){
#Lambda(i,t)
{for (i in (1:5908)){
for(t in (1:5)){
lambda<-as.matrix(exp(para[1] + para[2]*X1 + para[3]*X2 + para[4]*X3),nrow=5908,ncol=5)}}
}
num.claims.of.t <-numeric(nrow(Y))
{for (i in seq(nrow(Y))){
num.claims.of.t[i] <-sum(Y[i,])}
}
num.lambda.of.t<-numeric(nrow(Y))
{for (i in seq(nrow(Y))){
num.lambda.of.t[i]<-sum(lambda[i,])}
}
prod.exp<-numeric(nrow(Y))
{for (i in seq(nrow(Y))){
prod.exp[i]<-prod(lambda[i,]^Y[i,]/factorial(Y[i,]))}
}
joint.pdf.mvnb<-(prod.exp)*(gamma(num.claims.of.t + (1/para[5]))/gamma(1/para[5]))*(((1/para[5])/(num.lambda.of.t + (1/para[5])))^(1/para[5]))*((num.lambda.of.t + (1/para[5]))^(-num.claims.of.t))
#PRODUC NUMBER OF CLAIMS SEMUA INDIVIDU
prod.mvnb=1
for (i in (length(joint.pdf.mvnb))){
prod.mvnb<-prod(joint.pdf.mvnb[i])
}
return(-log(prod.mvnb))
}
然后使用 optim()
start.value <- c(beta0=0.01,beta1=0.01,beta2=0.01,beta3=0.01,alfa=0.01)
MLE_pogam<-optim(start.value,fn=po.gam,hessian=FALSE)
MLE_pogam
并且程序将运行2个多小时仍然没有任何输出。您对优化大数据的对数似然函数有什么建议吗?谢谢!!
解决方案
尝试使用该pso
软件包。它实现了粒子群优化算法,pso::psoptim()
作为optim()
函数的直接替代。它是一种随机算法,因此它应该相对更快。
推荐阅读
- javascript - 如何在某些异步数据(在 Vuex 存储中)加载之前防止任何路由?
- c - UVa 1225“数字计数”的 C“运行时错误”
- javascript - 后期“手动”将元素升级为定制的内置 Web 组件
- excel - 使用VBA检索特定列中同一行中单元格的值
- node.js - Typescript 和 Jest:避免模拟函数上的类型错误
- python - 以正确的格式获取文本以用于 spacy
- sql-server - 如何衡量 Azure SQL DB 的性能?
- android - ViewRenderable not working ARCore
- javascript - 如何识别已标记为 Redact 的 PDF 中的原始单词?
- css - 不同数量的 div 布局