我有两个数据集,我使用 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。如果你想要 ab 的RMSE:
    rmse = sqrt(mean((dat$a - dat$b)^2))
    

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

    10-12 17:31
    查看更多