影响变量是什么意思

Python018

影响变量是什么意思,第1张

心理健康正日益成为一个传统上被掩盖的话题。 我们已经开始理解心理健康对生产力,总体健康,人际关系和身体健康的影响,并将更多的注意力放在心理健康上。 甚至雇主也开始更加重视提供工作环境和条件,以保持员工尽可能快乐和健康,而先进的公司则提供津贴,例如每月按摩,餐饮,免费和补贴的健身房以及无限制的假期。 鉴于此,作为一个对发展我的编程和数据科学技能感兴趣的人,我正在研究的Coursera Statistics专业的数据可视化和分析项目也部分激发了我的动力。 我决定使用疾病控制与预防中心( CDC )的数据,提取2013年行为风险因素监视系统数据 (BRFSS)。 该数据是通过每月一次电话采访收集的,是最大的数据集之一,致力于了解预防健康实践和风险行为的趋势,这些趋势与慢性病伤害和影响美国成年人的可预防传染病有关。 我分析的目的是了解收入水平和所报告的心理健康之间的关系,以及每年收入多少,身体活动程度以及所吃水果和蔬菜的量对心理健康的影响。

提取数据并了解结构

install.packages("ggplot2")

install.packages("mice")

install.packages("effects")

library(ggplot2)

library(MASS)

library(mice)

library(data.table)

library(dplyr)

library(effects)

load("~/Documents/R Stats Assignments/brfss2013.RData")

上传必要的库并加载数据后,我想查看数据集的一般形状和结构,以了解维数,每列中的数据类型以及为获取数据而需要进行的清理以一致的格式进行分析。

>dim(brfss2013)

[1] 491775330

#check structure of columns

str(brfss2013$columname)

#check for NA values

sum(is.na(brfss2013$columname))

在查看了提供的代码本/索引之后 ,我对需要与之交互的列有了很好的了解,并决定专门关注这些列。 其中包括具有以下数据的列:每周进行身体活动的分钟,每周食用的水果,每周食用的蔬菜,BMI,年收入范围以及当然的心理健康状况,这些数据由一个人据称身体状况不佳的天数来衡量在一定时期内的心理健康。 由于NA值会混淆分析的准确性并可能导致无响应偏差,因此我在列中寻找NA值,这些值介于数据的4.8%至34%之间。 我认为这些是不可忽略的缺失值,不能简单地从我的分析中删除。 对于在缺少34%数据的情况下的数值,我假设仅填写标准均值或中位数会歪曲我的分析并降低其准确性。 我选择了一种易于实现且相对准确的插补方法来代替我的NA值。

贝叶斯线性回归的多重插补

准确估算值的最快方法之一是通过线性回归算法,该算法尝试根据预定义的预测变量列表预测潜在值。 使用频繁方法(常规线性回归),我们假设自变量之间存在线性关系,另外还假设存在足够的值来进行准确的预测。 但是,对于这种估算,我选择了贝叶斯模型,通过这种方法,我们假设响应和预测变量都是随机的(将估算的不确定性考虑在内),尝试查找特定事件的概率,并根据先验概率更新概率。数据并根据这些概率进行预测。 合并先前信息以更新概率的能力使贝叶斯模型在做出预测时更灵活,并且可能更准确,尤其是对于较小的样本。

多重插补让我遍历插补模型n次,根据所使用的预测模型提供不同的可能插补。 通常,这是一个三阶段过程,涉及实际估算,用可能的预测替换每个NA,然后分析并汇总所有结果。

brfss2 <- brfss2013[,c('X_bmi5','X_drnkmo4','X_frutsum','X_vegesum','fc60_','pa1min_')]

imp_model <- mice(brfss2,method="norm",m=5)

#fill na function

fillna_fun <- function(data,columns){

df <- setNames(data.frame(rowMeans(squeeze(imp_model$imp[[columns]], bounds = c(0,max(brfss2013[[columns]]))))),"col2")

brf <- setNames(data.frame(data[[columns]]),"col2")

brf$col1 <- rownames(brf)

df$col1 <- rownames(df)

setDT(brf)[df,col2 :=i.col2,on=.(col1)]

brf$col2

}

brfss2013$pa1min_ <- fillna_fun(brfss2,"pa1min_")

brfss2013$X_bmi5 <- fillna_fun(brfss2,"X_bmi5")

brfss2013$X_drnkmo4 <- fillna_fun(brfss2,"X_drnkmo4")

brfss2013$X_frutsum <- fillna_fun(brfss2,"X_frutsum")

brfss2013$X_vegesum <- fillna_fun(brfss2,"X_vegesum")

通过链式方程式(小鼠)进行多元插补可使用贝叶斯线性回归轻松进行插补。 我选择缩小适用于具有分析所需数值的列的插补,并将插补运行默认次数-5。

我注意到贝叶斯线性回归返回了一些估算值的负数,考虑到这些列所测量的数据,这是不可能的。 例如,一个人不可能每周花费-300分钟进行锻炼。 为了解决这个问题,我使用了挤压功能来添加约束,以将预测限制在合理的自定义范围内。

与小鼠文档相反,我选择获取所有5个估算值的平均值,并用其填充NA值。 我完全理解这不是应该使用机器学习的方式,我错过了合并合并归因的基本步骤,并且有人认为我最好选择一个归因于平均值的归因。 尽管如此,我还是采用了该选项以简化应用程序,并希望收到读者对该选项的进一步反馈。

我通过使用setDT函数将函数中的向量强制到表中并按索引将向量连接起来来完成函数 ,因为均值插补向量仅具有对应于我原始数据帧中NA值的索引值。

映射

我分析的重要步骤涉及将某些列的数值映射到组和范围中。 例如,我没有看到BMI编号,而是想查看特定BMI属于哪个组/范围(例如25 =正常)。

brfss2013$income2 <- as.character(brfss2013$income2)

brfss2013$X_bmi5 <- brfss2013$X_bmi5/100

brfss2013$healtheat <- (brfss2013$X_frutsum+brfss2013$X_vegesum)/100

labels <- c('Excellent','Good','Ok','Bad','Very Bad')

breaks <- c(0,5,10,15,25,10000)

bmiLabs <- c('10','20','30','40','50','60','>60')

bmiBreaks <-c(0,10,20,30,40,50,60,10000)

activLabs <-c('0-200','200-500','500-1000','1000-2000','2000-4000','4000-10000','>10000')

activBreaks <-c(0,200,500,1000,2000,4000,10000,100000)

brfss2013 <- brfss2013 %>%

mutate(mentalHealth = cut(menthlth,breaks=breaks,labels=labels,include.lowest=TRUE)) %>%

mutate(bmiLev = cut(X_bmi5, breaks=bmiBreaks,labels=bmiLabs,include.lowest = TRUE)) %>%

mutate(physLev = cut(pa1min_, breaks=activBreaks,labels=activLabs,include.lowest = TRUE)) %>%

mutate(incomeLev = case_when(grepl("15|20",income2)~"0-$20k",

grepl("25|35",income2)~"25-$35k",

grepl("50",income2)~"35-$50k",

income2 %in% "Less than $75,000" ~ "50-$75k",

grepl("more",income2)~">$75k"

))

由于cut旨在采用数值矢量并将其根据自定义断点集将其拆分为bin,因此我决定使用cut函数 ,定义中断和标签以根据标签定义映射数据。 对于收入水平列,我将值转换为字符以使我能够使用grepl 。 这是一种模式匹配功能,我通过查找与用于标识每一行收入范围的自定义单词匹配的关键字来创建收入范围。

需要注意的重要一点是,我对心理健康作了一些假设。 我假设某个人在给定时期内仅报告过0至5次心理健康问题,则被归类为处于良好的心理健康状态,具有5至10的健康状况,10至15的正常,15至25的不良状况以及任何超出那非常糟糕。 这是基于观察数据并找到理想的断裂点进行分类的基础。

心理健康与年收入的关系

我认为叠加条形图是可视化心理健康与年收入范围之间关系的最有效和最有吸引力的方法。

#replace NA with missing

brfss2013$mentalHealth <- forcats::fct_explicit_na(brfss2013$mentalHealth, na_level = "Missing")

#convert income back to factor

brfss2013$incomeLev <- as.factor(brfss2013$incomeLev)

brfss2013 <- subset(brfss2013, !is.na(incomeLev))

brfss2013 %>%

add_count(incomeLev) %>%

rename(count_inc = n) %>%

count(incomeLev, mentalHealth, count_inc) %>%

rename(count_mentalHealth = n) %>%

mutate(percent= count_mentalHealth / count_inc) %>%

mutate(incomeLev = factor(incomeLev,

levels=c('0-$20k','25-$35k','35-$50k','50-$75k','>$75k')))%>%

ggplot(aes(x= incomeLev,

y= count_mentalHealth,

group= mentalHealth)) +

xlab('Annual Income')+ylab('Number of People')+

geom_bar(aes(fill=mentalHealth),

stat="identity",na.rm=TRUE)+

# Using the scales package does the percent formatting for me

geom_text(aes(label = scales::percent(percent)),position = position_stack(vjust = 0.5))+

theme_minimal()

使用dplyr软件包 ,我使用%>%运算符编写了多个运算,这些运算将按组统计收入水平和心理健康,按收入水平查找报告的心理健康数字的相对百分比,根据我的自定义对条形图进行分组,并可视化堆叠的条形图,并在每个图上添加百分比标签。

按年收入范围划分的心理健康分布

使用我对构成良好心理健康的假设,数据似乎可以证实人们的预期,您赚的钱越多,您处于更好的心理状态的可能性就越大。

收入水平的NA值该怎么办?

从年收入范围可视化显示的心理健康分布中,很明显在“收入水平”列中有很多NA值。 尽管我可以简单地降低NA值,但假设它们不会改变我的分析准确性并继续前进,但我相信很多人可能不愿意谈论其收入水平。 这意味着很大一部分资产净值来自不愿意通过电话分享其年收入的人。 可能的情况是,那些不愿意分享其收入信息的人处于较低的收入范围(0至20k)或收入很高的人群(超过70k),而忽略了这些行,这些行占收入数据的15%以上,容易引入无响应偏差。 我想通过机器学习来估算这些NA的潜在价值。 这次我选择通过多元回归模型来估算我的有序数据。 这种方法使用比例赔率逻辑回归模型,其机制将在以下段落中详细讨论。

#filling na values of income level column

brfss <- brfss2013[,c('incomeLev','healtheat','X_age_g','employ1','renthom1','sex','physLev')]

ordered_brfss <-mice(brfss, m=1, method='polr', maxit=1)

fillna_inc <- function(data,columns){

df <- setNames(data.frame(ordered_brfss$imp[[columns]]),"col2")

brf <- setNames(data.frame(data[[columns]]),"col2")

brf$col1 <- rownames(brf)

df$col1 <- rownames(df)

setDT(brf)[df,col2 :=i.col2,on=.(col1)]

brf$col2

}

brfss2013$incomeLev_ <- fillna_inc(brfss2013,"incomeLev")

为了进行这种估算,我重点介绍了一些我认为可以最大程度预测潜在收入的专栏。 我特别关注了个人报告是否租房或拥有房屋,是否雇用他/她,性别,年龄,体育活动水平以及受访者报告的水果和蔬菜数量。 我选择运行单个插补,纯粹是为了易于使用。

按收入水平可视化心理分布

我们都喜欢数据,即!

我想看看按收入水平划分的心理健康分布如何,并建立了另一个可视化视图。

按年收入范围划分的心理健康分布

比例赔率

将心理健康划分为好,好,优秀等组的行为,将本专栏转化为一个具有5级水平的因子。 这些因素根据级别排序。 考虑到此列的结构,我选择使用比例赔率逻辑回归。 为了进行分析,我需要选择一个模型,该模型可以帮助我理解在给定的独立变量的情况下某个人的心理健康处于特定类别的可能性,并了解这些变量对概率的影响。 尽管线性回归在某种程度上可以解决二进制分类问题(例如,如果响应变量是电子邮件还是垃圾邮件),但是当您为响应变量有多个类别时,线性回归就会崩溃。 序数逻辑回归使用logit函数将线性模型转换为满足有序响应类别,从而确保返回的概率在0到1的范围内。 我本来可以选择更灵活的多项式逻辑回归模型 ,但这是基于这样的假设,即响应变量中的类别不能以任何有意义的方式进行排序-我认为该假设不适用于我的心理健康响应变量。

我的模型依赖于计算比例优势比。 简而言之,比例优势比是一种用于有序逻辑回归的工具,可通过预测在特定值类别下给定响应变量属于特定类别的条件概率来帮助对自变量与有序响应因子/类别之间的关系做出假设。观察到的独立变量。

具有多个解释变量的几率几率

在这种情况下,J表示我们要预测的类别/因素。 上述公式吸收了n个因子,其中n取决于我在因变量中拥有的因子数。 数字指的是我用来构建模型的自变量。

没有数学

我使用此公式来了解与我们的结果(心理健康)关系最大的自变量,并试图了解自变量对心理健康的影响程度。

brfss2_model = polr(mentalHealth ~ incomeLev+bmiLev+X_drnkmo4+healtheat+physLev,data=brfss2013,Hess=TRUE) #Hessian used to get standard errors

我使用polr()函数将比例优势物流回归拟合到响应变量(心理健康)和预测变量。 在这种情况下,我决定将BMI,一个月内消耗的水果和蔬菜总量,体力活动水平,年收入范围和一个月内饮用的酒精饮料包括在内。 我通过将TRUE参数添加到Hessian中来包括观察到的信息矩阵,以便获得标准误差并尝试评估该模型对数据的适用性。

(ctable<-coef(summary(brfss2_model)))

#calculating p_value by comparing the t-value against the stnd norm distr similar to a z-test

p<-pnorm(abs(ctable[, "t value"]),lower.tail = FALSE)*2

#combining p-value

(ctable<-cbind(ctable,"p value"=p))

我着手找到回归系数并计算p_value以确定这些结果的重要性。 回归系数的范围从每月含酒精饮料的0.001到一组BMI水平的2.55略高,p值表明具有统计学意义。 根据我的理解,回归系数越接近零,就越表明预测变量的分布对于我们的响应变量的每个级别完全相同。 对于接近零的系数,这宽松地表示在响应变量上向自变量添加更多单位的效果接近于零。

可视化自变量的影响

为了清楚显示自变量对心理健康的影响,我决定使用“ 影响”软件包 。 由于polr函数返回估计的回归系数,因此我使用此程序包来帮助我解释polr结果 。

plot(Effect(focal.predictors = c("incomeLev","bmiLev"),brfss2_model))

在尝试了几种组合之后,我选择显示年收入和BMI效果图。 我将这两个变量用作焦点预测变量,使其他预测变量具有典型值(固定和平均)。

收入水平* BMI对心理健康的影响

根据结果​​,无论您的收入水平如何,随着BMI的增加,处于良好心理健康状态的可能性都会降低。 有趣的是,当您接近年收入$ 75,000时,下降的趋势逐渐减弱。 我们可以看到,在非常糟糕的心理健康状态下,类似的影响较小,您越富有,BMI升高对您的心理健康的影响就越小。 如果您要增加体重,那么在增加收入的同时,您的精神状态可能会更好。

除了我所知甚少之外,我正在学习的最重要的课程之一是数据分析和数据科学是一个迭代过程。 您可以尝试各种变量和模型,根据不断变化的假设清理方法和可视化效果,并测试这对结果及其准确性有何影响。

随时联系Twitter或在Twitter @Emmoemm上发送任何反馈

From: https://hackernoon.com/learning-to-understand-possible-effects-variables-such-as-income-and-physical-activity-have-on-a687cf3c23bc

打开CSDN,阅读体验更佳

R数据分析:数据清洗的思路和核心函数介绍

好多同学把统计和数据清洗搞混,直接把原始数据发给我,做个统计吧,这个时候其实很大的工作量是在数据清洗和处理上,如果数据很杂乱,清洗起来是很费工夫的,反而清洗好的数据做统计分析常常就是一行代码的事情。 Data scientists only spend 20% of their time creating insights, the rest wrangling data. 想想今天就给大家写一篇数据处理的常用函数介绍吧。全是自己的一丢丢经验,肯定不会是最优的,仅仅是给个参考,因为在R中同一个目的的

继续访问

最新发布 forcats | tidyverse家族对「分类变量」的解决方案(下)

学堂君根据功能对forcats中的「所有」函数作了汇总,共分为两大类、六小类:1 针对单个因子变量的处理函数1.1 增删类别的函数1.2 归并类别的函数1.3 重命名类别的函数1.4 调整类别顺序的函数1.5 其他函数2 针对多个因子变量的处理函数本篇为1.42部分。library(forcats) f=factor(c("a","aa","b","bb"), ...

继续访问

R手册(Tidy+Transform)--forcats

目录 forcats: for factor forcats: for factor 函数 说明 factor(x,levels,labels,ordered) as_factor(x) fct_expand(f, …) 添加更多级别 fct_explicit_na(f, na_level = “(Missin...

继续访问

因变量顺序类别的回归(R语言)

本例使用MASS包中的housing数据集,该数据集是关于哥本哈根住房情况的调查数据。其中包括5个变量,分别为:房主对他们目前住房的满意度(高、中、低),记为Sat是有序变量;房主认为物业管理的影响程度(高、中、低),记为Infl;租赁住房的类型(塔式、中庭、公寓、露宿),记为Type;与其他住户的沟通程度(低、高),记为Cont;每组对应的居民人数,记为Freq,其中共3∗3∗4∗2=723*3...

继续访问

tidyverse —— forcats包

作者简介野菜团子,R语言中文社区专栏作者 博客:https://ask.hellobi.com/blog/esperanca forcats包用于处理因子,可以更高效地对...

继续访问

用得上的商学课-老路

目录: 第一章:机会成本 第二章:比较优势 第三章:沉没成本 第四章:边际成本 第五章:交易成本 第六章:供需定理 第七章:需求弹性 第八章:凡勃伦商品 第九章:边际效用 第十章:价格歧视 第十一章:囚徒困境 第十二章:人质困境 第十三章:智猪博弈 第十四章:斗鸡博弈 第十五章:枪手博弈 第十六章:心理账户 第十七章:损失规避 第十八章:路径依赖 第十九章:比...

继续访问

《AI进化论:解码人工智能商业场景与案例》----读书笔记

AI进化论:解码人工智能商业场景与案例 作者:亿欧智库 文章大纲业内人士力荐序第一章 跨越AI商业化“奇点”第二章 金融狂欢下的泡影第三章 积重难返?医疗AI的颠覆之路第四章 智慧安防:罪恶无处遁形第五章 自动驾驶:定义未来出行第七章 内容不再是人的专利第八章 AI赋能下的法律新格局第九章 AI进驻,教育革命即将到来 业内人士力荐 我们不再以旁观者的身份观看着变革的发生,每个人都有机会参与其中,...

继续访问

OKR与CFR管理模式(一)-什么是OKR?

读前预 无论任何管理书籍,都是围绕着人性,如果激发员工的人性中的自尊和自我价值观、自我成就感。 作为一名领导者,在管理前,必须要是冷静,安静的对待他人 约翰杜尔为谷歌送上大礼 “好主意”再加上”卓越的执行”,就一定可以创造奇迹,而这正是OKR(目标与关键结果,Objectives and Key Results)管理模式的奥妙所在,它可...

继续访问

富人思维---转

但是可能是问题是穷人思维, @尼克余 没有将和富人有关的快车道的内容说全。 感谢作者MJ Demacro写了这本书,有条件的可以支持正版,我的已经在路上啦。 The Millionaire Fastlane: Crack the Code to Wealth and Live Rich for a Lifetime/MJ DeMarco-图书 还要感谢Leo做出了这么好的读书笔记,找到之...

继续访问

影响需求的三大变量(张五常)

在这个准则下,我认为如下的三项「不变」与「变」 的界定是「安全」的——安全者,不被事实推翻也。 (一)凡是直接影响价格的其它因素皆可变。这包括所有供应变动引起的价格变动的因素了。农业丰收(供应增加,价格下降)政府减少土地供应(楼宇 价格上升)。这些因素都是可变的。 (二)凡是直接影响需求量的其它因素皆不可变。 这包括金钱收入(money income)及所有价格不变或供应不变而需求量也会...

继续访问

精进:如何成为一个很厉害的人--作者:采铜

精进:如何成为一个很厉害的人 作者:采铜 文章目录精进:如何成为一个很厉害的人序 用更勇敢的方式去生活01 时间之尺 我们应该怎样对待时间活在“全部的现在” 从当下出发,联结过去与未来那么,一个人应该怎样对待时间呢?不同场合,不同的时间视角由当下向过去与未来延伸对五年后的自己提问 如何解决远期未来与近期未来的冲突?两种未来视角下的思维差异如何解决生活里两种未来的冲突?我们总是在重复地抓起沙子 把时...

继续访问

J2EE 高 级 软 件 工 程 师 面 试 题 集

目  录第一章:基础知识部分…………………………………3第二章:高级知识部分…………………………………27第三章:数据库部分……………………………………70第四章:程序设计部分…………………………………113第五章:面试技巧部分…………………………………132                第一章:J2EE高级软件工程师面试题集--JAVA基础部分 1、面向对象的特征有哪些方面   1.抽象:抽象...

继续访问

高效程序员的45个习惯

本文转载 《高效程序员的45个习惯》一书 目录 第1章 敏捷---高效软件开发之道 第2章 态度决定一切 1.做事 2.欲速则不达 3.对事不对人 4.排除万难,奋勇前进 第3章 学无止境 5.跟踪变化 6.对团队投资 7.懂得丢弃 8.打破沙锅问到底 9.把握开发节奏 第4章交付用户想要的软件 10.让客户做决定 11.让设计指导而不是操纵开...

继续访问

热门推荐 《增长黑客》节选与笔记

《增长黑客》节选与笔记 自序 1.1 创业家的黑暗前传 1.2 增长黑客的胜利 1.3 什么是“增长黑客” 1.4 增长黑客的职责和特质 1.5 一切用数据说话 1.6 增长黑客担任的团队角色 1.7 如何招聘增长黑客 1.8 如何成为增长黑客 1.9 增长黑客的常用工具箱 第2章 创造正确的产品 2.1 Instagram重生记 2.2 PMF,探寻产品与市场的完美契合 2.3 拒绝...

继续访问

幽灵的礼物

1 幽灵的礼物 前言我是你成功背后的影子 序言在幽灵的礼物中发现金矿 引子分享幽灵的智慧 第一章你是谁?交易圈中的幽灵 第二章备战交易:大师的匠心 第三章规则一:只持有正确的仓位 第四章规则二:正确加码才能获利 第五章规则一加二实战示范 第六章当日交易:规则成就短线高手 第七章妙手连连赢定期权 第八章图表交易:大师的天机 第九章一声棒喝:改变你的行为习惯 第十章跟我来游戏:放松练就创造力 第十一章...

继续访问

[转]OKR结合CFR的管理模式

读前预 无论任何管理书籍,都是围绕着人性,如果激发员工的人性中的自尊和自我价值观、自我成就感。 作为一名领导者,在管理前,必须要是冷静,安静的对待他人 约翰杜尔为谷歌送上大礼 “好主意”再加上”卓越的执行”,就一定可以创造奇迹,而这正是OKR(目标与关键结果,Objectives and Key Results)管理模式的奥妙所在,它可...

继续访问

JAVA开发全集

soap消息的分析和消息的创建和传递和处理 @WebService public interface IMyService {  @WebResult(name="addResult")  public int add(@WebParam(name="a")int a,@WebParam(name="b")int b)   @WebResult(name="us

继续访问

从程序员到项目经理

从程序员到项目经理(一):为什么要当项目经理 “从程序员到项目经理”,这个标题让我想起了很久以前一本书的名字《从Javascript到Java》。然而,从Javascript到Java充其量只是工具的更新,而从程序员到项目经理,却是一个脱胎换骨的过程。从Javascript到Java,是一个取巧的方法;而从程序员到项目经理,却并无捷径可走,必须从内而外的改变和提升。 一.为什么要当项目经理

继续访问

《精力管理》读书笔记

第一部分 如何做到全情投入 第一章 什么是精力及如何管理精力 大多数人仅仅希望竭尽所能,而当生活的要求超出能力所及,我们会着眼现状提出权宜之计,或许在短期内会运作良好,而负面效应却往往在长期过程中慢慢浮现。我们吝惜睡眠,用外带快餐填饱肚子,用咖啡提神,用酒精和安眠药放松身心。面对工作的无尽索取,我们变得暴躁易怒,注意力也难以集中。结束漫长的一天,我们拖着疲惫的身体回到家里,又常常发觉家庭也不再是欢...

继续访问

数据结构与算法

人工智能

写评论

评论

收藏

点赞