我有关于二氧化碳水平及时的数据(时间为co2_mm_mlo$decimal_date
,二氧化碳水平为co2_mm_mlo$interpolated
)我使用了线性模型
model<-lm(co2_mm_mlo$interpolated ~ co2_mm_mlo$decimal_date
)
然后将时间序列和模型绘制在一起。
现在我想用月份(存储在co2_mm_mlo$months
中)绘制模型的残差
plot(co2_mm_mlo$months,resid(model))
但由于一些缺失的值,我得到了很多好的价值和七个异常值。
如何忽略这些值以获得正常的白噪点云?
我应该在某处使用na.action = na.pass吗?
更新:数据来自我必须下载的text file,我已将变量重命名为date
month
decimal date
average
等。我使用File> import Dataset> From Text(base)从文件中导入数据...
也许根据价值过滤掉它们?我没有您的数据 - 在您的问题中使用代码+数据+错误等发布可重现的示例是有帮助的 - 所以我在下面编写了一个示例。
在这里,我创建一个数据框,添加一些狡猾的点,拟合线性模型,然后查看残差。基于此,我过滤那些大于100的残差并重新绘制。
# Set RNG seed
set.seed(42)
# Create dummy data frame
df <- data.frame(time = seq(1960, 2010, by = 0.01))
df$value <- 1:nrow(df) + rnorm(nrow(df), 0, 10)
# Look at data
plot(df)
# Add a few dodgy points
df[sample(1:nrow(df), 5), "value"] <- runif(5, 100, 1000)
# Run linear regression
fit <- lm(value ~ time, data = df)
# Plot residuals to identify outliers
plot(df$time, resid(fit))
# Filtering index
ind_filt <- abs(resid(fit)) < 100
# Filtered results
plot(df$time[ind_filt], resid(fit)[ind_filt])
由reprex package创建于2019-03-07(v0.2.1)