Что такое алгоритм автозаполнения в Excel?

50

Какой алгоритм используется автозаполнением в Excel?

Например, когда я ввожу числа 3,4,5,7,8 в столбец, а затем использую автозаполнение, я получаю следующий результат:

 3
 4
 5
 7
 8
 9.3
10.6
11.9
13.2
14.5
15.8
17.1
18.4
Сечкин Дургай
источник
2
Excel, вероятно, проверяет среднее увеличение и использует его для автозаполнения. (В вашей серии вы выросли в 1 раз в три раза и один раз в 2, в среднем это 1,25, округлите до одной цифры (поскольку я не связан с MS, я понятия не имею, почему), то есть 1,3, так что увеличивайте число 1,3 в каждом ряд.).
Máté Juhász
3
@ MátéJuhász Это хорошее предположение, и то, что я изначально думал. Однако это оказывается неверным. Смотрите мой ответ для более подробной информации.
robinCTS
Наблюдение состоит в том, что разница между двумя последними заданными значениями составляет 1,3, а затем автоматически заполненные значения увеличиваются на 1,3. Простейшая (но, как я теперь понял, неправильная) интерпретация для этого набора данных состоит в том, что он просто повторяет последнее различие.
Томас Падрон-Маккарти
@ ThomasPadron-McCarthy На самом деле последние два заданных значения равны 7 и 8, поэтому разница равна 1. 1.3 - это рассчитанный наклон линейного тренда, который, как вы правильно поняли, затем постепенно добавляется для получения автоматически заполненных значений.
robinCTS

Ответы:

66

В Excel используется метод линейного тренда при автоматическом заполнении. Это использует алгоритм метода наименьших квадратов .

Это тот же алгоритм, который используется TREND()функцией, как показано ниже:

Скриншот рабочего листа

Введите следующую формулу C6и ctrl-enter / copy-paste / fill-down в оставшуюся часть столбца:

=TREND($C$1:$C$5,$B$1:$B$5,B6)

Ниже приведен график, показывающий линию тренда, на которую попадают новые значения.

Метод наименьших квадратов создает линию «наилучшего соответствия» для исходных точек данных. Новые точки данных по существу извлекаются из этой строки.

Скриншот диаграммы

robinCTS
источник
12
Не то чтобы я сомневался в вашем ответе, но просто любопытно, откуда вы знаете, что они используют метод наименьших квадратов. (Или, в более широком смысле, вы провели какое-то расследование «под капотом»? Или в таких приложениях часто используется этот метод?)
BruceWayne
7
@BruceWayne да, это обычный подход в простой линейной регрессии
0xFEE1DEAD
10
@BruceWayne Никаких расследований под капотом не требовалось ;-) Это упоминается в нескольких местах в Интернете. Кроме того, в собственной документации Excel говорится, что TREND()функция использует «метод наименьших квадратов», который, как вы можете видеть, подтвердил, что дает тот же результат, что и автоматическое заполнение. Таким образом, при условии, что вы можете поверить в собственную документацию Micro $ oft (и мы все сейчас насколько точны), я бы сказал, что это делает ее довольно убедительной. Плюс то, что сказал 0xFEE1DEAD.
robinCTS
1
Обязательный ролик Джоэла Спольски о Excel. Перейдите к ~ 8 минутам объяснения того, как Excel ссылается на ячейки, что полезно для определения вашей собственной серии. youtube.com/watch?v=0nbkaYsR94c
Bindelstif