2016-12-18 187 views
0

我是新來統計世界,所以一些簡單的建議,將承認......多元線性迴歸處理NA

我有R中

Ganeeshan

數據幀
Year General OBC  SC ST VI VacancySC VacancyGen VacancyOBC Banks Participated VacancyST VacancyHI 
1 2016 52.5 52.5 41.75 31.50 37.5  1338  4500  2319     20  665  154 
2 2015 76.0 76.0 50.00 47.75 36.0  1965  6146  3454     23  1050  270 
3 2014 82.0 80.0 70.00 56.00 38.0  2496  8212  4482     23  1531  458 
4 2013 61.0 60.0 50.00 26.00 27.0  3208  10846  5799     21  1827  458 
5 2012 135.0 135.0 127.00 106.00 127.0  3409  11058  6062     21  1886  436 

    VacancyOC VacancyVI 
1  113  102 
2  358  242 
3  323  321 
4  208  390 
5  257  345 

並且想要建立一個將因變量作爲「常規」的線性模型,我使用以下命令

GaneeshanModel1 <- lm(General ~ ., data = Ganeeshan) 

我得到的不是值 「NA」,在總結模型

電話:

lm(formula = General ~ ., data = Ganeeshan) 

殘差: ALL 5個殘差0:無殘留的自由度!

係數:(9不是因爲奇點的定義)

     Estimate Std. Error t value Pr(>|t|) 
(Intercept)   6566.6562   NA  NA  NA 
Year     -3.2497   NA  NA  NA 
OBC      0.5175   NA  NA  NA 
SC      -0.2167   NA  NA  NA 
ST      0.6078   NA  NA  NA 
VI       NA   NA  NA  NA 
VacancySC     NA   NA  NA  NA 
VacancyGen     NA   NA  NA  NA 
VacancyOBC     NA   NA  NA  NA 
`Banks Participated`  NA   NA  NA  NA 
VacancyST     NA   NA  NA  NA 
VacancyHI     NA   NA  NA  NA 
VacancyOC     NA   NA  NA  NA 
VacancyVI     NA   NA  NA  NA 

爲什麼我沒有得到任何數據在這裏

+0

也許你可以包含一個子集(使用dput())你的數據,足以重現錯誤 – MLavoie

回答

0

如果你不這樣做數據預處理先正確就會出現這種情況。看起來你的'Bank'列是空的(NaN),你應該考慮如何處理它(我不確定這是整個文件還是在'Bank'列中有其他非空值)。一般來說,在開始使用數據之前,需要用一些數值(通常是列的平均值或中值)替換列中的NaN(空)值。在R,爲您列「銀行」(如果它有其他非空值)例如,你可以做這樣的:

dataset$Banks = ifelse(is.na(dataset$Banks), 
       ave(dataset$Banks, FUN = function(x) mean(x, na.rm = TRUE)), 
       dataset$Banks) 

否則,根據您的數據集,如果你的一些價值觀是由一個週期(或任何其他非數值)表示的可以導入將CSV作爲

dataset = read.csv("data.csv", header = TRUE, c(" ", ".", "NA")) 

改變「時段」和「空」值爲NaN(NA),之後使用上面的線來代替NA(NaN)與平均/中位數/其他。