1. В течении недели с понедельника по воскресенье торговая точка производила замеры среднесуточной температуры воздуха $t$ и количества потребляемого мороженного в литрах на человека $ic$. Предполагается следующая зависимость $ic = \theta_1+\theta_2t+\theta_3t^2w$, где $w = 1$, если день выходной, и $w = 0$ иначе. Получились следующие значения
пн | вт | ср | чт | пт | сб | вс | пн | вт | ср | |
---|---|---|---|---|---|---|---|---|---|---|
$t$ | 10 | 13 | 17 | 20 | 19 | 21 | 14 | 8 | 5 | 10 |
$ic$ | 1 | 1.2 | 1.5 | 1.4 | 1.6 | 2.1 | 1.7 | 0.9 | 0.7 | 1.1 |
Найдите оценку $\theta = (\theta_1, \theta_2, \theta_3)$ методом наименьших квадратов, значение RSS и предсказание отклика при температурах 15 и 40 в будний и выходной дни. Нарисуйте графики зависимости $ic$ от $t$ для будних и выходных дней. Задание можно выполнить в Python.
Оценка методом наименьших квадратов
In [1]:
import numpy
In [13]:
T = numpy.array([10, 13, 17, 20, 19, 21, 14, 8, 5, 10])
wT = T * [0, 0, 0, 0, 0, 1, 1, 0, 0, 0]
X = numpy.zeros((10, 3))
X[:, 0] = numpy.ones(10).T
X[:, 1] = T.T
X[:, 2] = (wT ** 2).T
Y = numpy.array([1, 1.2, 1.5, 1.4, 1.6, 2.1, 1.7, 0.9, 0.7, 1.1]).T
In [17]:
Theta = numpy.linalg.inv(X.T @ X) @ X.T @ Y
print('Theta =', Theta)
Вычисление RSS
In [32]:
RSS = (Y - X @ Theta).T @ (Y - X @ Theta)
print(RSS)
Вычисление отклика
In [36]:
Xa = numpy.array([1, 15, 225])
wYa = Xa.T @ Theta
print('t = 15, w = 1:\t', wYa)
In [37]:
Xb = numpy.array([1, 15, 0])
wYb = Xb.T @ Theta
print('t = 15, w = 0:\t', wYb)
In [38]:
Xc = numpy.array([1, 40, 1600])
wYc = Xc.T @ Theta
print('t = 40, w = 1:\t', wYc)
In [39]:
Xd = numpy.array([1, 40, 0])
wYd = Xd.T @ Theta
print('t = 40, w = 0:\t', wYd)