Цена подержанного автомобиля, или Путь от корреляции к регрессии в среде Mathcad
Сначала о терминах заголовка раздела, которые, честно говоря, нужно было
описать в самом начале этой главы.
Определение
Корреляция — зависимость, не имеющая явно выраженной закономерности изменения
из-за невозможности точно учесть влияния множества одновременно меняющихся
факторов.
Определение
Регрессия — зависимость среднего значения какой-либо величины от некоторой
другой величины или от нескольких величин.
А теперь — суть проблемы.
Автору в Интернете (http://collab.mathsoft.com/read?8889,34) попалась на
глаза вот такая корреляция (см. табл. 4.] — стоимость старого автомобиля в
зависимости от его возраста и пробега) и просьба дать идею по нахождению
формулы, по которой можно будет сделать оценку стоимости автомобиля, т. е.
регрессии.
Примечание
В нашей таблице собраны, естественно, данные по автомобилям одной марки.
Кроме того, на стоимость подержанного автомобиля могут влиять и другие факторы:
режим хранения (гараж или улица), аварии и ремонты и др., но мы будем учитывать
только два основных— возраст и пробег: корреляция на то она и корреляция.
Таблица 4.1. Исходные данные для оценки стоимости автомобиля
Возраст (лет) |
Пробег (миль) |
Цена (US$) |
Возраст (лет) |
Пробег (миль) |
Цена (US$) |
Возраст (лет) |
Пробег (миль) |
Цена (US$) |
11.5 |
88 000 |
1195 |
13.5 |
120 000 |
495 |
7.5 |
41 000 |
3495 |
13.5 |
103 000 |
750 |
11.5 |
101 000 |
895 |
13.5 |
124 000 |
850 |
10.5 |
82 000 |
1295 |
3.5 |
39 000 |
4995 |
10.5 |
77 000 |
1595 |
10.5 |
65 000 |
1495 |
10.5 |
78 000 |
1295 |
6.5 |
56 000 |
3495 |
12.5 |
97 000 |
800 |
6.5 |
52 000 |
2695 |
12.5 |
83 000 |
895 |
10.5 |
70 000 |
1495 |
9.5 |
84 000 |
1995 |
9.5 |
67 000 |
2495 |
8.5 |
51 000 |
2295 |
4.5 |
39 000 |
3995 |
4.5 |
38 000 |
3990 |
10.5 |
80 000 |
1495 |
4.5 |
46 000 |
3675 |
6.5 |
43 000 |
3400 |
9.5 |
79 000 |
1995 |
12.5 |
92 000 |
795 |
13.5 |
92 000 |
795 |
6.5 |
57 000 |
2695 |
11.5 |
108 000 |
975 |
11.5 |
78 000 |
1295 |
Говоря "нормальным" языком интернет-собеседник просил дать формулу или
график, по которым можно было бы оценить стоимость старого (подержанного)
автомобиля по году его выпуска и показанию спидометра (километраж).
Чутье давнего собирателя компьютерных этюдов (а об этом "чутье" уже
упоминалось в разд. 3.6) подсказало автору, что данная задача может быть красиво
решена в среде Mathcad.
Как правило, регрессионный анализ (поиск регрессии) начинают с визуализации
табличных данных. Мы такой графический анализ задачи совместим с ее
решением.
На рис. 4.18 по табличным данным, хранящимся в матрице M, формируются три
вектора: Age (возраст) MileAge (пробег) и selling_Price (цена автомобиля), по
которым строится гистограмма. Из нее, в частности, видно, что в нашей выборке 6
автомобилей имеют возраст 10.5 лет, но нет автомобилей с возрастом 5.5 лет.
1. Корреляция пробега автомобиля от его возраста (рис. 4.18)— это область,
ограниченная двумя лучами: минимальная и максимальная средние скорости
автомобилей. В нашей выборке они такие: 1.004 км/ч (машина с возрастом 7.5 лет и
41 000 миль пробега) и 2.046 км/ч (3.5 года и 39 000 миль пробега). Отсюда вывод
— если вам предлагают купить подержанный автомобиль, параметры которого не
попадают в наш скоростной "клин" (1—2 км/ч), то это значит, что машину либо
слишком интенсивно эксплуатировали (скорость больше 2 км/ч), либо она непонятно
почему простаивала (скорость меньше 1 км/час), либо у нее... подкручен
спидометр. Возраст же машины скрыть намного трудней.
Рйс. 4.18. Стоимость подержанного авто — регрессия 1
2. Цена автомобиля зависит от возраста линейно (а+bх — см. первый график на
рис. 4.19). Никакой другой более сложной зависимости из точек, разбросанных на
соответствующем графике, выудить невозможно. В нашем случае после каждого года
пробега с цены машины нужно будет скидывать в среднем по 393 доллара (значение
коэффициента b). Для решения этой задачи можно было бы привлечь функцию regress,
работа которой была показана выше на рис. 4.14, но для "линейного" случая в Mathcad
предусмотрена "одноименная" функция line, возвращающая вектор значений
коэффициентов а и b аппроксимирующей линейной функции а+bх.
Рис. 4.19. Стоимость подержанного авто — регрессия 2
3. Зависимость цены автомобиля от пробега (см. второй график на рис. 4.19)
более сложная — она меняется экспоненциально: а • е^bx+с. При такой зависимости (b<0) цена машины никогда не упадет до нуля, чего не скажешь о
зависимости цены от возраста (первый график на рис. 4.19), когда в районе 14—15
лет автомобиль становится "бесценен" в двух смыслах — у него нулевая цена (наш
смысл) либо автомобиль становится музейным экспонатом.
Рис. 4.20. Стоимость подержанного авто — регрессия 3
Для поиска коэффициентов экспоненциальной функции вызывается другая
встроенная функция из группы Curve Fitting and Smoothing (Подбор кривых и
сглаживание) — Mathcad-функция expf it (от англ. ехр— экспоненциальное и fit—
fitting— сглаживание), которая отличается от функции line в том числе и тем, что
требует для своей работы первого приближения к искомым коэффициентам а, ь и с. В
Mathcad встроены и другие подобные функции для решения аппроксимирующих задач, и
мы перечислили их ранее (см. рис. 4.11).
Переход от плоскости (рис. 4.18 и 4.19) к объему (рис. 4.20) дает следующую
регрессионную формулу13, по которой можно рассчитать остаточную цену автомобиля
(% от цены нового14):
44.98+2.98 Возраст+55.02 •10^(-0.00000937)Прбег
где Возраст выражен в годах, а пробег-— в километрах.
Для поиска коэффициентов сглаживающей функции уже двух аргументов (рис. 4.20)
была задействована универсальная методика оптимизации с использованием
встроенной в Mathcad функции Minimize (см. главу 3), возвращающей значение
переменных а, ь, с и d аппроксимирующей функции, при которой целевая функция с
именем ско (среднее квадратичное отклонение точек от поверхности) минимальна. На
рис. 4.20 построена поверхность с роящимися вокруг нее точками. Но более
наглядно графическая зависимость цены машины от пробега и возраста отображается
семейством кривых, которую мы уже продемонстрировали на рис. 1.78.