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

简介: Python贝叶斯回归分析住房负担能力数据集

我想研究如何使用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()

结果如下:

住房负担很容易超过收入的10倍。

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

pm.traceplot(trace)
plt.show()

**看起来与我们上面的模型完全一样,不同之处在于我们还有一个正态分布的截距beta。现在我们的模型已经训练好了,我们可以继续做一些推论工作。

**

完成运行后,会看到类似以下内容:

可以看到,我们有斜率和截距的后验分布以及回归的标准偏差。

**住房负担会随着年龄的增长而减少吗?

**

是的。随着人们的建立,他们的住房成本将相对于收入下降。这将等于年龄变量的负斜率系数。运行以下代码,则可以找出斜率系数为负的确切概率。

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

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

相关文章
|
2天前
|
机器学习/深度学习 数据采集 数据可视化
python用回归、arima、随机森林、GARCH模型分析国债期货波动性、收益率、价格预测
python用回归、arima、随机森林、GARCH模型分析国债期货波动性、收益率、价格预测
10 1
|
4天前
|
机器学习/深度学习 PyTorch TensorFlow
TensorFlow、Keras 和 Python 构建神经网络分析鸢尾花iris数据集|代码数据分享
TensorFlow、Keras 和 Python 构建神经网络分析鸢尾花iris数据集|代码数据分享
15 0
|
4天前
|
新零售 分布式计算 数据可视化
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
数据分享|基于Python、Hadoop零售交易数据的Spark数据处理与Echarts可视化分析
15 0
|
5天前
|
机器学习/深度学习 测试技术 TensorFlow
PYTHON用RNN神经网络LSTM优化EMD经验模态分解交易策略分析股票价格MACD
PYTHON用RNN神经网络LSTM优化EMD经验模态分解交易策略分析股票价格MACD
10 1
|
5天前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(下)
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
14 1
|
5天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(上)
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
18 1
|
7天前
|
机器学习/深度学习 存储 数据可视化
数据分享|Python在Scikit-Learn可视化随机森林中的决策树分析房价数据
数据分享|Python在Scikit-Learn可视化随机森林中的决策树分析房价数据
29 12
|
7天前
|
算法 数据可视化 搜索推荐
数据分享|Python用Apriori算法关联规则分析亚马逊购买书籍关联推荐客户和网络图可视化
数据分享|Python用Apriori算法关联规则分析亚马逊购买书籍关联推荐客户和网络图可视化
29 11
|
7天前
|
机器学习/深度学习 算法 数据挖掘
数据分享|PYTHON用PYSTAN贝叶斯IRT模型拟合RASCH模型分析学生考试问题数据
数据分享|PYTHON用PYSTAN贝叶斯IRT模型拟合RASCH模型分析学生考试问题数据
20 3
|
7天前
|
机器学习/深度学习 算法 vr&ar
PYTHON用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型分析经济时间序列
PYTHON用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型分析经济时间序列
17 4