首页 > 编程语言 >Python贝叶斯回归分析住房负担能力数据集|附代码数据

Python贝叶斯回归分析住房负担能力数据集|附代码数据

时间:2023-06-15 23:45:03浏览次数:47  
标签:采样 Metropolis 语言 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采样用于回归的贝叶斯估计

标签:采样,Metropolis,语言,Python,回归,贝叶斯,数据,模型
From: https://www.cnblogs.com/tecdat/p/17484496.html

相关文章

  • k均值聚类算法_异常数据检测
    k均值聚类_异常检测先来张图,快速理解正常数据应该分布在两个簇中异常数据,距离两个簇都很远fromsklearn.clusterimportKMeansfromscipy.spatial.distanceimportcdistimportnumpyasnpimportmatplotlib.pyplotaspltif__name__=='__main__':#正常......
  • R语言收益率和波动性模拟股票价格COMP226带自测题|附代码数据
    全文下载链接:http://tecdat.cn/?p=29581最近我们被客户要求撰写关于模拟股票价格的研究报告,包括一些图形和统计输出。在本工作表中,我们将研究价格、收益率和波动性。波动性通常用收益率的均方差来衡量,例如夏普比率的分母,它被用作风险的衡量标准。我们将使用股票价格的平均对数......
  • 【专题】2022-2023中国跨境出口B2C电商报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32805原文出处:拓端数据部落公众号全球疫情的爆发对于全球经济和消费市场都带来了很大的冲击,特别是在消费者的消费行为和零售市场格局方面发生了重大变革。同时由于全球供应链的重新调整,产业分化现象也加速出现。中国跨境电商已经历了十年以上的发......
  • 网站和数据库迁移备份常用方式
    这两天群里一直有人在聊WordPress的备份插件,博主一直是手动备份个人感觉比用那些插件还是方便多了。下面说下博主的备份步骤。本文目录1. 教程环境2. 教程步骤2.1. 1.网站文件备份2.2. 2.数据库备份2.3. 3.文件传输2.4. 4.网站文件恢复2.5. 5.数据库恢复3. ......
  • 2023.6.15 08.数据库安全管理
    08.数据库安全管理⽤户账户管理访问权限系统访问权限回收在讨论安全时,我们需要考虑整个服务器主机安全(⽽不仅仅是MySQL服务)需要抵御攻击,窃听,扫描,破解等。MySQL对所有连接数据库⽤户进⾏了ACL访问控制,减少服务器被内部不规范操作导致故障。MySQL还⽀持客户端和......
  • 如何运行 rpcz python example
    试着运行rpcz-python的example。过程记录如下。假设protobuf-py已经按照protobuf的安装说明安装了。发现protobuf-2.5.0版的python包是python2的,没有找到python3的。试着2to3.py转换一下,结果转换后无法安装。只好将python3.3换成python2.7pytho......
  • 人工智能的安全:黑客攻击和数据隐私
    目录人工智能的安全:黑客攻击和数据隐私随着人工智能技术的快速发展和应用,安全问题也越来越受到人们的关注。黑客攻击和数据隐私已成为影响人工智能技术安全的两个主要问题。本文将介绍人工智能的安全,包括黑客攻击和数据隐私的概念和技术原理,并提供实现步骤和应用场景。一、引言......
  • python: read mysql
    sql:createdatabasegeovindu;usegeovindu;droptableBookKindList;#书目录createtableBookKindList(BookKindIDINTNOTNULLAUTO_INCREMENT,#自动增加BookKindNamenvarchar(500)notnull,BookKindParentintnull,PRIMARYKEY(BookKindID)......
  • 2023-06-15:说一说Redis的Key和Value的数据结构组织?
    2023-06-15:说一说Redis的Key和Value的数据结构组织?答案2023-06-15:全局哈希表Redis使用哈希表作为保存键值对的数据结构,通过哈希函数将Key映射为哈希表中的一个索引位置,使得Key-Value可以在O(1)时间复杂度内被快速访问。在Redis中,哈希表是由多个哈希桶(也称为槽位/数组元素)组成......
  • python下载文件的N中方式
    今天我们一起学习如何使用不同的Python模块从web下载文件。此外,你将下载常规文件、web页面、AmazonS3和其他资源。最后,你将学习如何克服可能遇到的各种挑战,例如下载重定向的文件、下载大型文件、完成一个多线程下载以及其他策略。1、使用requests你可以使用requests模块从一个......