乐趣区

关于数据挖掘:Python贝叶斯回归分析住房负担能力数据集附代码数据

原文链接:http://tecdat.cn/?p=11664

最近咱们被客户要求撰写对于贝叶斯回归的钻研报告,包含一些图形和统计输入。

我想钻研如何应用 pymc3 在贝叶斯框架内进行线性回归。依据从数据中学到的常识进行推断

 贝叶斯规定是什么?

实质上,咱们必须将曾经晓得的常识与世界上的事实相结合。

这里有一个例子。

假如存在这种常见疾病,每 10,000 人中就有 1 人随机感化这种疾病。换句话说,有 0.01%的机会患上这种疾病。侥幸的是,有一项测试能够 99%的正确辨认出患有这种疾病的人,如果没有这种疾病,它也能够正确地说出您 99%没有患这种疾病。您加入了测试,后果为阳性。您有多少几率理论患上该病?

好吧,让咱们从逻辑上考虑一下。咱们晓得,每 10,000 人中就有 1 人患此病。假如有 10,000 人。他们中的 9,999 人没有疾病,但其中 1%的人会失去阳性后果。因而,即便只有 1 人理论患有这种疾病,也有约 101 人取得了阳性后果。这意味着即便后果为阳性,您也只有 101 分之一的几率理论患上该病(或大概 1%的几率)。

数学形容:

看起来很简略。实际上,这很简略。该公式仅须要一些概率分布的常识。然而实际上,左边的分母通常意味着咱们将要计算很多真正的计算重积分。因而,贝叶斯统计被放弃了很多年。从某种意义上讲,它自然而然地脱离了概率论。如果咱们只有善于计算大量数字的货色,那么这类问题就能够解决。

计算机的确十分快地进行计算贝叶斯回归。

代码

这是进行贝叶斯回归所需的常识。通常,咱们想到这样的回归:

e 是正态分布的误差。

因而,咱们假如:

与先验:

因而,如果咱们领有 X 和 Y 的数据,则能够进行贝叶斯线性回归。

 代码 

咱们要应用的数据集是《住房考察:2013 年住房累赘能力数据》数据集。

咱们感兴趣的是住房累赘如何随着年龄而变动。AGE1 蕴含户主的年龄。BURDEN 是一个变量,它通知咱们住房费用绝对于支出有多大。为简略起见,咱们仅关注这两个变量。咱们想晓得的是,随着年龄的增长,住房累赘会变得更容易吗?特地是,咱们想晓得斜率系数是否为负,并且因为咱们处于贝叶斯框架中,因而该概率为负的概率是多少?

因而,咱们将导入所需的库和数据。进行一些数据清理。

df=pd.read_csv('2013n.txt',sep=',')
df=df[df['BURDEN']>0]
df=df[df['AGE1']>0]

当初,让咱们构建下面探讨的模型。让咱们做一个散点图,看看数据是什么样子。

plt.scatter(df['AGE1'],df['BURDEN'])
plt.show()

后果如下:


点击题目查阅往期内容

R 语言用贝叶斯层次模型进行空间数据分析

左右滑动查看更多

01

02

03

04

住房累赘很容易超过支出的 10 倍。

这是构建和运行模型的代码:

pm.traceplot(trace)
plt.show()

** 看起来与咱们下面的模型齐全一样,不同之处在于咱们还有一个正态分布的截距 beta。当初咱们的模型曾经训练好了,咱们能够持续做一些推论工作。
**

实现运行后,会看到相似以下内容:

能够看到,咱们有斜率和截距的后验散布以及回归的标准偏差。

** 住房累赘会随着年龄的增长而缩小吗?
**

是的。随着人们的建设,他们的住房老本将绝对于支出降落。这将等于年龄变量的负斜率系数。运行以下代码,则能够找出斜率系数为负的确切概率。

print(np.mean([1 if obj<0 else 0 for obj in trace['x']]))

该系数为负的概率约为 13.8%。

点击文末 “浏览原文”

获取全文残缺代码数据资料。

本文选自《Python 贝叶斯回归剖析住房累赘能力数据集》。

点击题目查阅往期内容

课程视频 | R 语言 bnlearn 包:贝叶斯网络的结构及参数学习的原理和实例
R 语言 Gibbs 抽样的贝叶斯简略线性回归仿真剖析
python 贝叶斯随机过程:马尔可夫链 Markov-Chain,MC 和 Metropolis-Hastings,MH 采样算法可视化
Python 贝叶斯推断 Metropolis-Hastings(M-H)MCMC 采样算法的实现
Metropolis Hastings 采样和贝叶斯泊松回归 Poisson 模型
Matlab 用 BUGS 马尔可夫区制转换 Markov switching 随机稳定率模型、序列蒙特卡罗 SMC、M H 采样剖析工夫序列 R 语言 RSTAN MCMC:NUTS 采样算法用 LASSO 构建贝叶斯线性回归模型剖析职业声望数据
R 语言 BUGS 序列蒙特卡罗 SMC、马尔可夫转换随机稳定率 SV 模型、粒子滤波、Metropolis Hasting 采样工夫序列剖析
R 语言 Metropolis Hastings 采样和贝叶斯泊松回归 Poisson 模型
R 语言贝叶斯 MCMC:用 rstan 建设线性回归模型剖析汽车数据和可视化诊断
R 语言贝叶斯 MCMC:GLM 逻辑回归、Rstan 线性回归、Metropolis Hastings 与 Gibbs 采样算法实例
R 语言贝叶斯 Poisson 泊松 - 正态分布模型剖析职业足球比赛进球数
R 语言用 Rcpp 减速 Metropolis-Hastings 抽样预计贝叶斯逻辑回归模型的参数
R 语言逻辑回归、Naive Bayes 贝叶斯、决策树、随机森林算法预测心脏病
R 语言中贝叶斯网络(BN)、动静贝叶斯网络、线性模型剖析错颌畸形数据
R 语言中的 block Gibbs 吉布斯采样贝叶斯多元线性回归
Python 贝叶斯回归剖析住房累赘能力数据集
R 语言实现贝叶斯分位数回归、lasso 和自适应 lasso 贝叶斯分位数回归剖析
Python 用 PyMC3 实现贝叶斯线性回归模型
R 语言用 WinBUGS 软件对学术能力测验建设档次(分层)贝叶斯模型
R 语言 Gibbs 抽样的贝叶斯简略线性回归仿真剖析
R 语言和 STAN,JAGS:用 RSTAN,RJAG 建设贝叶斯多元线性回归预测选举数据
R 语言基于 copula 的贝叶斯分层混合模型的诊断准确性钻研
R 语言贝叶斯线性回归和多元线性回归构建工资预测模型
R 语言贝叶斯推断与 MCMC:实现 Metropolis-Hastings 采样算法示例
R 语言 stan 进行基于贝叶斯推断的回归模型
R 语言中 RStan 贝叶斯层次模型剖析示例
R 语言应用 Metropolis-Hastings 采样算法自适应贝叶斯预计与可视化
R 语言随机搜寻变量抉择 SSVS 预计贝叶斯向量自回归(BVAR)模型
WinBUGS 对多元随机稳定率模型:贝叶斯预计与模型比拟
R 语言实现 MCMC 中的 Metropolis–Hastings 算法与吉布斯采样
R 语言贝叶斯推断与 MCMC:实现 Metropolis-Hastings 采样算法示例
R 语言应用 Metropolis-Hastings 采样算法自适应贝叶斯预计与可视化
视频:R 语言中的 Stan 概率编程 MCMC 采样的贝叶斯模型
R 语言 MCMC:Metropolis-Hastings 采样用于回归的贝叶斯预计

退出移动版