如何解决如何计算指数和幂趋势线类型的 R 平方值
尝试使用以下公式计算指数和幂趋势线类型的 R 平方值。
R² = ∑(ȳ - ŷ)² / ∑(y - ȳ)²
这里 ȳ 是 y 的平均值,ŷ 是回归方程,这里 ŷ 为
指数为 y = ae^xb
,幂为 y = ax^b
这里 a = 截距,b = 斜率。
我已经实现了以下代码片段逻辑来实现 R 平方值
List<int> xValue = <int>[1,2,3,4,5];
List<int> yValue = <int>[2,5,5];
int sumOfX = 0,sumOfY = 0,sumOfXY = 0,sumOfXSquare = 0,sumOfYSquare = 0;
double slope = 0.5204,intercept = 2.3133;
for(int i = 0; i < xValue.length; i++){
sumOfX += xValue[i];
sumOfY += yValue[i];
sumOfXY += xValue[i] * yValue[i];
sumOfXSquare += math.pow(xValue[i],2).toInt();
sumOfYSquare += math.pow(yValue[i],2).toInt();
}
double yMean = sumOfY/yValue.length;
// value of ∑(y - ȳ)²
double ssTol = 0;
for(int j = 0; j < yValue.length; j++){
ssTol += math.pow((yValue[j] - yMean),2);
}
// value of ∑(ȳ - ŷ)²
double ssReg = 0;
for(int k = 0; k < yValue.length; k++){
ssReg += math.pow(((intercept * math.pow(xValue[k],slope)) -yMean),2).toDouble();
}
print(ssReg/ssTol);
我想要如下所示的 R 平方值。
有人可以帮我解决这个问题吗?
解决方法
您可以通过Bas Verlaat
建议的方法从图表中提取R2如果你想自己计算,你可以使用以下任一公式(但与图表中提供的有所不同)
=CORREL(A2:A6,C2:C6)^2
=RSQ(A2:A6,C2:C6)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。