2017-08-17 197 views
-1

我很新的統計和R。在我的數據集中,目標變量是航班狀態,以預測航班是否可能延誤或可能準點。因此,它有兩個響應變量值 - 延遲和準時。因此,爲了構建使用R的邏輯迴歸模型,我們是否必須首先將目標變量重新編碼爲0和1?我的意思是它需要爲0-延遲和1爲Ontime。還是我可以將目標變量保持爲因子?R邏輯迴歸

請原諒我的基本問題。

+0

謝謝你的迴應。 在這些項目的解決方案之一中,我看到它在進一步繼續之前轉換爲數字?但是,有沒有推薦的方式,或者你認爲大多數人會遵循什麼樣的標準?我正在學習R和統計數據,並且對最佳實踐感興趣。 – lak3567bo

+0

底線,只要您的變量具有正確的類別(例如'factor'),就不需要重新編碼。 –

回答

3
data(iris) 

Binary dependent variable: 
iris$Species_binary <- ifelse(iris$Species=="setosa", "no", "yes") 

它是否是一個因素?

glm(as.factor(iris$Species_binary)~iris$Sepal.Length, family="binomial") 

是的,它的確如此。

Call: glm(formula = as.factor(iris$Species_binary) ~ iris$Sepal.Length, 
    family = "binomial") 

Coefficients: 
     (Intercept) iris$Sepal.Length 
      -27.829    5.176 

Degrees of Freedom: 149 Total (i.e. Null); 148 Residual 
Null Deviance:  191 
Residual Deviance: 71.84 AIC: 75.84 

難道作爲一個邏輯(布爾)變量工作?

glm(I(iris$Species_binary=="yes")~iris$Sepal.Length, family="binomial") 
Call: glm(formula = I(iris$Species_binary == "yes") ~ iris$Sepal.Length, 
    family = "binomial") 

Coefficients: 
     (Intercept) iris$Sepal.Length 
      -27.829    5.176 

Degrees of Freedom: 149 Total (i.e. Null); 148 Residual 
Null Deviance:  191 
Residual Deviance: 71.84 AIC: 75.84 

是的,它會。當然,一個數值變量也可以工作。

對於logit的大多數其他軟件包/函數,情況也是如此,但有些可能會有不同的表現。請注意,邏輯鏈接是二項系列的默認值,這就是爲什麼我不必指定它。

儘管如此,請確保您知道哪個級別的因素被計爲正級別!否則你對結果的解釋將會倒退。

+0

謝謝你的迴應。 在這些項目的解決方案之一中,我看到它在進一步繼續之前轉換爲數字?但是,有沒有推薦的方式,或者你認爲大多數人會遵循什麼樣的標準?我正在學習R和統計數據,並且對最佳實踐感興趣。 – lak3567bo

+1

@ lak3567bo不客氣。大多數人會將其轉換爲數字,以便他們能夠確定地知道,意圖成爲積極水平的因素水平正在被視爲如此。既然選擇存在這樣做的其他方式,沒有通用的標準做法,但在有標準的環境中(如課程或某些期刊等),標準可能會首先將其轉換爲數字。如果你希望你可以點擊我的答案,讓未來的讀者知道這是答案。 :) –

+0

公式接口的使用可能會更好。我明白這可能是爲了演示的目的,但不需要教初學者一些會讓他們陷入困境的東西。 'mdl < - glm(as.factor(iris $ Species_binary)〜iris $ Sepal.Length,family =「binomial」); 預測(mdl,newdata = iris [1:5,]); iris $ Species_binary < - as.factor(iris $ Species_binary); mdl2 < - glm(Species_binary〜Sepal.Length,family = binomial,data = iris); 預測(mdl2,newdata = iris [1:5,])' –