[英]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.