2015-09-16 1 views
-2

Я имею панель набора данных в следующем форматеКак создать среднюю по отрасли переменную из данных фирмы за год с помощью Stata?

Firm Year Industry Sales Profit Export intensity R&D 
1 2000 1 x x x x 
2 2000 1 x x x x 
3 2000 2 x x x x 
4 2000 2 x x x x 
1 2001 1 x x x x 
2 2001 1 x x x x 
3 2001 2 x x x x 
4 2001 2 x x x x 
1 2002 1 x x x x 
2 2002 1 x x x x 
3 2002 2 x x x x 
4 2002 2 x x x x 
1 2003 1 x x x x 
2 2003 1 x x x x 
3 2003 2 x x x x 
4 2003 2 x x x x 

Я хочу создать среднеотраслевые в год всех переменных. Реальный набор данных насчитывает 2000 фирм * 10 лет наблюдений и 25 отраслей.

+0

это широкий и неопределенный вопрос. с каким инструментом вы работаете, чтобы создать эту панель? какой источник данных? – Paolo

+0

Я попытался скопировать данные из excel на вопрос, но не успешно. Это выглядит немного грязно. Но в основном у меня есть данные firm_year о продажах, прибыли, интенсивности экспорта и т. Д. Я хочу создать средний показатель по отрасли (средний объем продаж всех фирм в отрасли) за каждый год. –

+0

Какие у вас инструменты (sql server, excel, access, ...)? откуда берутся данные (база данных sql, файл excel, база данных mdb, json-файл ...)? какой язык вы будете использовать для создания панели? – Paolo

ответ

1

Если вы хотите сохранить структуру данных, самый простой способ, вероятно, объединить by() вариант egen «s с петлей:

foreach v of varlist Sales Profit Export RD { 
    egen IndAvg`v' = mean(`v') , by(Industry Year) 
} 

Eg,

clear all 
input Firm Year Industry Sales Profit Export RD 
1 2000   1  831  135  196 30 
2 2000   1  44  847  885 780 
3 2000   2  818  112  859 306 
4 2000   2  777  700  903 858 
1 2001   1  491  563  325 324 
2 2001   1  411  468  927 720 
3 2001   2  731  872  170 556 
4 2001   2  587  273  833 656 
1 2002   1  155  558  497 427 
2 2002   1  210  853  792 575 
3 2002   2  279  282  969 549 
4 2002   2  683  176  902 538 
1 2003   1  805  475  479 599 
2 2003   1  226  178  37 225 
3 2003   2  129  693  746 652 
4 2003   2  347  509  406 102 
end 

foreach v of varlist Sales Profit Export RD { 
    egen IndAvg`v' = mean(`v') , by(Industry Year) 
} 

sort Industry Year Firm 
li , sepby(Industry) 

Однако, вы можете также хочу посмотреть collapse:

collapse (mean) Sales Profit Export RD , by(Industry Year) 
+0

Спасибо Бредан. Кажется, что первый вариант работает. Но результат дублируется. Например, средний показатель по отрасли появляется несколько раз. По данным 2000 фирм с 10 годами каждый, среднее число повторится в 2000 раз за каждый год. Я не думаю, что stata может отобразить результат. В любом случае вы можете это исправить? –

+0

Структура данных зависит от конечной цели анализа. В некоторых случаях хотелось бы включить дублированные средние значения. Если вы хотите сохранить свои данные на уровне «Industry-Firm-Year», тогда будут «дублированные» средние значения «Industry-Year». В противном случае рассмотрите опцию 'collapse', как указано в конце ответа, что уменьшит ваш набор данных до одного наблюдения за« Industry-Year »(полностью удалив« Фирма »). –

+0

Спасибо Bredan. Тогда я попытаюсь свернуть, так как данные слишком велики для отображения в окне результатов. –