Tôi có 2 mảng có độ dài bằng nhau. Hàm sau cố gắng tính toán độ dốc bằng cách sử dụng các mảng này. Nó trả về mức trung bình của độ dốc giữa mỗi điểm. Đối với tập dữ liệu sau, tôi dường như nhận được các giá trị khác với Excel và Google Tài liệu.Tính độ dốc của một dãy giá trị
double[] x_values = { 1932, 1936, 1948, 1952, 1956, 1960, 1964, 1968,
1972, 1976, 1980 };
double[] y_values = { 197, 203, 198, 204, 212, 216, 218, 224, 223, 225,
236 };
public static double getSlope(double[] x_values, double[] y_values)
throws Exception {
if (x_values.length != y_values.length)
throw new Exception();
double slope = 0;
for (int i = 0; i < (x_values.length - 1); i++) {
double y_2 = y_values[i + 1];
double y_1 = y_values[i];
double delta_y = y_2 - y_1;
double x_2 = x_values[i + 1];
double x_1 = x_values[i];
double delta_x = x_2 - x_1;
slope += delta_y/delta_x;
}
System.out.println(x_values.length);
return slope/(x_values.length);
}
Output
Google: 0,755
getSlope(): 0,962121212121212
Excel: 0,7501
Xem ví dụ bằng số [ở đây] (http: // en .wikipedia.org/wiki/Simple_linear_regression) về tính toán. Điều này không quan trọng đối với mã. – karmanaut