Прогноз влажности по температуре

тема: Метрики регрессии и МНК · уровень: средний

Условие

Погодная станция сохраняет измерения температуры воздуха и относительной влажности. В некоторых строках влажность не была записана: вместо числа указано NA.

По измерениям с известной влажностью требуется построить линейную модель зависимости влажности от температуры: y = a + b*x, где x — температура, а y — влажность. Затем необходимо вычислить прогнозы для температур из запроса.

Пусть использованы только строки, в которых влажность не равна NA. Для них — средняя температура, а ȳ — средняя влажность. Коэффициенты модели определяются формулами:

b = Σ((x - x̄) * (y - ȳ)) / Σ((x - x̄)^2),

a = ȳ - b * x̄.

Если знаменатель в формуле для b равен нулю, следует считать b = 0, а a = ȳ. При равенстве значений температуры строки считаются разными измерениями, и каждая такая строка учитывается в формулах отдельно.

Формат ввода

В первой строке записаны два целых числа n и q — число строк измерений и число температур в запросе.

В следующих n строках записаны температура x и влажность y. Влажность задаётся целым числом или строкой NA.

В последней строке записаны q целых температур, для которых требуется получить прогноз.

Формат вывода

Выведите q чисел через пробел: прогнозы влажности для температур из запроса в том же порядке.

Каждый прогноз выведите с двумя знаками после точки. Округление выполняется до ближайшего значения с двумя знаками после точки, а при ровно равных расстояниях — в сторону от нуля.

Ограничения

1 ≤ n ≤ 2000.

1 ≤ q ≤ 20.

Температура в измерении и в запросе — целое число от -50 до 50.

Влажность — целое число от 0 до 100 либо строка NA.

Хотя бы в одной строке измерений влажность известна.

Решить задачу с автопроверкой на Python →

Куда дальше