Bayesian generalized linear model (GLM) | 贝叶斯广义线性回归实例

一些问题:

1. 什么时候我的问题可以用GLM,什么时候我的问题不能用GLM?

2. GLM到底能给我们带来什么好处?

3. 如何评价GLM模型的好坏?

 


 

广义线性回归啊,虐了我快几个月了,还是没有彻底搞懂,看paper看代码的时候总是一脸懵逼。

大部分分布都能看作是指数族分布,广义差不多是这个意思,我们常见的线性回归和logistic回归都是广义线性回归的特例,可以由它推到出来。

参考:线性回归、logistic回归、广义线性模型——斯坦福CS229机器学习个人总结(一)

对着上面的教程,手写了一遍所有的公式,大致能理解其中的40%吧。

1. 线性回归和logistic回归都有概率形式,只是基础的分布假设不一样。线性回归假设误差y服从高斯分布;logistic回归假设y服从伯努利分布。有了分布形式,根据最大似然方法我们就很容易得到优化目标,这正好也推到出了我们用在线性回归中的最小二乘公式。

2. 在优化时所用的方法,梯度下降、梯度上升、牛顿法。梯度法的核心就是导数,我们优化的函数就是关于参数的函数,求导得斜率,走一步alpha,更新参数,迭代进行,即可得局部最优参数。

3. GLM的核心就是y服从的分布可以表示为指数分布族的形式,就可以推广线性模型的应用范围。logistic回归就是线性回归的推广。 

那么如何根据指数分布族来构建广义线性模型呢?

构建广义线性模型(Constructing GLMs)

啊哈,百度里讲GLM理论的不少(讲得也是比较粗糙),实例的几乎没有。下面是一个GLM在医学fMRI上的应用。

Statistical Analysis: The General Linear Model

 What does a generalized linear model do? R

The overall summary is: You can first try linear regression. If this is not appropriate for your problem you can then try pre-transforming your y-data (a log-like or logit transform) and seeing if that fits better. However, if you transform your y-data you are using a new error model (in the transformed space such as log(y)-units instead of y-units, this can be better or can be worse depending on your situation). If this error model is not appropriate you can move on to a generalized linear model. However, the generalized linear model does not minimize square error in y-units but maximizes data likelihood under the chosen model. The distinction is mostly technical and maximum likelihood is often a good objective (so you should be willing to give up your original square-loss objective). If you wan’t to go further still you can try a generalized additive model which in addition to re-shaping the y distribution uses splines to learn r

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在R语言中进行贝叶斯多元线性回归,可以使用Bayesian Linear Regression(BLR)模型。BLR模型是一种贝叶斯统计学中的线性回归模型,它可以在给定数据集的情况下,使用贝叶斯方法进行参数估计和预测。下面是一个在R语言中使用BLR模型进行多元线性回归的例子: 首先,我们需要准备一个数据集。这里以mtcars数据集为例,该数据集包含了32种不同汽车型号的11个变量,其中包括mpg(每加仑英里数)、cyl(汽缸数)、disp(排量)等。可以通过以下代码加载该数据集: ```r data(mtcars) head(mtcars) ``` 接下来,我们需要安装和加载一些必要的包,包括“rstan”、“ggplot2”、“reshape2”等。可以使用以下代码安装和加载这些包: ```r install.packages("rstan") library(rstan) library(ggplot2) library(reshape2) ``` 在加载必要的包后,我们可以使用以下代码创建BLR模型: ```r # 定义BLR模型 blrm <- stan_lm(mpg ~ cyl + disp + hp + wt, data = mtcars) ``` 其中,stan_lm()函数将mtcars数据集中的变量mpg、cyl、disp、hp和wt作为自变量进行回归模型的建立,使用贝叶斯方法进行参数估计和预测。在这里,我们使用的是默认的先验分布,即正态分布。 可以使用summary()函数查看BLR模型的参数估计结果及其统计信息: ```r summary(blrm) ``` 此外,我们还可以使用ggplot2和reshape2包中的函数,绘制BLR模型的后验预测分布: ```r # 绘制BLR模型的后验预测分布 blrm_pred <- data.frame(predict(blrm, newdata = mtcars)) colnames(blrm_pred) <- "Prediction" ggplot(melt(blrm_pred), aes(x = value, fill = variable)) + geom_density(alpha = 0.5) + theme_minimal() + labs(x = "mpg", y = "Density") ``` 这将绘制一个由自变量mpg、cyl、disp、hp和wt预测的后验预测分布,其中每个变量都有自己的颜色。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值