double[] x = { 2, 4, 5, 7, 8, 10 }; // 第一组数据
            double[] y = { 5, 7, 9, 11, 13, 15 }; // 第二组数据

            double sum_x = 0, sum_y = 0, sum_xy = 0, sum_xx = 0;

            for (int i = 0; i < x.Length; i++)
            {
                sum_x += x[i];
                sum_y += y[i];
                sum_xy += x[i] * y[i];
                sum_xx += x[i] * x[i];
            }

            double slope = (x.Length * sum_xy - sum_x * sum_y) / (x.Length * sum_xx - sum_x * sum_x);
            double intercept = (sum_y - slope * sum_x) / x.Length;

            // 计算R-squared
            double y_mean = sum_y / y.Length;
            double ss_tot = 0, ss_res = 0;
            for (int i = 0; i < x.Length; i++)
            {
                double y_pred = slope * x[i] + intercept;
                ss_tot += (y[i] - y_mean) * (y[i] - y_mean);
                ss_res += (y[i] - y_pred) * (y[i] - y_pred);
            }
            double r_squared = 1 - ss_res / ss_tot;

            Console.WriteLine("斜率: " + slope);
            Console.WriteLine("截距: " + intercept);
            Console.WriteLine("R-squared: " + r_squared);

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐