【发布时间】:2017-02-24 20:04:41
【问题描述】:
我在 R 中有一个散点图,x 轴为时间,y 轴为成本。我想找到一条恒定线(y =?),它将最小化从所有这些点到恒定线的方差之和。数据不太重要(例如:mtcars 数据),但如果您想引用某些内容,可以使用下面的代码。
#mtcars
plot(mtcars$wt, mtcars$disp)
i=1
j=1
sum_df <- data.frame()
for(i in as.integer(min(mtcars$disp)):as.integer(max(mtcars$disp))){
sum_var = list()
for(j in 1:length(mtcars$disp)){
sum_var[[j]] <- abs(i-mtcars$disp[j])
}
sum_var = do.call(rbind, sum_var)
sum_var <- sum(sum_var[,1])
new_sum <- rbind(sum_var,sum_df)
sum_df <- new_sum
}
row.names(sum_df)=as.integer(min(mtcars$disp)):as.integer(max(mtcars$disp))
sum_df$best_line <- ifelse(min(sum_df[,1])==sum_df[,1], "Best Line", "")
colnames(sum_df) <- c("Disp", "Abs Sum of Var")
我知道我可以遍历不同的常数线并找到每个常数的总和,然后决定哪条线最适合。但是,我有很多数据点,并且已经在循环浏览很多图表。除了蛮力方法之外,还有更好的编码方法吗?
【问题讨论】:
-
你只是想按照 .... lm(mtcars$disp~1) ... 或 ... lm(mtcars$disp~mtcars$wt) 的方式做一些事情跨度>
-
所以,我正在寻找“最佳”的恒定线。这可能不一定是平均值。因此,我试图找到类似 lm(mtcars$disp~1) 的值,但该值(230.7,也是平均值)并不是使该数据集的方差总和最小化的线。
-
“恒定线”是什么意思?只是一条水平线?那么
x值与结果有什么关系呢?为什么你不认为这是卑鄙的?总和或方差到底是什么意思?这是否仅仅意味着观测值和常数 y 之间的 y 绝对差?你没有平方距离或任何东西(这更常见)? -
对不起,我以为我在原始帖子中提供了更多信息。是的,我想要一条像 y=3 这样的水平线。我希望这条线最小化每个观察值与水平线之间的距离,所以 x 值对我来说真的无关紧要。我被要求通过 y 观察值和恒定 y 线之间的绝对差异来做到这一点。这就是为什么我说这不是平均值的原因,否则是的,如果我对距离进行平方,那将是平均值。
标签: r statistics