【发布时间】:2018-01-03 12:34:54
【问题描述】:
发生这种情况的可能原因是什么?它总是在值 10 之后发生。
应用回归前后感兴趣区域周围的数据集子集:
这是我用来生成图表的ggplot2 调用。使用的平滑跨度为 0.05。
dat <- read.csv("before_loess.csv", stringsAsFactors = FALSE)
smoothed.data <- applyLoessSmooth(dat, 0.05) # dat is the dataset before being smoothed
scan.plot.data <- melt(smoothed.data, id.vars = "sample.diameters", variable.name = 'series')
scan.plot <- ggplot(data = scan.plot.data, aes(sample.diameters, value)) +
geom_line(aes(colour = series)) +
xlab("Diameters (nm)") +
ylab("Concentration (dN#/cm^2)") +
theme(plot.title = element_text(hjust = 0.5))
用于应用黄土过滤器的函数:
applyLoessSmooth <- function(raw.data, smoothing.span) {
raw.data <- raw.data[complete.cases(raw.data),]
## response
vars <- colnames(raw.data)
## covariate
id <- 1:nrow(raw.data)
## define a loess filter function (fitting loess regression line)
loess.filter <- function (x, given.data, span) loess(formula = as.formula(paste(x, "id", sep = "~")),
data = given.data,
degree = 1,
span = span)$fitted
## apply filter column-by-column
loess.graph.data <- as.data.frame(lapply(vars, loess.filter, given.data = raw.data, span = smoothing.span),
col.names = colnames(raw.data))
sample.rows <- length(loess.graph.data[1])
loess.graph.data <- loess.graph.data %>% mutate("sample.diameters" = raw.data$sample.diameters[1:nrow(raw.data)])
}
【问题讨论】:
-
你之前和之后的数据是完全一致的,所以根本没有平滑或变换...
-
对不起!我复制粘贴了错误的数据集。请再次检查。
-
我还添加了一个指向 .csv 文件的链接,以获得可用于重现图表的可行数据集。
-
span使用什么值? -
0.05。我会把它添加到帖子中。
标签: r ggplot2 regression loess