一键总结音视频内容

Attention is All you Need


Stata 分组计算:by 和 bysort 命令(中文)

大家好!今天,我想分享如何在 Stata 中实现分组计算。在数据处理过程中,我们常常需要计算不同组别或不同类别的平均值、标准差或其他统计变量。为了更好地说明分组计算的概念和应用方法,我们将使用一个包含车辆价格、制造商和其他特征(例如是国内还是国外制造商)的数据集。

假设我们对的研究题目是:国外制造的车辆的价格是否比国内制造的车辆的价格更高?为了实现这个简单的目的,我们需要计算国内车辆的平均价格和国外车辆的平均价格。

要实现分组计算,我们可以使用 Stata 中的 by 命令。by 命令的语法非常简单,只需要在 by 后面跟上分类变量,例如我们这里的 foreign 变量,它表示汽车是国内生产还是国外生产的。然后,我们可以使用 egen 命令(generate 命令的简写)来计算平均值。

by foreign, sort: egen mean_price = mean(price)

上面的命令首先按照 foreign 变量分组,然后计算 price 的平均值,并将其生成为一个新的变量 mean_price

现在,我们可以运行上面的命令,并查看输出结果。在数据表中,我们可以看到生成了一个新的变量 mean_price。我们可以看到,对于同一组别的平均值是相同的,但不同组别的平均值有差距。例如,国外车辆的平均价格是 6384,而国内车辆的平均价格只有 6072。这也间接证明了国外生产的价格比国内的更高。

如果我们想计算其他统计量,例如标准差和中位数,我们可以继续使用 egen 命令。

by foreign, sort: egen std_price = stddev(price)
by foreign, sort: egen median_price = median(price)

上面的命令分别计算 price 的标准差和中位数,并将其生成为新的变量 std_pricemedian_price。我们可以看到,使用中位数可以更清晰地区分不同组别,并且我们也可以计算出它们的标准差。

由于 egen 命令没有直接生成方差的命令,我们可以直接使用标准差的平方来计算方差。

by foreign, sort: egen variance_price = (std_price)^2

现在,我们已经计算出了三个分组的统计量。但是,如果我们想按照国内/国外以及制造商这两个变量来分组,该如何做?我们可以使用 bysort 命令,它将 sortby 命令合并在一起。

bysort foreign make: egen mean_price = mean(price)

上面的命令首先按照 foreignmake 变量排序,然后计算 price 的平均值,并将其生成为新的变量 mean_price。我们可以看到,使用 bysort 命令可以更加简单地实现分组计算。

总之,通过简单的 bybysort 命令,我们可以轻松实现 Stata 的分组计算。