使用 Octave 的简单多元回归

机器算法验证 回归 多元分析 数据集 多重回归
2022-03-22 11:38:42

在过去的 2 个月里,我一直在尝试进行任何类型的多元回归,但运气不佳。我听说 Octave 对于这类任务来说更简单、更直观,所以我想试试看。

这是我正在使用的数据类型的简化版本:

day = [4, 5, 6, 8]
temp = [97, 100, 98, 80]
humidity [62, 46, 50, 55]

我想使用这些数据并推断第 7 天和第 9 天的温度。

是否有任何教程清楚而简洁地解释如何使用 Octave 做到这一点?或者也许这里有人可以告诉我使用哪些 Octave 命令来执行此操作?

您的帮助将不胜感激。

1个回答

我不清楚您希望适合哪种类型的模型。有人说“多元回归”是指有多个变量。例如,您可能想要预测当天的湿度和温度。其他人用它来表示一个结果,但有多个预测因素。例如,您可以根据白天和湿度来预测温度。这是一个指导性解决方案,展示了如何从多元回归模型中获取参数估计值、标准误差和新预测值,该模型预测结果、温度、白天和湿度(以及常数项)。

# your original data
day = [4, 5, 6, 8]
temp = [97, 100, 98, 80]
humidity = [62, 46, 50, 55]

# create the design matrix
# intercept (1s), day and humidity as predictors
X = [1, 1, 1, 1; day; humidity]'
# linear parameter estimates
b = inv(X'*X)*X'*temp'
# residuals
R = temp' - (X * b)
# residual variance
v = (R'*R)/(4 - 3)
# variance covariance matrix of parameters
Sigma = v * inv(X'*X)
# standard errors of parameters (b vector)
se = sqrt(diag(Sigma))

# new data for prediction, constant
# day is 7 and 9, humidity is 80
newdata = [1, 7, 80; 1, 9, 80]
# predicted values for day 7 and 9
pred = newdata * b

这使:

pred =
   70.712
   60.549

在实践中,这就是重新创建轮子,但由于您是 octave 的新手(也许是回归?)我认为这可能会有所帮助。这是使用内置函数直接获取系数的简单方法。

ols(temp', X)

这将b来自上面,您可以乘以新数据(在您的情况下为第 7 天和第 9 天)以获得预测(“预测”)值。

ans =
   156.18467
    -5.08122
    -0.62381