r - 衡量数据*居中*到 LM 中的预测线的程度的衡量标准是什么

标签 r statistics lm

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

Data1 Data2

我的问题是:

  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;

更新 绘制 RMSE 分数:

F1g1 enter image description here

我正在寻找一个分数,根据以预测线为中心的数据,右图比左图好。

最佳答案

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|)"]

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

rmse = sqrt(mean((dat$a - predict(lm_obj))^2))

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

rmse = sqrt(mean((dat$a - dat$b)^2))

关于r - 衡量数据*居中*到 LM 中的预测线的程度的衡量标准是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14580644/

相关文章:

R 使用 for 循环的结果重复更新数据帧

r - 使用 kable 对具有相同名称的子列的列进行分组

java - 计算列表中每个值的百分位数

python - 如何在 statsmodels 中使用 gamma GLM 的尺度和形状参数

r - 将 lm 输出列表转换为数据帧

r - lm(offense$R ~ offence$OBP) 和 lm(R ~ OBP) 有什么区别?

r - 无需迭代即可汇总多个变量

如果满足标准 R,则每个因子仅保留一行

javascript - AWStats 还是谷歌分析?哪个更准确?

r - 如何用变量调用 lm?