作者:丁点helper
来源:丁点帮你
上篇文章介绍了如何在数据中增加或者删除变量,但是实际操作中,我们需要从大的数据库中选取一些变量来分析,那么如何从数据中选取多个变量呢?
从数据库中选取多个变量
多重线性回归,一般是指有多个自变量X,只有一个因变量Y。前面我们主要是以简单线性回归为例在介绍,两者的差距主要在于自变量X的数量,在只有一个X时,就称简单线性回归本次我们数据链接:
假设原数据库为rawdata,存储了某地区人群的上千个健康指标,但现在我们只想提取其中的基本人口和社会经济特征变量进行分析。
通常来讲,可以在数据框后加[ , ]。逗号后是列。
## 提取第一列 rawdata [,1]
但从上千个指标中选出某几个人口和社会经济变量,必须知道这些变量在原数据库中是第几列,操作必然繁琐,且容易出错。
这种情况下,我们可以用下面的code:
newdata <- rawdata[,c('age','gender','ethnicity','education', 'job','marital_status','location','monthly_income')
定量变量的统计描述
多重线性回归,一般是指有多个自变量X,只有一个因变量Y。前面我们主要是以简单线性回归为例在介绍,两者的差距主要在于自变量X的数量,在只有一个X时,就称简单线性回归。
在刚刚整理好的newdata中,我们想了解目标人群的月收入。
首先对数据做个简单的逻辑核验,比如月收入一定是大于0的。
另外,还要把缺失值删掉,当然,这里需要考虑缺失值是否会对统计结果造成影响。
比如通过对未缺失变量的描述,发现缺失的月收入都来自金融行业的样本,那么用现有数据计算出来的月收入就可能低于实际情况,我们需要回访、补充数据,或者用相关数据代替。
无论采取何种办法,或者不采取任何补救办法,在汇报结果时,都需要说明。
newdata <- newdata[!is.na(newdata$monthly_income),]
定量变量的统计描述,可以用均值和标准差的组合,也可以用中位数和四分位数间距的组合。这取决于数据的分布:
hist(newdata$monthly_income)
一般情况下,收入都是左偏峰分布的,也就是说,大多数人的收入集中在中等水平,随着月均收入的增加,落在其区间内的人数越来越少。
所以我们要用中位数和四分位数间距的组合来描述月均收入。quantile()这个函数可以输出最小值、25%分位数、中位数、75%分位数、最大值。IQR()是计算四分位数间距的函数,也可以用75%分位数减去25%分位数计算。
quantile (newdata$monthly_income) ## results 0% 25% 50% 75% 100% 3000 4500 4700 5500 20000
分组对定量变量做统计描述
多重线性回归,一般是指有多个自变量X,只有一个因变量Y。前面我们主要是以简单线性回归为例在介绍,两者的差距主要在于自变量X的数量,在只有一个X时,就称简单线性回归。
不同性别的人群,月收入情况分别是怎样的呢?aggregate()函数可以实现分组输出统计结果:
该函数第一个命令是要统计的变量,第二个命令是要分组的变量,第三个命令是统计的方式,也就是用哪个函数对变量做统计。
aggregate(newdata$monthly_income, by=list(newdata$gender),quantile) ## gender=0:female; gender=1: male ## results Group.1 x.0% x.25% x.50% x.75% x.100% 1 0 3000 3500 4000 4500 6000 2 1 2000 5000 5500 6600 20000