绘制矩阵列的直方图(Stata 12)

时间:2013-07-07 14:43:50

标签: matrix histogram stata

在Stata12工作时,我需要绘制5个直方图,每个矩阵对应一个矩阵MAT,其中:

mata: MAT = uniform(1000, 5)

我理解一种可能性是使用mm_histogram()来获得直方图的每个区间的中心,宽度和密度。对于第一列,我们有:

mata: HIST_DAT = mm_histogram(MAT[.,1])

但后来我不知道如何绘制数据(在Stata或Mata中)。

非常感谢您的任何建议。

修改: 问题也出现在Statalist archive

2 个答案:

答案 0 :(得分:3)

有一个简单的答案:将矩阵列复制到Stata变量并使用histogram。其他任何东西都只是迂回或近似。

很难看出这个问题的核心是什么,但如果兴趣是绘制随机数的直方图,那么在Stata中将它们创建为变量要容易得多:

 . set obs 500 
 . gen y = runiform()
 . histogram y 

答案 1 :(得分:1)

为了完整起见,绘制相对于MAT列的直方图的代码是:

clear all
set obs 1000

mata:

  // Mata matrix of results 
  MAT = uniform(500, 5)

  // generates Stata variables from within Mata
  Stata_vars = st_addvar("float", ("V1", "V2", "V3", "V4", "V5"))

  // stores MAT columns in the first 500 obs. of the Stata variables
  st_store((1::rows(MAT)), Stata_vars, MAT)  

end

然后我们只需输入:

hist(V1)

用于V1或任何其他V2-V5新创建的Stata变量。