Я использую Stata и пытаюсь вычислить среднюю цену фирм-конкурентов на рынке. У меня есть данные, которые выглядят так:
Market Firm Price
----------------------
1 1 100
1 2 150
1 3 125
2 1 50
2 2 100
2 3 75
3 1 100
3 2 200
3 3 200
И я пытаюсь вычислить среднюю цену конкурентов каждой фирмы, поэтому я хочу создать новое поле, которое представляет собой средние значения других фирм на рынке. Это выглядело бы так:
Market Firm Price AvRivalPrice
------------------------------------
1 1 100 137.2
1 2 150 112.5
1 3 125 125
2 1 50 87.5
2 2 100 62.5
2 3 75 75
3 1 100 200
3 2 200 150
3 3 200 150
Чтобы вычислить среднее по группе, я мог бы использовать команду egen:
egen AvPrice = mean(price), by(Market)
Но это не исключило бы собственную цену фирмы в среднем, и, насколько мне известно, используя if
квалификатор изменяет только наблюдения, над которыми он работает, а не группы, по которым он усредняется. Есть ли простой способ сделать это или мне нужно создавать циклы и генерировать каждое среднее значение вручную?