我有两个数据集,我使用 R 的 lm
命令绘制它们。
下面的第一个图不以红线为中心。
但是右边的第二张图以线为中心。
我的问题是:
我用来绘制数据的代码很简单:
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 分数绘图:
我正在寻找一个分数,根据以预测线为中心的数据,显示右图优于左图。
最佳答案
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。如果你想要 a
和 b
的RMSE:rmse = sqrt(mean((dat$a - dat$b)^2))
关于r - LM中数据*居中*到预测线的程度的衡量标准是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14580644/