2016-03-15 43 views
0

我有一組特定國家內有關組成員的虛擬變量:從組的列表中創建「是多數」指示燈成員身份

 +------------------------------------+ 
    | group1 group2 group3 country | 
    |------------------------------------| 
    1. |  0  1  0  FOO | 
    2. |  0  0  1  FOO | 
    3. |  0  0  1  FOO | 
    4. |  0  1  0  BAR | 
    5. |  1  0  0  BAR | 
    6. |  1  0  0  BAR | 
    7. |  1  0  0  BAR | 
    8. |  1  0  0  BAR | 
    +------------------------------------+ 

我想創建一個新的變量描述是否沒有一個人是某個國家多數羣體的一部分。

我想從我的示例構造這個指標。例如,在所示的數據集中,group3在國家FOO中佔大多數,因此個人23佔絕大多數。在BAR中,多數組爲group1,因此個人爲5,6,78佔多數。

有沒有人有一個整潔的方式來計算每個國家的大多數羣體?

+0

'幫助崩潰'是一種方式。如果您提供了初步嘗試,並且請求幫助指出它爲何不適合您,那最好。 –

回答

0
  1. 使用egengroup函數將虛擬變量轉換爲單個分類變量。
  2. 通過計算模式(最常見值)相等的模式
  3. 測試group_membership創建一個majority變量,找個人是否是多數

這裏的一部分是代碼做的那些三個步驟:產生

. egen group_membership = group(group*) 
. egen maj = mode(group_membership), by(country) 
. gen is_maj = (group_membership == maj) 

 +--------------------------------+ 
    | group country maj is_maj | 
    |--------------------------------| 
    1. |  2  FOO  3  0 | 
    2. |  3  FOO  3  1 | 
    3. |  3  FOO  3  1 | 
    4. |  2  BAR  1  0 | 
    5. |  1  BAR  1  1 | 
    |--------------------------------| 
    6. |  1  BAR  1  1 | 
    7. |  1  BAR  1  1 | 
    8. |  1  BAR  1  1 | 
    +--------------------------------+ 
1

這裏的多數顯然意味着最大的一方,而不一定是50%或更多的選票。

這裏是一個直接的解決方案,不使用egenmode()。 (我對這個功能沒有偏見;我是它的第一個作者。)

注意關係的可能性。如果有關係,此代碼任意選取一個組,但標記它們存在。但是,mode()有處理關係。

clear 
input group1 group2 group3 str4 country 
0 1 0 FOO 
0 0 1 FOO 
0 0 1 FOO 
0 1 0 BAR 
1 0 0 BAR 
1 0 0 BAR 
1 0 0 BAR 
1 0 0 BAR 
1 0 0 FROG 
0 1 0 FROG 
0 0 1 FROG 
end 
gen group = group1 
forval j = 2/3 { 
    replace group = `j' if group`j' 
} 
bysort country group: gen freq = _N 
bysort country (freq group): gen maj = group[_N] 
by country: gen maxfreq = freq[_N] 
bysort country freq (group): gen ties = group[1] != group[_N] & freq == maxfreq 

list, sepby(country) 

    +--------------------------------------------------------------------------+ 
    | group1 group2 group3 country group freq maj maxfreq ties | 
    |--------------------------------------------------------------------------| 
    1. |  0  1  0  BAR  2  1  1   4  0 | 
    2. |  1  0  0  BAR  1  4  1   4  0 | 
    3. |  1  0  0  BAR  1  4  1   4  0 | 
    4. |  1  0  0  BAR  1  4  1   4  0 | 
    5. |  1  0  0  BAR  1  4  1   4  0 | 
    |--------------------------------------------------------------------------| 
    6. |  0  1  0  FOO  2  1  3   2  0 | 
    7. |  0  0  1  FOO  3  2  3   2  0 | 
    8. |  0  0  1  FOO  3  2  3   2  0 | 
    |--------------------------------------------------------------------------| 
    9. |  1  0  0  FROG  1  1  3   1  1 | 
10. |  0  1  0  FROG  2  1  3   1  1 | 
11. |  0  0  1  FROG  3  1  3   1  1 | 
    +--------------------------------------------------------------------------+ 
+0

是的,關於關係的一個很好而重要的觀點。 (雖然在我的巨大數據集中,概率很小。)[我的解決方案](http://stackoverflow.com/a/36019315/2071807)對於我的新手來說更具可讀性,但是你的完整性更高。 – LondonRob