簡體   English   中英

如何為R中具有超過2個值的所有類別變量創建合適的偽變量?

[英]How to create appropriate dummy variables for all categorical variables with more than 2 values in R?

我有一個包含1000行和21個變量的CSV數據集。 在這21個變量中,有9個是類別變量,具有兩個以上的值。 如何在R中為相同變量創建偽變量? 我希望對該數據集進行邏輯回歸以解釋它。 我嘗試使用因子和水平對其進行轉換,但我認為僅對2個變量最有效。 我在Google上搜索了很多,並找到了許多網站,這些網站從理論上解釋了如何做到這一點,但是並沒有提及代碼或功能來完全理解它。 在這個網站上,我遇到了model.matrix()函數,R的虛擬包和dummy.code()函數。 但是我仍然被困住了,因為我是R的新手。很抱歉,這是我第一次在這里問。 提前致謝!

在R中,大多數函數將在您發送分類值(性別,位置等)時識別並自動創建偽變量! 例如,如果要進行線性回歸,則可以執行lm(CSV_DATA)。 如果分類值由實際數字表示,建議先將它們轉換為字符串,以允許R進行相應的調整!

如果必須手動執行此過程,則可以創建一個循環,該循環將遍歷數據集並填充其他變量。 對於每個分類值,您將需要n-1個其他變量才能將其表示為連續數據,n是該變量包含的可能類別的數量。 使用n-1個新變量,您可以將每個變量分配給原始類別變量中的可能類別。 在所有n-1個新變量中,最后一個類別將用0表示。 例如,如果您嘗試表示位置,並且您的數據可以是“ New York”,“ LA”或“ Miami”,則您將創建兩個(n-1)個虛擬變量,為了便於說明,我們將給它們名稱city1和city2。 如果原始變量等於“ New York”,則將設置city1 = 1,city2 = 0,如果它是“ LA”,則將設置city1 = 0,city2 = 1,如果原始值是“ Miami”,則設置city1 = 0和city2 = 0。

之所以起作用,是因為它沒有將任何一個類別的排名在數值上都高於其余任何類別,並且它使用最后一個類別作為“參考”,將所有其余類別與之進行比較! 如前所述,如果將變量表示為字符串R,它將自動為您執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM