关于数据挖掘:R语言用贝叶斯线性回归贝叶斯模型平均-BMA来预测工人工资附代码数据

59次阅读

共计 4790 个字符,预计需要花费 12 分钟才能阅读完成。

全文链接:http://tecdat.cn/?p=24141

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

在本文中,贝叶斯模型提供了变量抉择技术,确保变量抉择的可靠性。对社会经济因素如何影响支出和工资的钻研为利用这些技术提供了充沛的机会,同时也为从性别歧视到高等教育的益处等主题提供了洞察力

背景

上面,贝叶斯信息准则(BIC)和贝叶斯模型平均法被利用于构建一个扼要的支出预测模型。

这些数据是从 935 名受访者的随机样本中收集的。该数据集是_计量经济学数据集_系列的一部分。

加载包

数据将首先应用该dplyr 包进行摸索,并应用该ggplot2 包进行可视化。稍后,实现逐渐贝叶斯线性回归和贝叶斯模型均匀 (BMA)。

数据

数据集网页提供了以下变量形容表:

变量 形容
wage 每周支出(元)
hours 每周均匀工作工夫
IQ 智商分数
kww 对世界工作的理解得分
educ 受教育年数
exper 多年工作教训
tenure 在现任雇主工作的年数
age 年龄
married =1 如果已婚
black =1 如果是黑人
south =1 如果住在北方
urban =1 如果寓居在都市
sibs 兄弟姐妹的数量
brthord 出世程序
meduc 母亲的教育(年)
feduc 父亲的教育(年)
lwage 工资自然对数 wage

摸索数据

与任何新数据集一样,一个好的终点是规范的探索性数据分析。汇总表是简略的第一步。

# 数据集中所有变量的汇总表 -- 包含连续变量和分类变量
summary(wage)

因变量(工资)的直方图给出了正当预测应该是什么样子的。

# 工资数据的简略柱状图
hst(wge$wae, breks = 30)

直方图还可用于大抵理解哪些地方不太可能呈现后果。

# 查看图表 "尾部" 的点的数量
sm(wage$ge < 300)
## [1] 6
sm(wae$wge > 2000)
## [1] 20

简略线性回归

因为周工资(’wage’)是该剖析中的因变量,咱们想摸索其余变量作为预测变量的关系。咱们在数据中看到的工资变动的一种可能的、简略的解释是更聪慧的人赚更多的钱。下图显示了每周工资和 IQ 分数之间的散点图。

gplot(wae, es(iq, wge)) + gom_oint() +gom_smoth()


点击题目查阅往期内容

R 语言和 STAN,JAGS:用 RSTAN,RJAG 建设贝叶斯多元线性回归预测选举数据

左右滑动查看更多

01

02

03

04

IQ 分数和工资之间仿佛存在轻微的正线性关系,但仅靠 IQ 并不能牢靠地预测工资。尽管如此,这种关系能够通过拟合一个简略的线性回归来量化,它给出:

工资 i = α + β⋅iqi + ϵiwagei = α + β⋅iqi + ϵi

m_wg_iq = lm(wge ~ iq, dta = age)
coefients

工资 i = 116.99 + 8.3 ⋅iqi + ϵiwagei = 116.99 + 8.3 ⋅iqi + ϵi

在转向贝叶斯改良这个模型之前,请留神贝叶斯建模假如误差 (ϵi) 以恒定方差正态分布。通过查看模型的残差散布来查看该假如。如果残差高度非正态或偏斜,则违反假如并且任何后续推论都有效。要查看假如,请按如下形式绘制残差:

# 用散点图和模型误差残差的直方图来查看正态性假如

glot(dta = mwag_q, es(x = .ite, y = .rd)) +
  gemittr() +

plot(dta = m_g_iq, aes(x = .reid)) +
  histgm(bnwth = 10)

变量变换

两个图都显示残差是右偏的。因而,IQ(因为它目前存在于数据集中)不利用作贝叶斯预测模型。然而,对 仅具备正值的偏斜_因_变量应用(天然)对数变换 通常能够解决问题。上面,该模型应用转换后的工资变量进行了从新拟合。

# 用 IQ 的自然对数拟合 th 模型
lm(lage ~ iq, data = wae)

# 残差 sctterplot 和转换后数据的柱状图
plt(data = m_lag_iq, es(x = .fited, y = .reid)) 
  geiter() +

ggpot(dta = m_lwgeiq, as(x = .resd)) +
  gostgam(binwth = .1) +

残差的确大抵呈正态分布。然而,由此产生的 IQ 系数十分小(只有 0.0088),这是能够意料的,因为 IQ 分数进步 1 分简直不会对工资产生太大影响。须要进一步细化。数据集蕴含更多信息。

多元线性回归和 BIC

咱们能够首先在回归模型中蕴含所有潜在的解释变量,来粗略地尝试解释尽可能多的工资变动。

# 对数据集中的所有变量运行一个线性模型,应用 '.' 约定。full = lm(lwge ~ . - wage, dta = wge)

残缺线性模型的上述总结表明,自变量的许多系数在统计上并不显着(请参阅第 4 个数字列中的 p 值)。抉择模型变量的一种办法是应用贝叶斯信息准则 (BIC)。BIC 是模型拟合的数值评估,它也会按样本大小的比例惩办更多的参数。这是残缺线性模型的 BIC:

BIC(full)

BIC 值越小示意拟合越好。因而,BIC 能够针对各种缩减模型进行计算,而后与残缺模型 BIC 进行比拟,以找到适宜工资预测工作的最佳模型。当然,R 有一个性能能够系统地执行这些 BIC 调整。

# 用 step 计算模型
pIC(lwge ~ . - wge, dta = na.oi(wge))lg(lgth(na.mit(wge))))

# 显示逐渐模型的 BIC
BIC(se_mol)

调用 step 找到产生最低 BIC 的变量组合,并提供它们的系数。很不错。

贝叶斯模型均匀(BMA)

即便 BIC 处于最低值,咱们能有多大把握确定所失去的模型是真正的 “ 最佳拟合 ”?答案很可能取决于根底数据的规模和稳定性。在这些不确定的时候,贝叶斯模型平均化(BMA)是有帮忙的。BMA 对多个模型进行平均化,取得系数的后验值和新数据的预测值。上面,BMA 被利用于工资数据(排除 NA 值后)。

# 不包含 NA
a_ona = na.omt(wae)

# 运行 BMA,指定 BIC 作为判断后果模型的规范
BMA(wge ~ . -wge, daa= ae_o_a,
                   pror = "BIC", 
                   moepor = ufom())

# 显示后果
summary

后果表显示了五个最有可能的模型,以及每个系数被蕴含在实在模型中的概率。咱们看到,出世程序和是否有兄弟姐妹是最不可能被蕴含的变量,而教育和智商变量则被锁定。BMA 模型的排名也能够用图像图来显示,它分明地显示哪些变量在所有模型中,哪些变量被排除在所有模型之外,以及那些介于两者之间的变量。

ge(b_lge, tp.oels)

咱们还能够提供模型系数的 95% 置信区间。上面的后果反对了对于包含或排除系数的决定。例如,在区间蕴含零,有大量证据反对排除该变量。

confint(ceflae)

进行预测

构建模型后,pediction 只是插入数据的问题:

# 用一个虚构的工人的统计资料来预测数据的例子

# 进行预测
redict = pedct(e_odl, newdt = wrkr,eitr = "BMA")

# 将后果转换为元
exp(wk_pedct)

预计这名化妆工作人员的周薪为 745 元。这到底有多精确?你得问她,但咱们对咱们的变量抉择很有信念,并对现有的数据尽了最大致力。利用的贝叶斯技术使咱们对后果有信念。


本文摘选 R 语言用贝叶斯线性回归、贝叶斯模型均匀 (BMA)来预测工人工资 ,点击“ 浏览原文 ”获取全文残缺 代码和数据 材料。

点击题目查阅往期内容

R 语言逻辑回归、Naive Bayes 贝叶斯、决策树、随机森林算法预测心脏病 PYTHON 银行机器学习: 回归、随机森林、KNN 近邻、决策树、高斯奢侈贝叶斯、反对向量机 SVM 剖析营销流动数据 | 数据分享
PYTHON 用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯和 KMEANS 聚类用户画像
MATLAB 随机森林优化贝叶斯预测剖析汽车燃油经济性
R 语言中贝叶斯网络(BN)、动静贝叶斯网络、线性模型剖析错颌畸形数据
应用贝叶斯层次模型进行空间数据分析 MCMC 的 rstan 贝叶斯回归模型和规范线性回归模型比拟
python 贝叶斯随机过程:马尔可夫链 Markov-Chain,MC 和 Metropolis-Hastings,MH 采样算法可视化
Python 贝叶斯推断 Metropolis-Hastings(M-H)MCMC 采样算法的实现
matlab 贝叶斯隐马尔可夫 hmm 模型实现
贝叶斯线性回归和多元线性回归构建工资预测模型
Metropolis Hastings 采样和贝叶斯泊松回归 Poisson 模型
贝叶斯分位数回归、lasso 和自适应 lasso 贝叶斯分位数回归剖析免疫球蛋白、前列腺癌数据
R 语言 RSTAN MCMC:NUTS 采样算法用 LASSO 构建贝叶斯线性回归模型剖析职业声望数据
R 语言 STAN 贝叶斯线性回归模型剖析气候变化影响北半球海冰范畴和可视化查看模型收敛性
PYTHON 用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯和 KMEANS 聚类用户画像
贝叶斯分位数回归、lasso 和自适应 lasso 贝叶斯分位数回归剖析免疫球蛋白、前列腺癌数据 R 语言 JAGS 贝叶斯回归模型剖析博士生延期毕业实现论文工夫
R 语言 Metropolis Hastings 采样和贝叶斯泊松回归 Poisson 模型
Python 决策树、随机森林、奢侈贝叶斯、KNN(K- 最近街坊)分类剖析银行拉新流动开掘潜在贷款客户
R 语言贝叶斯 MCMC:用 rstan 建设线性回归模型剖析汽车数据和可视化诊断
R 语言贝叶斯 MCMC:GLM 逻辑回归、Rstan 线性回归、Metropolis Hastings 与 Gibbs 采样算法实例
R 语言贝叶斯 Poisson 泊松 - 正态分布模型剖析职业足球比赛进球数
随机森林优化贝叶斯预测剖析汽车燃油经济性
R 语言逻辑回归、Naive Bayes 贝叶斯、决策树、随机森林算法预测心脏病
R 语言用 Rcpp 减速 Metropolis-Hastings 抽样预计贝叶斯逻辑回归模型的参数
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 采样用于回归的贝叶斯预计

正文完
 0