2013-10-14 27 views
5

我有一個由106個人組成的數據集,其中包含兩個類型 - a和b以及各種變量,例如年齡和性別。我想運行一個線性模型,根據協變量預測每個人是a型還是b型。使用電子表格數據在R中運行線性模型

`data = read.xlsx("spreadsheet.xlsx",2, as.is = TRUE)` 
age = data$age 
gender = data$gender 
type = data$type 

其中每個的形式是::

我的年齡,性別和每個個體的類型標籤的值用讀

age = [28, 30, 19, 23 etc] 
gender = [male, male, female, male etc] 
type = [a b b b] 

然後我嘗試建立使用模式:

model1 = lm(type ~ age + gender) 

但我收到此錯誤信息:

Warning messages: 
1: In model.response(mf, "numeric") : 
using type="numeric" with a factor response will be ignored 
2: In Ops.factor(y, z$residuals) : - not meaningful for factors 

我試圖改變類型,年齡和性別的格式使用:

age = as.numeric(as.character(age)) 
gender = as.character(gender) 
type = as.character(type) 

但是,這並不工作!

+2

Logistic迴歸既然你的反應是二項式我想你可以使用邏輯迴歸。教程如何做到這一點在R可以找到您最喜愛的搜索引擎。 – Roland

回答

11

您不能使用帶因子的線性迴歸模型作爲您的響應變量,這是您在此嘗試執行的操作(類型是您的響應變量)。迴歸模型需要數字響應變量。你應該看看分類模型。

正如羅蘭所指出的那樣,您可能希望首先將「類型」變量重新定義爲邏輯二項變量。您可以創建一個名爲「is.type.a」的新變量,它將包含TRUE或FALSE,而不是一個稱爲「type」的因子,它有兩個級別「a」和「b」。

然後,您可以嘗試根據二項分佈

model <- glm(is.type.a ~ age + gender,data=data,family="binomial") 
相關問題