多元线性回归处理NA

时间:2016-12-18 10:08:41

标签: r linear-regression data-science

我是统计世界的新手,所以一些简单的建议将被承认......

我在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

并希望构建一个线性模型,将因变量作为" General",我使用以下命令

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

我得到&#34; NA&#34;而不是模型摘要中的值

呼叫:

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

残差:    所有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

为什么我这里没有得到任何数据

1 个答案:

答案 0 :(得分:0)

如果您没有先正确进行数据预处理,就会发生这种情况。看来你的银行&#39;列为空(NaN),您应该考虑如何处理它(我不确定这是整个文件还是您的&#39; Bank&#39;列中还有其他非空值)。通常,在开始使用数据之前,需要使用一些数值替换列中的NaN(空)值(通常是列的平均值或中值)。在R中,对于您的专栏&#39; Banks&#39; (如果它有其他非空值),例如你可以这样做:

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"))

改变期间&#39;并且&#39;空&#39;值为NaN(NA),然后使用上面的行将NA(NaN)替换为均值/中位数/其他值。