2015-02-12 2 views
-3

Это код Stata я разделить Winsorised & центрированный переменную (num_exp, обозначающее количество опытных менеджеров) на основе 4 квартили & затем генерировать высокий & низкий квартиль их муляжи:создавать самые высокие и самые низкие квартили переменной в Stata

egen quartile_num_exp = xtile(WC_num_exp), n(4) 
    gen high_quartile_numexp = 1 if quartile_num_exp==4 
    (1433 missing values generated); 
    gen low_quartile_num_exp = 1 if quartile_num_intlexp==1 
    (1062 missing values generated); 

спасибо всем - вот ссылка

https://dl.dropboxusercontent.com/u/64545449/No%20of%20expeienced%20managers.dta

I ди d попробуйте как Aspen Chen's & Предложения Роберто - способ создания высокой квартили Чэна дает те же результаты, что и раньше. & Roberto's - обе квартили показывают 1 для тех же строк - как это возможно?

Я забыл упомянуть здесь, что действительно существует множество связей - диапазон исходной переменной W_num_exp составляет от 0 до 7, среднее значение 2.126618, i вычитается из каждого наблюдения W_num_exp, чтобы получить WC_num_exp.

tab high_quartile_numexp shows the same problem I originally had 
    le_numexp |  Freq.  Percent  Cum. 
------------+----------------------------------- 
      0 |  1,433  80.64  80.64 
      1 |  344  19.36  100.00 
------------+----------------------------------- 
     Total |  1,777  100.00 

Кроме того, я проверил egenmore уже установлен в моей версии Stata 13,1

То, что я не понимаю, почему фиктивная переменная основана на самой высокой квартили не имеет 75% наблюдений под ним (У меня есть 1777 полных наблюдений): Насколько я понимаю, эта фиктивная переменная должна быть точкой отсечки, над которой ровно 25% от общего числа нет. (как мы видим, он содержит только 19,3% наблюдений).

Я делаю что-то неправильно в написании правильного кода Stata для high_quartile low_quartile фиктивных переменных?

+0

Нет данных или результатов для verfy. Вы проверяли распределение 'quartile_num_exp'? Если переменная ('WC_num_exp' в этом случае) сильно сконцентрирована на одном значении, Stata может только найти значение, которое приближается к 75-му процентилю. –

+0

В любом случае 'tab high_quartile_numexp' будет демонстрировать, что код не генерирует фиктивные переменные правильно. Вместо этого используйте вместо этого 'gen high_quartile_numexp = quartile_num_exp == 4'. –

+1

Некоторая путаница здесь между квартилями (3 числа) и ячейками или классами, которые они ограничивают (4). Не воспроизводится без ваших данных. Вы должны записать, что функция 'egen'' xtile() 'должна быть загружена с помощью' ssc install egenmore'. Несмотря на эту плохую формулировку, догадка @ Аспен Чена на галстуках, несомненно, находится на мишени. Количество опытных менеджеров в принципе имеет значения 0, 1, ... и связи весьма вероятны. –

ответ

1

Приведенный набор данных отвечает на вопрос. Рассмотрят подведение:

. tab W_num_exp 

num_execs_i | 
    ntl_exp, | 
Winsorized | 
    fraction | 
     .01 |  Freq.  Percent  Cum. 
------------+----------------------------------- 
      0 |  297  16.71  16.71 
      1 |  418  23.52  40.24 
      2 |  436  24.54  64.77 
      3 |  282  15.87  80.64 
      4 |  171  9.62  90.26 
      5 |  109  6.13  96.40 
      6 |   34  1.91  98.31 
      7 |   30  1.69  100.00 
------------+----------------------------------- 
     Total |  1,777  100.00 

точно одинаковое количество в каждом из 4 квартили на основе бункеров может быть обеспечено, если, и только если есть значения с кумулятивными процентами 25, 50, не существуют 75. Нет таких значений. Вы должны делать с приближениями. Приближения могут быть паршивыми, но единственная альтернатива, произвольно назначающая наблюдения с одинаковым значением различным бинам для повышения частоты, является статистически незащищенной.

(Число наблюдений, которое должно быть кратным 4 для 4-х ящиков и т. Д., Для ровно равных частот также является усложнением, которое трудно укусить для небольших наборов данных, но это не главная проблема здесь.)

2

Рассмотрим следующий код:

clear 
set more off 

sysuse auto 
keep make mpg 

*----- 

// your way (kind of) 
egen mpg4 = xtile(mpg), nq(4) 

gen lowq = mpg4 == 1 
gen highq = mpg4 == 4 

*----- 

// what you want 
summarize mpg, detail 
gen lowq2 = mpg < r(p25) 
gen highq2 = mpg < r(p75) 

*----- 

summarize high* low* 
list 

Теперь проверьте список, чтобы посмотреть, что происходит.

См. help stored results.

Смежные вопросы