2016-07-08 152 views
0

我是新來線性迴歸的人,我試圖找出如何解釋彙總結果。我很難解釋分類預測變量的估計值。考慮下面的例子。我添加了列的年齡和長度以包含數字預測變量和數字目標。在線性迴歸中解釋分類預測變量的估計值

library(MASS) 
data <- as.data.frame(HairEyeColor) 

data$length <- c(155, 173, 172, 176, 186, 188, 160, 154, 192, 192, 185, 150, 181, 195, 161, 194, 
173, 185, 185, 195, 168, 158, 151, 170, 163, 156, 186, 173, 167, 172, 164, 182) 
data$age <- c(48, 44, 8, 23, 23, 63, 64, 26, 8, 56, 40, 11, 17, 12, 60, 10, 9, 21, 46, 7, 12, 9, 32, 37, 52, 64, 36, 31, 41, 24) 

summary(lm(length ~ Hair + Eye + Sex + age, data)) 

輸出:

  Estimate Std. Error t value Pr(>|t|)  
(Intercept) 182.72906 8.22026 22.229 <2e-16 *** 
HairBrown  6.22998 7.45423 0.836 0.412  
HairRed  -0.38261 7.50570 -0.051 0.960  
HairBlond -0.25860 7.36012 -0.035 0.972  
EyeBlue  -8.44369 7.36646 -1.146 0.263  
EyeHazel  0.06968 7.49589 0.009 0.993  
EyeGreen  -0.15554 7.27704 -0.021 0.983  
SexFemale -4.92415 5.18308 -0.950 0.352  
age   -0.19084 0.15910 -1.200 0.243 

大部分是不顯著,但讓我們忽略了現在。

  1. 有什麼可說的(截取)?直觀地說,當分類預測因子(Hair = Black,Eye = Brown,Sex = Male)的基線值適用時,以及年齡= 0時,我會說這是長度值。這是正確的嗎?

  2. 數據集中長度的平均值爲173.8125,但估計值爲182.72906。這是否意味着對於基線情況,長度估計實際上高於平均長度?

  3. 與問題2類似的問題:假設眼睛=藍色,並且所有其他值仍作爲基線。估計值則變爲174.284(182.72906 - 8.44369)。我可以推斷,預計的平均長度是174.284,因此仍然高於整體平均值(173.8125)?

  4. 我怎樣才能發現哪個預測值/值對長度有正面或負面的影響?簡單地採取估計的方向將不起作用:負面估計僅意味着它與基線相比具有負面影響。這是否意味着我可以只有推斷,例如眼睛=藍色與 Eye = Brown相比,會產生負面影響而不是推斷它總體上具有負面影響?

  5. 怎麼來(攔截)是重要的,而所有其他行都不是?攔截的意義是什麼?

  6. 當以Hair作爲預測變量運行模型時,Hair = Blond的方向變爲正值(見下文),而在之前的模型中爲負值。那麼爲每個預測變量分別運行模型是否更明智一些,以便我可以捕捉到單個預測變量的真實大小和方向?

    summary(lm(length ~ Hair, data)) 
    
    
        Estimate Std. Error t value Pr(>|t|)  
    
        (Intercept) 173.125  5.107 33.900 <2e-16 *** 
        HairBrown  4.250  7.222 0.588 0.561  
        HairRed  -2.625  7.222 -0.363 0.719  
        HairBlond  1.125  7.222 0.156 0.877 
    

謝謝您的幫助。

回答

0
  1. 是的。虛擬變量是通過對比編碼創建的,因此您的攔截確實是對基準值的預測。

  2. 同樣如第1點所述,是的。

  3. 是的,你可以得出結論,但差異很小。您應該檢查平均值是否隨置信區間下降。如果確實如此,那麼藍色的平均值和價值之間的差異對於實際目的而言並不重要。

  4. 由於這些都是虛擬變量,因此您可以可以推斷出正的估計值表示正面影響,反之亦然。但是,更準確地說,看一下置信區間。只有在上限和下限都是正數的情況下,您纔可以有把握地說這個變量具有積極的影響。否則其不可預知的。

  5. 因爲你的數據不提供在所有變量都爲零會發生什麼情況的任何信息的模式,將有較少的觀測模型來做出攔截任何有意義的預測。任何時候你的虛擬變量都不會全部爲零。

  6. 是的,你可以做到這一點,但它會大多會給你只的方向,提供的置信區間不包括它們之間的零。

如果我是你,我會選擇一個不同的模型,比如已知可以很好地處理分類變量的迴歸樹。

+0

感謝您的答覆。你會知道如何防止將這些值作爲虛擬變量來使用嗎? – Joseph

+0

@Joseph如果不是虛擬變量,你會怎樣模擬它們?它們不是數字值。所以你可以按照Red> Brown> Blonde的順序對它們進行排序,並將它們的數字設爲1,2,3以使它們強制數字化(這是一種非常糟糕的方法),或者將它們轉換爲虛擬變量(在這種情況下是理想方法)。這些是您可以用於線性迴歸的唯一兩種方法。正如我所說的,你應該嘗試其他方法來模擬數據,這允許使用分類變量。 – Gaurav

+0

@ZheyuanLi Y不是?輸出摘要清楚地表明'lm()'已經爲分類變量的每個值計算了係數。這與使它們成爲二元虛擬變量相同。 – Gaurav

0

考慮這些逐點:

1)是的,你的解釋是正確的。 HairBrown = 6意味着棕色頭髮個體的長度比基線類別長6個單位。在這種情況下,這是黑頭髮,但值得注意的是基線的選擇對於分類變量是任意的。

2)我不會真的以這種方式本身解釋截距值,這是因爲:A)請記住,您還可以在那裏連續預測(年齡),你沒有併入這個概念;在年齡= 0時沒有人,所以你估計的是一個個人的價值,而這個價值在你的數據集中並不存在(或者不可能)。 B)你有幾個解釋變量,所以'基線情況'是把所有東西都集中在一起,不需要集中。您可以獲得有關每個變量正在進行的操作的信息,並可以將這些信息組合起來以預測年齡,眼睛顏色,性別和頭髮顏色的任何特定組合的值。

3),你可以在某些情況下,但你在談論與你的榜樣年齡= 0人。除此之外,我不明白你爲什麼試圖與平均情況進行比較(因爲在前面的案例中有解釋)。另外,忽略當前的連續預測因素,組間樣本量的差異會強烈影響整體平均值。比較羣體與比較個體羣體與整體平均值之間的差異幾乎總是更有意義。另請注意,這忽略了參數估計中的不確定性。

4)「在一般的負面影響」是沒有多大意義。這是必要的比較,即相對於某些東西是負面的。你可以做的是使其他類別(不僅僅是基線)與估計係數進行配對比較,因爲這些關係是可傳遞的。例如。 EyeBlue和EyeGreen都相對於基線呈負相關,但EyeGreen更負面。因此,綠眼人有較短的長度(忽略的事實變量不顯著)

5)截取是顯著只是意味着你基線的長度不等於0。在大多數情況下,這是不是很信息豐富,特別是因爲(再次!)這假定年齡爲0。這是外推的問題。

6)沒有,但是這不是一個很簡單的主題(查找模式的選擇,如果你有興趣瞭解更多)。在這種情況下,您的變量都不是重要的,這(鬆散地說)意味着您無法真正說出任何變量是否具有正面或負面影響。所以模型結構的變化反映了標誌並不奇怪。查看置信區間以瞭解參數估計的寬度;他們將從負面到正面。基本上,假設你有一個體面的樣本大小,你的變量可能解釋不了多少。

這裏所有的比較都是想更容易對與圖(使用上面的參數值進行,並通過頭髮的顏色着色):

Plot by group