2014-10-01 23 views
-1

我開始深入研究R並教給我自己的基礎知識,並且我想着手尋求幫助幾個命令。R援助中的基本回歸模型

我想了解使用從文本文件拉出一個數據集以下概念:

對於初學者來說,這裏是有問題的文本文檔的前幾行:

salary  totcomp tenure age  sales profits assets Industry 
24222.39 58936.87 7  61  161315 2956 257389 2 
24048.97 59219.46 0  51  144416 22071 237545 3 
23172.99 56814.47 11 63  139208 4430 49271 2 
23431.15 56971.3  6  60  100697 6370 92630 3 
22049.87 55596.23 18 63  100469 9296 355935 3 

創建相關表

salary<-read.table(file="C:/Users/sean/Desktop/ceosalary.txt", header = TRUE,sep="\t") 
attach(salary) 
cor(salary[-c(1,4,6)]) 

構建多元迴歸模型

lm(formula = profits - Industry) 
o1<-lm(salary-profits) 

當執行lm()發生錯誤:

錯誤model.frame.default(式=薪水 - 利潤,drop.unused.levels = TRUE):無效型(列表),用於變量 '薪水'

獲取的方差分析表

對於AB Ove多元迴歸模型,使用anova()

anova(lm) 

我是否在正確的軌道上使用這些命令?

+7

什麼是你想要的模型,以適應?你是否試圖根據利潤預測工資?那麼你想要'lm(薪水〜利潤)'而不是'lm(薪水 - 利潤)' - 注意波浪號「〜」而不是減號。前者用於在R中指定公式。另外,我建議避免使用「attach()」。它可以很快地搞亂你的搜索路徑,大多數函數都有一個'data ='參數,所以它沒有必要。例如:lm(薪水〜利潤,數據=工資)' – MrFlick 2014-10-01 22:41:48

+0

同樣要打印擬合的regreesion模型的ANOVA表,使用例如'fit < - lm(salary_enefits,data = salary)'來捕獲擬合模型,然後用'anova(fit)'顯示ANOVA表。在我看來,「工業」應該是一個明確的變量。在這種情況下,您應該在使用'salary $ Industry < - factor(salary $ Industry)''將其轉換爲一個因子'之後再擬合一個模型。 – SimonG 2014-10-01 22:44:06

+0

不,我試圖根據行業,然後銷售,然後年齡來預測利潤。 – herpderp 2014-10-01 22:48:33

回答

2

您的模型不是多元迴歸模型。它是一個簡單的線性迴歸。 lm函數的公式是y〜x而不是y-x。這裏y是因變量,x是自變量。

在R,你應該像這樣的代碼:

fit <- lm(profits~Industry, data=salary) 
summary(fit) 

如果你想要做的多元迴歸,

fit <- lm(profits~Industry+tenure+age, data=salary) 
summary(fit) 

彙總(FIT)會給你的模型與p輸出值,迴歸係數,殘差標準誤差和許多其他事情。

對於做方差分析,你應該做的:

anova(fit)