标签: hierarchical-bayesian

当我们进行累积回归分析时,brms包中的bf()是什么意思?

我试图在序数数据上运行贝叶斯多级累积模型,并正在阅读brms在线文档。我的模型看起来像

model <- brm(bf(y ~ Condition + (Condition|item) + (Condition|subject)),
                    data = df, 
                    family = cumulative(link="probit", threshold="flexible"),
                    chains=4,cores=4,iter=2000, prior = prior) 
Run Code Online (Sandbox Code Playgroud)

bf()我看到有些文档在指定公式时没有该函数,但有些文档有。有人可以向我解释一下bf()这里在做什么吗?谢谢!

regression r hierarchical-bayesian brms

7
推荐指数
1
解决办法
2041
查看次数

如何表示观察是两个采样值中较大的一个?

我正在编写一个JAGS脚本(分层贝叶斯模型),其中事件的时间被建模为两个进程之间的竞争.

观察: time是事件的测量时间.

模型:具有高斯率的两个过程 - 无论哪个过程首先触发事件.

目标:估算两个过程的比率.

model{
  # Priors
  mu1 ~ dnorm( 0,1 )                      # rate of one process
  mu2 ~ dnorm( 0,1 )                      # rate of other process
  sigma1 <- 1                             # variability in rate
  sigma2 <- 0.1                           # variability in rate

  # Observations
  for (i in 1:N)
    rate1[i] ~ dnorm( mu1, sigma1 )        # Sample the two
    rate2[i] ~ dnorm( mu2, sigma2 )        # racing processes.

    rmax[i] <- max( rate1[i], rate2[i] ) …
Run Code Online (Sandbox Code Playgroud)

jags hierarchical-bayesian

6
推荐指数
0
解决办法
76
查看次数

错误:非常量表达式不能从类型“npy_intp”缩小到“int”

我正在尝试运行以下模型,但在编译过程中失败:

import numpy as np
import pymc3 as pm


def sample_data(G=1, K=2):
    # mean proportion ([0,1]) for each g
    p_g = np.random.beta(2, 2, size=G)

    # concentration around each p_g
    c_g = np.random.lognormal(mean=0.5, sigma=1, size=G)

    # reparameterization for standard Beta(a,b)
    a_g = c_g * p_g / np.sqrt(p_g**2 + (1.-p_g)**2)
    b_g = c_g*(1.-p_g) / np.sqrt(p_g**2 + (1.-p_g)**2)

    # for each p_g, sample K proportions
    p_gk = np.random.beta(a_g[:, np.newaxis], b_g[:, np.newaxis], size=(G, K))

    return p_gk

# Data size
G = 3
K = …
Run Code Online (Sandbox Code Playgroud)

python theano pymc3 hierarchical-bayesian probabilistic-programming

5
推荐指数
1
解决办法
5060
查看次数

由于浮动错误,贝叶斯优化失败

我想优化 lightgbm 模型的 HPO。我使用贝叶斯优化过程来做到这一点。遗憾的是我的算法未能收敛。

磁力RE

import warnings
import pandas as pd
import time
import numpy as np
warnings.filterwarnings("ignore")
import lightgbm as lgb
from bayes_opt import BayesianOptimization
import sklearn as sklearn
import pyprojroot
from sklearn.metrics import roc_auc_score, mean_squared_error
from sklearn.model_selection import KFold, cross_val_score
from sklearn.model_selection import train_test_split
from sklearn.datasets import fetch_california_housing
housing = fetch_california_housing()
train = pd.DataFrame(housing['data'], columns=housing['feature_names'])
train_y = train.pop('MedInc')

params = {
            "objective" : "regression", "bagging_fraction" : 0.8, "bagging_freq": 1,
            "min_child_samples": 20, "reg_alpha": 1, "reg_lambda": 1,"boosting": "gbdt",
            "learning_rate" : …
Run Code Online (Sandbox Code Playgroud)

python mathematical-optimization hierarchical-bayesian lightgbm

4
推荐指数
1
解决办法
2315
查看次数

用随机效应解释多级回归中的变量

我有一个看起来像下面的数据集(显示前5行).CPA是来自不同广告航班的实验(处理)的观察结果.航班在广告系列中按层次分组.

  campaign_uid  flight_uid treatment         CPA
0   0C2o4hHDSN  0FBU5oULvg   control  -50.757370
1   0C2o4hHDSN  0FhOqhtsl9   control   10.963426
2   0C2o4hHDSN  0FwPGelRRX   exposed  -72.868952
3   0C5F8ZNKxc  0F0bYuxlmR   control   13.356081
4   0C5F8ZNKxc  0F2ESwZY22   control  141.030900
5   0C5F8ZNKxc  0F5rfAOVuO   exposed   11.200450
Run Code Online (Sandbox Code Playgroud)

我适合如下的模型:

model.fit('CPA ~ treatment',  random=['1|campaign_uid'])
Run Code Online (Sandbox Code Playgroud)

据我所知,这个模型简单地说:

  • 我们有治疗斜坡
  • 我们有一个全球拦截
  • 我们还有每个广告系列的拦截

所以一个只想得到一个 每个这样的变量.

但是,看看下面的结果,我还得到了以下变量的后验:1|campaign_uid_offset.它代表什么?

在此输入图像描述

拟合模型和图的代码:

model   = Model(df)
results = model.fit('{} ~ treatment'.format(metric),  
                    random=['1|campaign_uid'], 
                    samples=1000)
# Plotting the result
pm.traceplot(model.backend.trace)
Run Code Online (Sandbox Code Playgroud)

python-3.x pymc3 bambi multilevel-analysis hierarchical-bayesian

3
推荐指数
1
解决办法
466
查看次数