【问题标题】:matlab: linear regression and different error weightmatlab:线性回归和不同的误差权重
【发布时间】:2013-10-16 11:06:50
【问题描述】:

我有模特

y = a1 * x1 + a2 * x2 + ... + a20 * x20

y 在 [-100000, 100000] 范围内。 对我来说,在相对误差最小的地方进行回归是很重要的。绝对误差不太重要。

我应该使用什么 matlab 函数? 我的样本应该有多大?

计算R_adj 的最简单方法是什么? R_adj 是评估您提出的模型的好变量还是模型应该使用其他东西?

【问题讨论】:

  • 首先你需要找出最适合你的问题的回归方法,这是一个理论数学问题。一旦你这样做了,我很确定我们可以找到一个函数。我的第一个想法是使用“加权最小二乘法”,但我不确定,请检查一下。然后有一个matlab function
  • 什么是R_adj?你怎么定义它?给定模型a0...a20,你能写出错误的数学公式吗?
  • R_adj 是“确定系数”。它对模型评估很有用。

标签: matlab linear-regression least-squares model-fitting


【解决方案1】:

您是否考虑过通过相应的 y 值来规范化您的 x 点?
除了将x_i1x_i2、...、x_i20 拟合到y_i 之外,您可能需要考虑拟合x_i1/y_ix_i1/y_i、...@987654330 @到1

如果您决定这样做,您需要构造一个大小为n-by-20 的矩阵Xi-th 行是i-th 样本)。那么:

>> n = size(x,1); % number of samples
>> nX = bsxfun( @rdivide, X, y); % divide each sample i with corresponding y_i
>> a = nX \ ones(n,1); % solution using normalization

您可以将此解决方案与非标准化最小二乘法进行比较

>> non_a = X \ y;

【讨论】:

  • @user2861714 您的问题措辞非常含糊-尚不清楚您到底要做什么。请以严格的方式定义您的目标函数(数学上),然后我们可以看到如何以编程/算法的方式解决它。
  • 我只是建立我的模型,现在很粗糙,我想为我的目标找到一个合适的模型。我认为划分模型已经足够好了。
猜你喜欢
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
  • 2020-07-04
  • 2013-10-25
  • 2019-03-09
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多