簡體   English   中英

R 中的貝葉斯建模

[英]Bayesian Modelling in R

I am trying to implement a bayesian model in R using bas package with setting up these values for my Model:

databas <- bas.lm(at_areabuilding ~ ., data = dataCOMMA, method = "MCMC", prior = "ZS-null", modelprior = uniform())

我試圖借助特定 state 的特定區域來預測給定 state 的區域; 但對於不同的 zip 代碼。 My Model basically finds the various zip codes present in the data for a given state(using a state index for this) and then gives the output.

現在,每當我嘗試預測 state 的面積時,我都會給出以下輸入:

> UT <- data.frame(zip = 84321, loc_st_prov_cd = "UT" ,state_idx = 7)
> predict_1 <- predict(databas,UT, estimator="BMA", interval = "predict", se.fit=TRUE)
> data.frame('state' = 'UT','estimated area' = predict_1$Ybma)

現在,我得到了這個 state 的 output。 假設我有一個具有給定 zip 代碼的狀態列表,並且我想在該列表上運行我的 Model (數據庫)並獲得預測,我無法使用上述方法來做到這一點,因為這需要時間。 有沒有其他方法可以做到這一點? 我在一位紳士的幫助下做了同樣的事情,這是我的代碼:

 pred <- sapply(1:nrow(first), function(row) { predict(basdata,first[row, ],estimator="BMA", interval = "predict", se.fit=TRUE)$Ybma })

basdata:我的 Model 首先:我正在預測區域的新數據集。 現在,我面臨的問題是代碼需要很長時間才能預測值。 它遍歷每一行並計算面積。 我的數據集中有 150000 行,我會請求是否有人可以幫助我優化此代碼的性能。

像這樣的東西將遍歷狀態、拉鏈和索引的數據幀的每一行(我們稱之為states_and_zips )並返回一個預測列表。 這個列表的每個元素(我稱之為pred )都與state_and_zips的相應行一起使用:

pred = lapply(1:nrow(states_and_zips), function(row) {
  predict(databas, ~ states_and_zips[row, ], 
          estimator="BMA", interval = "predict", se.fit=TRUE)$Ybma
})

如果Ybma是單個值,則使用sapply而不是lapply ,它將返回一個預測向量,每個state_and_zips行一個,您可以將其作為新列添加到states_and_zips

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM