//获取平均值
public double getAverage(double[] arr) {
double sum = 0;
int number = arr.length;
for (int i = 0; i < number; i++) {
sum += arr[i];
}
return sum / number;
}
//获取标准差
public double getStandardDevition(double[] arr) {
double sum = 0;
int number = arr.length;
double avgValue = getAverage(arr);//获取平均值
for (int i = 0; i < number; i++) {
sum += Math.pow((arr[i] - avgValue), 2);
}
return Math.sqrt((sum / (number - 1)));
}
//两个数组对应差的平方和
public double getSUMXMY2(double[] arrX, double[] arrY) {
double sum = 0;
int number = arrX.length >= arrY.length ? arrY.length : arrX.length;
for (int i = 0; i < number; i++) {
sum += Math.pow((arrX[i] - arrY[i]), 2);
}
return sum;
}
////slope 斜率
////公式:slope =∑((arrx(n) – arrx mean) * (arry(n) – arry mean))/ ∑((arrx(n) – arrx mean) ²)
//// arrx mean =∑(arrx(n)) /n arrx算术平均值
////arry mean =∑(arry(n)) /n arry算术平均值
public double getSlop(double[] y, double[] x) {
double slopeValue = 0;
double avgx = getAverage(x);
double avgy = getAverage(y);
int number = y.length >= x.length ? x.length : y.length;
//存∑((arrx(n) – arrx mean) * (arry(n) – arry mean))值
double sum1 = 0;
//存∑((arrx(n) – arrx mean) ²值
double sum2 = 0;
for (int i = 0; i < number; i++) {
sum1 += ((x[i] - avgx)*(y[i] - avgy));
sum2 += Math.pow((x[i] - avgx), 2);
}
slopeValue = sum1 / sum2;
return slopeValue;
}
JAVA 标准差,斜率,平方和
猜你喜欢
转载自lovesave.iteye.com/blog/2381407
今日推荐
周排行