You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将Excel的LINEST函数转换为C#:斜率标准误差计算难题

实现Excel LINEST函数的斜率标准误差(C# + Math.Net Numerics)

单变量场景(对应Excel单自变量的LINEST)

如果你的known_xs是单个自变量,直接用Math.Net的SimpleRegression类,它自带的StandardErrorSlope属性正好对应Excel公式INDEX(LINEST(known_ys,known_xs,TRUE,TRUE),2,1)的结果:

using MathNet.Numerics.Statistics;

// 示例数据
double[] knownYs = { 1.2, 2.1, 3.3, 4.0, 5.2 };
double[] knownXs = { 2, 4, 6, 8, 10 };

// 初始化回归模型并添加数据
var regression = new SimpleRegression();
for (int i = 0; i < knownYs.Length; i++)
{
    regression.Add(knownXs[i], knownYs[i]);
}

// 获取斜率的标准误差,即Excel目标值
double slopeStdError = regression.StandardErrorSlope;

多变量场景(对应Excel多自变量的LINEST)

如果是多个自变量,需要通过计算回归的方差-协方差矩阵来提取对应斜率的标准误差:

using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.Statistics;

// 示例多自变量数据
double[] knownYs = { 1.2, 2.1, 3.3, 4.0, 5.2 };
double[][] knownXs = {
    new double[] { 2, 4, 6, 8, 10 }, // 第一个自变量
    new double[] { 0.5, 1.0, 1.5, 2.0, 2.5 } // 第二个自变量
};

// 构造设计矩阵X:第一列为截距项(全1),后续列对应各个自变量
var X = Matrix<double>.Build.Dense(knownYs.Length, knownXs.Length + 1);
for (int row = 0; row < knownYs.Length; row++)
{
    X[row, 0] = 1; // 截距项
    for (int col = 0; col < knownXs.Length; col++)
    {
        X[row, col + 1] = knownXs[col][row];
    }
}
var y = Vector<double>.Build.Dense(knownYs);

// 计算回归结果
var (coefficients, residuals) = MultipleRegression.NormalEquations(X, y);

// 计算均方误差(MSE)
int sampleCount = X.RowCount;
int parameterCount = X.ColumnCount;
double mse = residuals.DotProduct(residuals) / (sampleCount - parameterCount);

// 计算(X^T X)的逆矩阵,再乘以MSE得到方差-协方差矩阵
var xtxInverse = X.TransposeThisAndMultiply(X).Inverse();
var covarianceMatrix = xtxInverse.Multiply(mse);

// 第一个自变量的斜率标准误差(对应Excel INDEX(LINEST(...),2,1))
// 注:系数数组索引0是截距,索引1对应第一个自变量,协方差矩阵[1,1]元素的平方根即为标准误差
double firstSlopeStdError = Math.Sqrt(covarianceMatrix[1, 1]);

内容的提问来源于stack exchange,提问作者Duffp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:45:42