R
如何在 R 中同時使用數值/分類值運行序數邏輯回歸分析?
基礎數據:我有大約 1,000 人被標記為評估:“1”、[好]、“2”、[中]或“3”[壞]——這些是我試圖為人們預測未來的價值觀. 除此之外,我還有一些人口統計信息:性別(分類:M / F)、年齡(數字:17-80)和種族(分類:黑人/白種人/拉丁裔)。
我主要有四個問題:
- 我最初試圖將上述數據集作為多元回歸分析運行。但我最近了解到,由於我的依賴是一個有序因子而不是一個連續變量,我應該使用序數邏輯回歸來處理這樣的事情。我最初使用的是類似的東西
mod <- lm(assessment ~ age + gender + race, data = dataset)
,有人能指出我正確的方向嗎?- 從那裡開始,假設我得到了我覺得很舒服的係數,我知道如何只為 x1、x2 等插入數值——但是我將如何處理種族,例如,有多個響應的地方:黑人/白種人/ 拉丁裔?因此,如果它告訴我高加索係數是 0.289,而我試圖預測的某個人是高加索人,那麼由於該值不是數字,我該如何將其重新插入?
- 我還缺少一些隨機值——一些是針對種族的,一些是針對性別的,等等。我是否需要做任何額外的事情來確保這不會扭曲任何東西?(我注意到當我的數據集被加載到 R-Studio 時,當丟失的數據被加載為
NA
時,R 會說類似(162 observations deleted due to missingness)
- 但如果它們被加載為空白,它什麼也不做。)- 假設所有這些都解決了,並且我有我想要預測的性別、年齡和種族的新數據——在 R 中是否有一種更簡單的方法可以通過我的新係數公式來運行所有這些,而不是手動完成?(如果這個問題在這裡不合適,我可以把它帶回 R 論壇。)
這裡有一些信息可能會為您指明正確的方向。
關於您的數據,您所擁有的是具有多個類別的響應,並且無論何時您嘗試對分類響應建模,您都可以嘗試使用某種類型的廣義線性模型 (GLM)。在您的情況下,您必須考慮有關您的響應的其他信息,即您的響應水平具有自然排序好>中>壞,請注意這與嘗試對響應建模有何不同,例如某人用什麼顏色氣球可能會購買(紅色/藍色/綠色),這些值沒有自然順序。在使用有序響應執行此類模型時,您可能需要考慮使用比例優勢模型。
http://en.wikipedia.org/wiki/Ordered_logit
我自己沒用過,但是
polr()
MASS包裡面的函數應該是有一些用處的,或者我用lrm()
rms包裡面的函數做了類似的分析,發現還是蠻有用的。如果您加載這些包,只需使用?polr
或?lrm
獲取功能信息。好的背景,關於你的問題:
- 這應該在上面介紹,查看這些包/功能並閱讀序數邏輯回歸和比例優勢模型
- 每當您有一個分類的協變量(種族/性別/頭髮顏色)時,您都希望將這些視為 R 編碼中的“因素”,以便對它們進行適當的建模。了解什麼是因素以及如何處理它們很重要,但本質上您將每個類別視為一個單獨的級別,然後以適當的方式對其進行建模。只需閱讀模型中的因素,您就應該能夠梳理出正在發生的事情。請記住,將分類變量視為因素並不是 glm 模型或比例賠率模型所獨有的,而是所有模型處理分類變量的典型方式。 http://www.stat.berkeley.edu/classes/s133/factors.html
- 缺失值有時可能很麻煩,但如果您正在進行相當基本的分析,只需刪除包含缺失值的數據行可能是安全的(這並不總是正確的,但根據您當前的經驗水平,我是猜測你不需要關心何時以及如何處理缺失值的細節)。事實上,這幾乎就是 R 所做的。如果您有用於建模的數據,如果您連續缺少響應信息或模型中的任何協變量,R 只會排除此數據(這是您看到的警告)。顯然,如果您由於缺失而排除了大部分數據,那麼您的結果可能會有偏差,嘗試獲取更多關於為什麼有這麼多缺失值的信息可能會很好,但是如果您 重新丟失 10,000 行數據中的 162 個觀察值,我不會太擔心。如果您對更多細節感興趣,可以搜索處理丟失數據的方法。
- 幾乎所有的 R 模型對象 (
lm
,glm
,lrm
,…) 都將具有一個關聯predict()
函數,該函數將允許您計算當前建模數據集的預測值,另外還可以計算您希望預測結果的另一個數據集的預測值。只需搜索?predict.glm
或?predict.lm
嘗試獲取有關您想要使用的任何模型類型的更多信息。這是人們希望對模型做的一件非常典型的事情,所以請放心,有一些內置的函數和方法可以讓這樣做相對簡單。祝你好運!