繁体   English   中英

多个线性回归手柄NA

[英]Multiple Linear Regression handle NA

我是统计学界的新手,因此一些简单的建议将被认可...

我在R中有一个数据框

加尼山

  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)

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

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

如果您没有先正确地进行数据预处理,则会发生这种情况。 您的“银行”列似乎为空(NaN),您应该考虑如何处理(我不确定这是整个文件还是“银行”列中有其他非空值)。 通常,在开始使用数据之前,您需要用一些数值替换列中的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)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM