什么是数据*在LM中与预测线对中的程度

nev*_*int 3 statistics r lm

我有两个数据集,我使用R的lm命令绘制.下面的第一个图不是以红线为中心.但是右边的第二张图是以线为中心的.

数据1 数据2

我的问题是:

  1. 数据以线为中心的衡量标准是什么?
  2. 如何从数据结构中提取?

我用来绘制数据的代码很简单:

 data <-read.table("myfile.txt")
 dat1x <- data$x1
 dat1y <- data$y1


 # plot left figure
 dat1_lm <- lm(dat1x ~ dat1y)
 plot(dat1x ~ dat1y)
 abline(coef(dat1_lm),col="red")
 dat1_lm.r2  <- summary(dat1_lm)$adj.r.squared;

 # repeat the the same for right figure
 dat2x <- data$x2
 dat2y <- data$y2
 dat2_lm <- lm(dat2x ~ dat2y)
 plot(dat2x ~ dat2y)
 abline(coef(dat2_lm),col="red")
 dat2_lm.r2  <- summary(dat2_lm)$adj.r.squared;
Run Code Online (Sandbox Code Playgroud)

使用RMSE分数更新图表:

F1g1 在此输入图像描述

我正在寻找一个分数,显示正确的数字比左边更好,基于数据居中的预测线.

Pau*_*tra 5

R平方给出了线的拟合优度,即由线性模型解释的数据集中的变化百分比.解释R平方的另一种方法是模型比平均模型表现得更好.p值给出拟合的显着性,即线性模型的系数显着不同于零.

要提取这些值:

dat = data.frame(a = runif(100), b = runif(100))
lm_obj = lm(a~b, dat)
rsq = summary(lm_obj)[["r.squared"]]
p_value = summary(lm_obj)[["coefficients"]]["b","Pr(>|t|)"]
Run Code Online (Sandbox Code Playgroud)

或者,您可以计算观测值与线性模型结果之间的RMSE:

rmse = sqrt(mean((dat$a - predict(lm_obj))^2))
Run Code Online (Sandbox Code Playgroud)

请注意,这是RMSE a和线性模型.如果你想要RMSE ab:

rmse = sqrt(mean((dat$a - dat$b)^2))
Run Code Online (Sandbox Code Playgroud)