Excel 给出奇怪的 R 平方计算?
Excel gives weird R square calculations?
这真的很奇怪。我用 Excel 以两种不同的方式计算 R^2 值,结果差异很大。为什么?
1) 首先,我使用Excel 通过图形进行线性回归,并使用"Add Trendline..." 鼠标右键功能指定截距= 0。R 平方值显示-3.253。回归方程为 Y = -0.1321 * X
2) 然后我使用 Excel 通过 LINEST 函数进行线性回归。我突出显示 5x2 行,并在左上角的单元格中键入“=LINEST([Y 向量];[X 向量],假,真)。假表示截距为 0,真表示 Excel 应该打印额外的回归统计信息。然后我按 CTRL + SHIFT + Enter。这将显示额外的统计信息,例如左侧第三个单元格中的 R^2 值。结果为 0.11166。回归方程为 Y = -0.1321 * X
我的问题是;我在用图表计算 R^2 时做错了什么? Python和statsmodels.api确认R^2为0.11166,回归方程为Y = -0.1321 * X.
Y =
0.0291970802919708
0.141801551718973
0.145668034655723
0.0691229530946433
0.0431577486597426
0.133618351873374
X =
-0.35551988
-0.20577599
0.10780785
-0.25028796
-0.42762184
0.02442197
你的计算是正确的。当截距为 0 时,散点图不会 return 校正 R^2。这是 R^2
的公式
其中
如果使用标准回归模型,则使用y的平均值作为y̅。但是当您假设截距等于 0 时,您需要将 y̅ 设置为零。如果你使用 y 的平均值而不是零,你会得到 R^2 = -3.252767.
你可以在这里看到计算。 SStot 错误列使用 y 的平均值作为 y̅。那么 R^2 值等于 -3.252767。如果你使用 0(就像我在 SStot 右栏中所做的那样),那么你会得到 0.111.
这是微软在这里描述的一个老bug:https://support.microsoft.com/en-us/help/829249/you-will-receive-an-incorrect-r-squared-value-in-the-chart-tool-in-excel-2003
您需要使用 LINEST 函数来获得正确的 R^2 值。
我和我的工程师同事们刚刚被卷入其中。根据这个讨论和我们观察到的,R^2 总是错误的,除非 Excel 计算出最佳的 y 轴截距。任何其他 y 截距(强制通过零或用户定义)都是错误的。
这真的很奇怪。我用 Excel 以两种不同的方式计算 R^2 值,结果差异很大。为什么?
1) 首先,我使用Excel 通过图形进行线性回归,并使用"Add Trendline..." 鼠标右键功能指定截距= 0。R 平方值显示-3.253。回归方程为 Y = -0.1321 * X
2) 然后我使用 Excel 通过 LINEST 函数进行线性回归。我突出显示 5x2 行,并在左上角的单元格中键入“=LINEST([Y 向量];[X 向量],假,真)。假表示截距为 0,真表示 Excel 应该打印额外的回归统计信息。然后我按 CTRL + SHIFT + Enter。这将显示额外的统计信息,例如左侧第三个单元格中的 R^2 值。结果为 0.11166。回归方程为 Y = -0.1321 * X
我的问题是;我在用图表计算 R^2 时做错了什么? Python和statsmodels.api确认R^2为0.11166,回归方程为Y = -0.1321 * X.
Y =
0.0291970802919708
0.141801551718973
0.145668034655723
0.0691229530946433
0.0431577486597426
0.133618351873374
X =
-0.35551988
-0.20577599
0.10780785
-0.25028796
-0.42762184
0.02442197
你的计算是正确的。当截距为 0 时,散点图不会 return 校正 R^2。这是 R^2
的公式其中
如果使用标准回归模型,则使用y的平均值作为y̅。但是当您假设截距等于 0 时,您需要将 y̅ 设置为零。如果你使用 y 的平均值而不是零,你会得到 R^2 = -3.252767.
你可以在这里看到计算。 SStot 错误列使用 y 的平均值作为 y̅。那么 R^2 值等于 -3.252767。如果你使用 0(就像我在 SStot 右栏中所做的那样),那么你会得到 0.111.
这是微软在这里描述的一个老bug:https://support.microsoft.com/en-us/help/829249/you-will-receive-an-incorrect-r-squared-value-in-the-chart-tool-in-excel-2003 您需要使用 LINEST 函数来获得正确的 R^2 值。
我和我的工程师同事们刚刚被卷入其中。根据这个讨论和我们观察到的,R^2 总是错误的,除非 Excel 计算出最佳的 y 轴截距。任何其他 y 截距(强制通过零或用户定义)都是错误的。