2013-07-07 2 views
1

Работа в Stata12, мне нужно построить 5 гистограмм, по одному для каждого столбца матрицы MAT, где:черчения гистограммы столбцов матрицы (Stata 12)

mata: MAT = uniform(1000, 5) 

Я понимаю, что одна возможность заключается в использовать mm_histogram() для получения центра, ширины и плотности каждого интервала гистограммы. В первом столбце мы имеем:

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

Но тогда я не знаю, как действовать для построения данных (либо в Stata или в Mata).

Большое спасибо за любое предложение.

EDIT: Вопрос также присутствует в Statalist archive

+0

Перекрестная ссылка на http://www.stata.com/statalist/archive/2013-07/msg00204.html Для сильных мнений, что такая перекрестная регистрация обязывает вас обновлять все используемые вами форумы, см. Http: // meta .stats.stackexchange.com/questions/941/posting-same-question-on-other-statistics-forums-in-addition-to-cross-validated –

+0

Большое спасибо, я не знал о перекрестке сообщений. С уважением, SL – Stezzo

ответ

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.

+0

Мне до сих пор не совсем ясно, как действовать, когда количество наблюдений набора данных Stata отличается от строк исходной матрицы. – Stezzo

+0

Число наблюдений> = количество строк: нет проблем. Число строк> число наблюдений pf: вам нужно сначала «установить общ», чтобы увеличить число. –

+0

Спасибо, последнее предложение. Предположим, что 'MAT' имеет только 500 строк. Вместо того, чтобы делать 'missing = J (1000-строк (MAT), 5,.)', А затем 'MAT = MAT \ missing', существует ли более прямой способ для хранения' MAT'? (возможно, непосредственно из 'st_store()'?). – Stezzo

3

Существует один простой ответ: скопировать столбец матрицы переменной Stata и использовать histogram. Все остальное будет просто окольным или приблизительным.

Это трудно понять, что центральное место в этом вопросе, но если интерес построение гистограммы случайных чисел, это намного проще, чтобы создать их в качестве переменных в Stata:

. set obs 500 
. gen y = runiform() 
. histogram y 
Смежные вопросы