Я пытаюсь реализовать байесовскую модель в R, используя пакет bas с настройкой этих значений для моей модели:
databas <- bas.lm(at_areabuilding ~ ., data = dataCOMMA, method = "MCMC", prior = "ZS-null", modelprior = uniform())
Я пытаюсь предсказать область данного состояния с помощью определенной области, присутствующей для этого конкретного состояния; но для разных почтовых индексов. Моя модель в основном находит различные почтовые индексы, присутствующие в данных для данного штата (используя для этого индекс состояния), а затем выдает результат.
Теперь, всякий раз, когда я пытаюсь предсказать область состояния, я ввожу этот ввод:
> 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)
Теперь я получаю вывод для этого состояния. Предположим, у меня есть список штатов с заданными почтовыми индексами, и я хочу запустить свою модель (базы данных) в этом списке и получить прогнозы, я не могу сделать это, используя описанный выше подход, так как это займет время. . Есть ли другой способ сделать то же самое? Я сделал то же самое с помощью одного джентльмена, и вот мой код:
pred <- sapply(1:nrow(first), function(row) { predict(basdata,first[row, ],estimator="BMA", interval = "predict", se.fit=TRUE)$Ybma })
basdata: сначала моя модель: мой новый набор данных, для которого я предсказываю область. Теперь проблема, с которой я столкнулся, заключается в том, что коду требуется много времени для прогнозирования значений. Он перебирает каждую строку и вычисляет площадь. В моем наборе данных 150000 строк, и я хотел бы попросить, чтобы кто-нибудь помог мне оптимизировать производительность этого кода.