在科学研究中免不了和数据打交道,收集到原始数据往往不能直接使用,我们经常需要对其进行清洗、转换才能得到我们需要的数据。既往我们已经介绍了通过R进行数据转换,今天来介绍一下通过stata进行数据分组转换操作及分组统计。

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_数据

继续使用我们的汽车销售数据来演示,先导入数据,我是直接粘贴

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_数据转换_02


我们来看下数据,car就是汽车售价,age是年龄,gender是性别,inccat是收入,这里分成4个等级,ed是教育程度。

下面开始我们的转换:

  1. 假设我们想把年龄age分成5个组别,然后求出每个组别买车年龄的平均值
    先把年龄分组,生成5个年龄组
cluster kmeans age ,gen(group) k(5)

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_机器学习_03


求每个组的购车平均售价

egen meancar=mean(car),by(group)

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_机器学习_04


这样每个年龄组购车的平均售价就出来了,同理还可以求中位数,标准差等等很多内容,缺点是by参数只能分组一个变量,分组两个变量就会报错,不能计算标准误,需要手动计算。

2. 假设我们想知道不同教育阶段购车年龄、价格的关系

如果不使用stat函数控制输出,默认的是输出平均值

tabstat car age , by( ed )

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_数据_05


如果我们想多输出点内容,结果包含平均值和标准差、标准误,semean就是标准误的意思,等于standard error of mean (sd/sqrt(n))

tabstat car age , by( ed ) stat(mean sd semean)

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_机器学习_06


Tabstat函数和egen函数的缺点都是只能分组一个变量,不能分组两个变量。

3. 假设我们想知道不同教育水平中,不同性别的人群购车关系

假设想知道不同教育水平中不同性别人群购车的平均价

collapse (mean) car= car ,by( ed gender )

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_机器学习_07


我们还可以在这个基础上加入年龄

collapse (mean) car= car age=age,by( ed gender )

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_机器学习_08


Collapse函数一次可以分组两个变量,但是不能出两个结果,如果你还想知道标准误的结果,只能再做一次,然后合并,这一点就比不上R了。不过也就是多做一次,也不麻烦。

collapse (semean ) se= car ,by( ed gender )

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_数据转换_09


合并数据,其实很简单直接粘贴在Excel合并就好了。

stata将某个变量当做基准构造多分类logistic回归 stata调节变量分组回归_机器学习_10


OK,这样我们的数据转换就完成了,和我们用R语言做出来的一模一样哦,本章完结,如果觉得有用,记得分享给需要的人哦。