[英]Using lm() in R in data with many zeroes gives error
我是数据分析的新手,对于在R中使用lm()创建数据的线性回归模型有一些疑问。
我的数据如下所示:
testID userID timeSpentStudying testGrade
12345 007 10 90
09876 008 0 75
而我的模型:
model <- lm(formula = data$testGrade ~ timeSpentStudying, data = data)
我在来自RStudio的近60行数据中遇到以下错误(两次):
Warning messages:
1: In sqrt(crit * p * (1 - hh)/hh) : NaNs produced
2: In sqrt(crit * p * (1 - hh)/hh) : NaNs produced
我的问题是,问题是否与包含许多零值实例的数据有关,例如上面的“ timeSpentStudying”列下的数据? 如果是这样,我该如何处理? lm()是否应该能够处理零值,特别是如果这将使数据本身具有重要性的时候?
谢谢!
到目前为止,我无法复制它,例如:
dd <- data.frame(y=rnorm(1000),x=c(rep(0,990),1:10))
model <- lm(y~x, data = dd)
summary(model)
在R代码库中搜索错误中列出的代码并进行追溯,这表明相关行位于plot.lm
,该行用于绘制诊断信息,并且问题在于您以某种方式获得了大于1的杠杆率或您的数据点之一的“帽值”。 但是,我看不到您如何实现这一目标。 数据将使这一点更加清晰!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.