面板数据的马哈拉诺比斯距离

时间:2016-05-10 16:58:37

标签: matrix panel distance stata

我在Stata中有一个面板数据集,其中包含行业和年份维度以及varlist1中汇总的其他7个变量。对于这些变量,我想分别计算每个行业年组合的马哈拉诺比斯距离。我知道如何使用mahascore计算整个样本的马哈拉诺比斯距离。 mahascoremahapick.ado包的一部分,必须单独安装。我的初始代码是:

mahascore $varlist1, gen(dist_M) refmeans compute

以下是数据样本的结构(varlist1的数字不真实,在我的数据集中它们只是一些数值区间变量):

firm_id  year  ind_id     var1 var2 var3 var4 var5 var6 var 7
1        2008     1         1    2   3    4    5     6   7
1        2009     1         1    2   3    4    5     6   7
1        2010     1         1    2   3    4    5     6   7   
2        2008     2         1    2   3    4    5     6   7
2        2009     2         1    2   3    4    5     6   7
2        2010     2         1    2   3    4    5     6   7

我还尝试生成参考矩阵,其中包含每年行业组合的平均值,并将它们传递给mahascore

 global varlist1 var1 var2 var3 var4 var5 var6 var7 
 foreach v in  $varlist1 {
    egen `v'_mean = mean(`v'), by(year ind_id)
 }

egen var1_mean=mean(var1), by(year ind_id)
global varlist2 var1_mean var2_mean var3_mean var4_mean var5_mean var6_mean var7_mean 

mkmat $varlist2, matrix(V)
matrix list V
matrix V=V'
matrix rownames V = $varlist1
matrix list V
mahascore $varlist1, gen(dist_M) refvals(V) compute

但是refvals(V)需要一个向量而不是一个矩阵。还有其他可能吗?我也可以想象使用另一个距离计算距平均值的距离。

我可以将样本分成几部分并将其作为新varlist使用循环传递给程序吗?

0 个答案:

没有答案