1. 首頁
    2. stata做虛擬變量回歸的命令(R語言:利用caret的dummyVars函數設置虛擬變量)

    stata做虛擬變量回歸的命令(R語言:利用caret的dummyVars函數設置虛擬變量)

    caret的dummyVars函數可以幫助我們很快的建立一套完整的虛擬變量,之前沒見過,今天見到了,寫下來。

    看例子

    customers <- data.frame(                id=c(10,20,30,40,50),                gender=c('male','female','female','male','female'),                mood=c('happy','sad','happy','sad','happy'),                outcome=c(1,1,0,0,0))

    建立如上的數據框后,我們可以選擇將整個數據框虛擬變量化,dummyVars這個函數默認會把所有的分類變量都虛擬化:

    dmy <- dummyVars(" ~ .", data = customers)trsf <- data.frame(predict(dmy, newdata = customers))print(trsf)

    看結果:

    看,除了id和outcome之外所有的分類變量都被完全虛擬化了,同時我們還有注意它使用了“~”這個符號,回歸符號,這個意思就是something ~ (broken down) by something else or groups of other things;如果像我們這樣直接用“~”兩邊什么變量都不設定,那么就是默認將所有的分類變量虛擬化,如果你只要虛擬化一個變量,你就把那個變量放在“~”的后面,看下例子:

    dmy <- dummyVars(" ~ gender", data = customers)trsf <- data.frame(predict(dmy, newdata = customers))print(trsf)

    此時我們得到的就是只有性別的虛擬變量。

    另外,還要給大家介紹的一個參數就是fullRank,這個參數可以自動生成n-1個虛擬變量,而非全部虛擬化,這個操作是經常見的就是為了避免多重共線性。(dummy variable trap)。

    看例子:

    dmy <- dummyVars(" ~ .", data = customers, fullRank=T)trsf <- data.frame(predict(dmy, newdata = customers))print(trsf)

    將fullRank設置為T時,得到n-1個虛擬變量。

    小結

    今天給大家介紹了caret的dummyVars函數用來生成啞變量,感謝大家耐心看完。發表這些東西的主要目的就是督促自己,希望大家關注評論指出不足,一起進步。內容我都會寫的很細,用到的數據集也會在原文中給出鏈接,你只要按照文章中的代碼自己也可以做出一樣的結果,一個目的就是零基礎也能懂,因為自己就是什么基礎沒有從零學Python和R的,加油。

    (站外鏈接發不了,請關注后私信回復“數據鏈接”獲取本頭條號所有使用數據)

    往期內容:

    R語言作圖:分類變量與連續變量關系的圖形化表達

    python機器學習:線性回歸中的啞變量轉換

    python數據分析:如何進行啞變量轉換

    相關文章
    草莓视频