📜  R编程中的R平方回归分析

📅  最后修改于: 2022-05-13 01:55:47.399000             🧑  作者: Mango

R编程中的R平方回归分析

为了通过其他变量(自变量)预测一个变量的值(因变量),使用了一些称为回归模型的模型。为了进一步计算该预测的准确性,使用了另一种数学工具,即 R 平方回归分析或确定系数。 R-squared 的值介于 0 和 1 之间。如果决定系数为 1(或 100%),则表示因变量的预测已经完美准确。

R-square 是残差平方和 (SS res ) 与总平方和 (SS tot ) 的比较。残差平方和通过数据点和最佳拟合线之间的垂直距离的平方和来计算。

最佳拟合模型

总平方和是通过数据点与平均线之间的垂直距离的平方和来计算的。

平均拟合模型1

R平方回归分析公式

R平方回归分析的公式如下,

r^2 =  \frac{\sum  ( \widehat{y_i} -  \bar  y)^2}{\sum  (y_i - \bar  y )^2}

求 R 中的确定系数 (R)

在 R 语言中很容易找到确定系数(R)。要遵循的步骤是:

  • 在 R 中创建一个数据框。
  • 计算线性回归模型并将其保存在新变量中。
  • 如此计算的新变量的汇总具有需要提取的决定系数或 R 平方参数。
# Creating a data frame of exam marks
exam <- data.frame(name = c("ravi", "shaily", 
                            "arsh", "monu"),
                   math = c(87, 98, 67, 90),
                   estimated = c(65, 87, 56, 100))
  
# Printing data frame
exam
  
# Calculating the linear regression model
model = lm(math~estimated, data = exam)
  
# Extracting R-squared parameter from summary
summary(model)$r.squared

输出:

name   math   estimated
1   ravi   87        65
2 shaily   98        87
3   arsh   67        56
4   monu   90       100

[1] 0.5672797
# Creating a data frame of exam marks
exam <- data.frame(name = c("ravi", "shaily",
                             "arsh", "monu"), 
                   math = c(87, 98, 67, 90),
                   estimated = c(87, 98, 67, 90))
  
# Printing data frame
exam
  
# Calculating the linear regression model
model = lm(math~estimated, data = exam)
  
# Extracting R-squared parameter from summary
summary(model)$r.squared

输出:

name   math   estimated
1   ravi   87        87
2 shaily   98        98
3   arsh   67        67
4   monu   90       90

[1] 1

使用 R-square 方法的局限性

  • r-square 的值总是随着新变量添加到模型中而增加或保持不变,而不会检测到这个新添加的变量的重要性(即 r-square 的值不会随着向模型中添加新属性而减少)。因此,随着 r 平方值的增加,也可以将非显着属性添加到模型中。
  • 这是因为 SS tot始终是常数,回归模型试图通过找到与这个新属性的一些相关性来降低 SS res的值,因此 r-square 的整体值增加,这可能导致回归模型不佳。