Как создать двумерную матрицу на Stata

#matrix #stata

#матрица #stata

Вопрос:

если приведенный ниже вопрос не относится к «двумерной» матрице, то прошу прощения, но именно так я и думал, что определена двумерная матрица.

Я пытаюсь создать матрицу, в которой я хочу получить среднее значение переменной «X» по квинтилю дохода. Я создал матрицу для X следующим образом:

 
tabstat X [aw=weight] if location==1 amp; own==1, by(inc_quint) save

tabstatmat X, nototal

return list

matrix urbown = (r(Stat1)  r(Stat2)  r(Stat3)  r(Stat4)  r(Stat5))

matrix rownames urbown = `r(name1)' `r(name2)' `r(name3)' `r(name4)' `r(name5)'

matrix list urbown

svmat urbown
  

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

Комментарии:

1. Хотя я думаю, что то, что вы хотите, достаточно ясно, это не воспроизводимый пример. Вики-страница тегов Stata дает очень подробные рекомендации по показу кода, который мы можем запустить.

2. Спасибо за код. Я думаю, мне следовало упомянуть, что я хочу, чтобы различные матрицы (в зависимости от собственного и местоположения чайников) добавлялись к другому набору данных, а затем использовали их для генерации определенной переменной. Именно по этой причине я не рассматривал collapse.

3. Так что это другой вопрос.

4. Я подумал, что если я сохраню нужные мне данные в виде матрицы (если возможно создать матрицу, используя 2 переменные: decile amp; X в моем случае), а затем добавлю / объединю с другими данными, это сделает работу. Я понимаю, что есть несколько способов сделать это, но мне было бы полезно знать, как создать матрицу с 2 переменными.

5. Я предлагаю вам задать другой вопрос с воспроизводимым примером.

Ответ №1:

Все матрицы имеют строки и столбцы, даже если число их равно 1. Таким образом, все матрицы двумерны. Вам нужна только конкретная (односторонняя) таблица. Хотя ваш код заканчивается на svmat you, вы не объясняете, почему вам нужна матрица: основная причина, по которой вам нужна матрица Stata, — это дальнейшее манипулирование ею.

Существует много способов привести таблицу средних в форму, подходящую для дальнейшего использования. Вот один из них: используйте collapse для получения нового набора данных. Пример немного надуманный, но показывает, что ничто не исключает, как в вашем коде, (1) взвешивает (2) if классификатор, а также (0) с использованием пятиходовой разбивки или аналогичного.

 . sysuse auto, clear
(1978 Automobile Data)

. collapse price [aw=weight] if !foreign, by(rep78)

. list

      ----------------- 
     | rep78     price |
     |-----------------|
  1. |     1   4,608.6 |
  2. |     2   6,230.2 |
  3. |     3   7,142.2 |
  4. |     4   6,099.9 |
  5. |     5   4,186.5 |
     |-----------------|
  6. |     .     4,758 |
      -----------------