绘制模型残差并忽略R中的缺失值以获得适当的白噪声点云

问题描述 投票:0回答:1

我有关于二氧化碳水平及时的数据(时间为co2_mm_mlo$decimal_date,二氧化碳水平为co2_mm_mlo$interpolated)我使用了线性模型

model<-lm(co2_mm_mlo$interpolated ~ co2_mm_mlo$decimal_date

然后将时间序列和模型绘制在一起。

R plot

现在我想用月份(存储在co2_mm_mlo$months中)绘制模型的残差

plot(co2_mm_mlo$months,resid(model))

但由于一些缺失的值,我得到了很多好的价值和七个异常值。

Residuals

如何忽略这些值以获得正常的白噪点云?

我应该在某处使用na.action = na.pass吗?

更新:数据来自我必须下载的text file,我已将变量重命名为date month decimal date average等。我使用File> import Dataset> From Text(base)从文件中导入数据...

r linear-regression
1个回答
1
投票

也许根据价值过滤掉它们?我没有您的数据 - 在您的问题中使用代码+数据+错误等发布可重现的示例是有帮助的 - 所以我在下面编写了一个示例。

在这里,我创建一个数据框,添加一些狡猾的点,拟合线性模型,然后查看残差。基于此,我过滤那些大于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)

© www.soinside.com 2019 - 2024. All rights reserved.