Линия наилучшего соответствия не выглядит как подходящая. Почему?

82

Посмотрите на этот график Excel: график

Линия наилучшего соответствия «здравого смысла» будет представлять собой почти вертикальную линию, проходящую через центр точек (отредактировано вручную красным цветом). Однако линейная линия тренда, определенная в Excel, представляет собой показанную диагональную черную линию.

  1. Почему Excel создал что-то, что (для человеческого глаза) кажется неправильным?
  2. Как я могу получить линию наилучшего соответствия, которая выглядит немного более интуитивно понятной (то есть что-то вроде красной линии)?

Обновление 1. Электронная таблица Excel с данными и графиком доступна здесь: пример данных , CSV в Pastebin . Доступны ли методы регрессии типа 1 и типа 2 как функции Excel?

Обновление 2. Данные представляют параплан, поднимающийся в термике, в то время как дрейфующий с ветром. Конечная цель состоит в том, чтобы исследовать, как сила и направление ветра зависит от высоты. Я инженер, а не математик или статистик, поэтому информация в этих ответах дала мне гораздо больше областей для исследований.

ConanTheGerbil
источник
5
Честно говоря, я сомневаюсь, что это вопрос регрессии Деминга против МНК. Глядя на очень маленькую абсолютную изменчивость по и , я бы скорее подумал, что это может быть проблема с числовыми значениями в Excel. Можете ли вы отредактировать свой вопрос, чтобы включить данные? уИксY
С. Коласса - Восстановить Монику
12
Это явление было одним из главных статистических открытий 19 века (если не всех времен). Это называется регрессией к среднему . В самом деле, именно поэтому эта статистическая процедура называется «регрессия»!
whuber
3
Я должен добавить, что главная причина того, что подгонки выглядят так по-разному, заключается в том, что график сильно преувеличивает масштаб по оси Y. Нарисовав его там, где обе шкалы пропорциональны предельным стандартным отклонениям, вы можете прийти к совершенно разным выводам о том, какой подход больше соответствует «здравому смыслу».
whuber
6
@StephanKolassa - обратите внимание, насколько велика была бы ошибка, если бы вы использовали красную линию и предсказали для x = - 0,714 ; красная линия не может быть лучше всего подходит для наименьших квадратов. У Excel, конечно, есть свои проблемы, но я думаю, что это не одна из них. YИксзнак равно-0,714
jbowman
7
Об этом уже много раз говорили на сайте (например, смотрите здесь ). Когда вы понимаете, что такое линия регрессии, легко понять, почему это черная линия. Задайте себе два вопроса: 1: каково среднее значение у, когда х составляет около 0,712? 2. Что предсказывают красные и черные линии? ... [На данный момент я отложил закрытие как дубликат, поскольку есть определенные проблемы с вашими данными, на которые стоило бы перефокусировать ваш вопрос]
Glen_b

Ответы:

111

Есть ли зависимая переменная?

Линия тренда в Excel основана на регрессии зависимой переменной «lat» на независимую переменную «lon». То, что вы называете «линией здравого смысла», можно получить, если вы не назначите зависимую переменную и одинаково относитесь к широте и долготе. Последний может быть получен путем применения PCA . В частности, это один из собственных векторов ковариационной матрицы этих переменных. Вы можете думать об этом как о линии, минимизирующей кратчайшее расстояние от любой данной точки до самой линии, т.е. вы рисуете перпендикуляр к линии и минимизируете сумму этих значений для каждого наблюдения.(Икся,Yя)

введите описание изображения здесь

Вот как вы можете сделать это в R:

> para <- read.csv("para.csv")
> plot(para)
> 
> # run PCA
> pZ=prcomp(para,rank.=1)
> # look at 1st PC
> pZ$rotation
           PC1
lon 0.09504313
lat 0.99547316
> 
> colMeans(para) # PCA was centered
       lon        lat 
-0.7129371 53.9368720 
> # recover the data from 1st PC
> pc1=t(pZ$rotation %*% t(pZ$x) )
> # center and show
> lines(pc1 + t(t(rep(1,123))) %*% c)

YяY(Икся)

Хотите ли вы относиться к переменным одинаково или нет, зависит от цели. Это не присущее качество данных. Вы должны выбрать правильный статистический инструмент для анализа данных, в этом случае выберите регрессию и PCA.

Ответ на вопрос, который не был задан

Итак, почему в вашем случае (регрессия) линия тренда в Excel не кажется подходящим инструментом для вашего случая? Причина в том, что линия тренда - это ответ на вопрос, который не задавался. Вот почему

LaTзнак равноa+б×LоN

Представь, что ветра не было. Параплан будет делать один и тот же круг снова и снова. Какой будет линия тренда? Очевидно, что это будет плоская горизонтальная линия, ее наклон будет нулевым, но это не значит, что ветер дует в горизонтальном направлении!

Y~Икс

введите описание изображения здесь

R код для симуляции:

t=1:123
a=1 #1
b=0 #1/10
y=10*sin(t)+a*t
x=10*cos(t)+b*t

plot(x,y,xlim=c(-60,60))
xp=-60:60
lines(b*t,a*t,col='red')

model=lm(y~x)
lines(xp,xp*model$coefficients[2]+model$coefficients[1])

Таким образом, направление ветра явно совершенно не соответствует линии тренда. Они связаны, конечно, но нетривиальным образом. Следовательно, мое утверждение о том, что линия тренда Excel является ответом на какой-то вопрос, но не тот, который вы задали.

Почему спс?

Как вы заметили, есть как минимум две составляющие движения параплана: дрейф с ветром и круговое движение, управляемое парапланом. Это хорошо видно при подключении точек на вашем графике:

введите описание изображения здесь

С одной стороны, круговые движения действительно доставляют вам неудобства: вы заинтересованы в ветре. Хотя, с другой стороны, вы не наблюдаете скорость ветра, вы только наблюдаете за парапланом. Итак, ваша цель - вывести ненаблюдаемый ветер из показаний местоположения наблюдаемого параплана. Именно в такой ситуации могут быть полезны такие инструменты, как факторный анализ и PCA.

Цель PCA состоит в том, чтобы выделить несколько факторов, которые определяют множественные выходные данные, анализируя корреляции в выходных данных. Это эффективно, когда выходные данные линейно связаны с факторами, что имеет место в ваших данных: дрейф ветра просто добавляет к координатам кругового движения, поэтому PCA работает здесь.

Настройка PCA

Итак, мы установили, что у PCA должен быть шанс, но как мы его на самом деле настроим? Давайте начнем с добавления третьей переменной, времени. Мы собираемся назначить время от 1 до 123 каждому 123 наблюдению, предполагая постоянную частоту дискретизации. Вот как выглядит трехмерный график данных, показывая его спиральную структуру:

введите описание изображения здесь

Следующий график показывает воображаемый центр вращения параплана в виде коричневых кружков. Вы можете видеть, как он дует на лат-плоскость с ветром, в то время как параплан, показанный с синей точкой, кружит вокруг него. Время на вертикальной оси. Я подключил центр вращения к соответствующему месту на параплане, показывая только первые два круга.

введите описание изображения здесь

Соответствующий код R:

library(plotly)       

 para <- read.csv("C:/Users/akuketay/Downloads/para.csv")
 n=24

   para$t=1:123 # add time parameter

   # run PCA
     pZ3=prcomp(para)
     c3=colMeans(para) # PCA was centered
     # look at PCs in columns
       pZ3$rotation

       # get the imaginary center of rotation 
       pc31=t(pZ3$rotation[,1] %*% t(pZ3$x[,1]) )
     eye = pc31 + t(t(rep(1,123))) %*% c3
     eyedata = data.frame(eye)

     p = plot_ly(x=para[1:n,1],y=para[1:n,2],z=para[1:n,3],mode="lines+markers",type="scatter3d") %>%
       layout(showlegend=FALSE,scene=list(xaxis = list(title = 'lat'),yaxis = list(title = 'lon'),zaxis = list(title = 't'))) %>%
     add_trace(x=eyedata[1:n,1],y=eyedata[1:n,2],z=eyedata[1:n,3],mode="markers",type="scatter3d") 
     for( i in 1:n){
         p = add_trace(p,x=c(eyedata[i,1],para[i,1]),y=c(eyedata[i,2],para[i,2]),z=c(eyedata[i,3],para[i,3]),color="black",mode="lines",type="scatter3d")
       }

subplot(p)

Дрейф центра вращения параплана вызван, главным образом, ветром, а траектория и скорость дрейфа соотносятся с направлением и скоростью ветра, ненаблюдаемыми переменными, представляющими интерес. Вот как выглядит дрейф при проекции на плоскость широты:

введите описание изображения здесь

PCA регрессия

Итак, ранее мы установили, что регулярная линейная регрессия здесь не очень хорошо работает. Мы также решили, почему: потому что это не отражает основной процесс, потому что движение параплана очень нелинейно. Это комбинация кругового движения и линейного дрейфа. Мы также обсудили, что в этой ситуации факторный анализ может быть полезным. Вот схема одного из возможных подходов к моделированию этих данных: регрессия PCA . Но кулак я покажу вам PCA регрессии оборудованных кривой:

введите описание изображения здесь

Это было получено следующим образом. Запустите PCA для набора данных, который имеет дополнительный столбец t = 1: 123, как обсуждалось ранее. Вы получаете три основных компонента. Первый просто т. Второй соответствует столбцу lon, а третий - столбцу lat.

aгрех(ωT+φ)ω,φ

Вот и все. Чтобы получить подогнанные значения, вы восстанавливаете данные из подогнанных компонентов, вставляя транспонирование матрицы вращения PCA в предсказанные главные компоненты. Мой код R выше показывает части процедуры, а остальное вы можете легко понять.

Заключение

Интересно посмотреть, насколько мощным является PCA и другие простые инструменты, когда дело доходит до физических явлений, когда базовые процессы стабильны, а входы преобразуются в выходы посредством линейных (или линеаризованных) отношений. Таким образом, в нашем случае круговое движение очень нелинейное, но мы легко линеаризовали его, используя функции синуса / косинуса для параметра времени t. Мои графики были созданы с помощью нескольких строк кода R, как вы видели.

Модель регрессии должна отражать базовый процесс, тогда только вы можете ожидать, что ее параметры значимы. Если это параплан, дрейфующий на ветру, то простой график рассеяния, как в оригинальном вопросе, будет скрывать временную структуру процесса.

Кроме того, регрессия Excel была анализом поперечного сечения, для которого лучше всего работает линейная регрессия, в то время как ваши данные представляют собой процесс временных рядов, где наблюдения упорядочены по времени. Анализ временных рядов должен быть применен здесь, и это было сделано в регрессии PCA.

Примечания о функции

Yзнак равное(Икс)ИксYИксYYИксLaTзнак равное(LоN)

Аксакал
источник
11
a грех ωT+б соз ωT
11
Хотите ли вы относиться к ним одинаково или нет, зависит от цели. Это не присущее качество данных. - Отличная точка и +1.
Ричард Харди
@NickCox, это правильно, это было бы тоже меньше работы
Аксакал
Стоит отметить, что PCA является обобщением регрессии по главной оси в ситуации, когда у вас> 2 переменных. Но так как в этом случае есть только 2 переменные, стандартным названием для этого метода будет регрессия по главной оси (также иногда называемая ортогональной регрессией или регрессией типа II).
Том Венселерс
61

Ответ, вероятно, связан с тем, как вы мысленно оцениваете расстояние до линии регрессии. Стандартная (тип 1) регрессия минимизирует квадрат ошибки, где ошибка рассчитывается на основе вертикального расстояния до линии .

Тип 2 регрессии может быть более аналогичным вашему суждению о лучшей линии. В этом квадрате минимизированная ошибка - это перпендикулярное расстояние до линии . Это различие имеет ряд последствий. Одним из важных моментов является то, что если вы поменяете оси X и Y на своем графике и восстановите линию, вы получите различное соотношение между переменными для регрессии типа 1. Для регрессии типа 2 отношения остаются прежними.

У меня сложилось впечатление, что существует довольно много споров о том, где использовать регрессию типа 1 против типа 2, и поэтому я предлагаю внимательно прочитать различия, прежде чем принимать решение о том, что применять. Регрессия типа 1 часто рекомендуется в тех случаях, когда одна ось контролируется экспериментально или, по крайней мере, измеряется с гораздо меньшей ошибкой, чем другая. Если эти условия не выполняются, регрессия типа 1 сместит наклоны к 0, и поэтому рекомендуется регрессия типа 2. Однако при достаточном шуме в обеих осях регрессия типа 2, по-видимому, имеет тенденцию смещать их в сторону 1. Warton et al. (2006) и Smith (2009) являются хорошими источниками для понимания дебатов.

Также обратите внимание, что есть несколько тонко различных методов, которые попадают в широкую категорию регрессии типа 2 (большая ось, уменьшенная большая ось и стандартная регрессия большой оси), и что терминология в отношении конкретных методов противоречива.

Warton, DI, IJ Wright, DS Falster и M. Westoby. 2006. Двусторонние методы подгонки линии для аллометрии. Biol. Откр. 81: 259–291. DOI: 10,1017 / S1464793106007007

Smith, RJ 2009. Об использовании и неправильном использовании уменьшенной большой оси для подгонки линии. Am. J. Phys. Anthropol. 140: 476-486. DOI: 10.1002 / ajpa.21090


РЕДАКТИРОВАТЬ :

@amoeba указывает, что то, что я называю регрессией типа 2 выше, также известно как ортогональная регрессия; это может быть более подходящим термином. Как я уже говорил выше, терминология в этой области противоречива, что требует дополнительной осторожности.

mkt - восстановить монику
источник
19
Спор о том, использовать ли тип 1 или тип 2? Нет смысла спорить о том, когда вы знаете, какова ваша цель (целевая функция или функция потери). А если нет, то вы должны уточнить это, прежде чем продолжить.
Ричард Харди
7
Тип 2 также дает бессмысленные результаты, если обе оси используют разные единицы измерения.
Джон Дворжак
4
Вы используете «Тип 1» и «Тип 2», как если бы это были стандартные термины. Они? Я никогда не возглавлял никого, кто бы называл обычную регрессию и ортогональную регрессию «тип 1» и «тип 2».
говорит амеба: восстанови Монику
2
@RichardHardy Конечно, лучше уточнить конкретную цель. Но, как я сказал в ответе, у меня сложилось впечатление , что продолжаются дебаты об их использовании в некоторых случаях - и те статьи, которые я цитирую (а также противоречивые рекомендации, которые я продолжаю получать от рецензентов), похоже, подтверждают это.
mkt - Восстановить Монику
3
@mkt, спасибо за разъяснения. Действительно, могут быть споры среди людей, которые не уверены, что им нужно. Там основное внимание в дискуссии уделяется тому, какой из этих двух вопросов более актуален для их предметной цели. Я хотел подчеркнуть, что после того, как ваша цель четко определена, дискуссия не ведется, то есть цель предмета переводится на статистический язык (что неизбежно при использовании статистических методов). Так что, думаю, мы согласны, мы просто подчеркиваем разные части аргумента.
Ричард Харди
31

Вопрос, на который пытается ответить Excel: «Предполагая, что y зависит от x, какая строка предсказывает y лучше всего». Ответ в том, что из-за огромных различий в y никакая строка не может быть особенно хорошей, и то, что Excel показывает, - лучшее, что вы можете сделать.

Если вы возьмете предложенную красную линию и продолжите ее до x = -0,714 и x = -0,712, вы обнаружите, что ее значения находятся далеко от графика и находятся на огромном расстоянии от соответствующих значений y ,

Вопрос, на который отвечает Excel, заключается не в том, «какая линия ближе к точкам данных», а в том, «какая линия лучше всего предсказать значения y по значениям x», и он делает это правильно.

gnasher729
источник
4
Именно так. Основным предположением является «x дано, y измерено / предсказано».
Floris
12

Я не хочу ничего добавлять к другим ответам, но хочу сказать, что вас сбила с толку плохая терминология, в частности термин «линия наилучшего соответствия», который используется в некоторых курсах статистики.

Интуитивно понятно, что «линия наилучшего соответствия» будет выглядеть как ваша красная линия. Но линия, созданная в Excel, не является «линией наилучшего соответствия»; это даже не попытка быть. Это строка, которая отвечает на вопрос: учитывая значение х, каков мой лучший прогноз для у? или, в качестве альтернативы, каково среднее значение y для каждого значения x?

Обратите внимание на асимметрию между x и y; использование названия «линия наилучшего соответствия» скрывает это. Так же как и в Excel использование «линии тренда».

Это очень хорошо объяснено по следующей ссылке:

https://www.stat.berkeley.edu/~stark/SticiGui/Text/regression.htm

Возможно, вы захотите что-то более похожее на то, что называется «Тип 2» в ответе выше, или «Линия SD» на странице курса статистики Беркли.

Flounderer
источник
11

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

Другими словами, вы можете сделать так, чтобы большинство таких «наиболее подходящих» линий выглядели «неинтуитивно», расширяя масштаб по одной оси.

Aganju
источник
1
Я согласен, что это ответ - диапазон значений X составляет около 0,02 в ширину, а диапазон Y - только около 0,005 - фактически диаграмма должна быть примерно в 4 раза шире, чем она высока, и было бы очевидно, что наилучшая посадка будет горизонтальной. Феномен в вопросе является чисто визуальным из-за различных масштабов.
RemcoGerlich
3
@RemcoGerlich Мы можем согласиться с тем, что, как показано в вопросе, соотношение сторон графика не помогает. Но предположение, что вам нужен график в 4 раза шире, чем выше, поскольку численно диапазоны находятся в этом соотношении, неправдоподобно и, конечно, не является фактом. Если бы единицы на каждой оси были изменены в 1000 раз, вы бы предложили соотношение сторон 4000 или 0,004? Соотношение 4х, скорее всего, будет просто побочным эффектом разных юнитов.
Ник Кокс
4
Другие ответы дают правильный ответ. Этот, к сожалению, нет. Если мы масштабируем значения, так что получаем одно и то же визуальное изображение, но с одинаковыми осями, это все еще проблема подбора «тип 1» против «типа 2».
Ханс Янссен
1
Он говорит о «здравом смысле», наилучшим образом подходящем, что правильно «для человеческого глаза». И тогда главное - это масштабирование осей.
RemcoGerlich
У него есть точка зрения, иногда на то, что кажется интуитивным, влияют такие глупые вещи, как масштабирование, хотя это не так. Здесь мы имеем подлинное несоответствие между тем, что делает Excel, и тем, что хочет OP
Аксакал
4

Несколько человек отметили, что проблема визуальная - графическое масштабирование приводит к вводящей в заблуждение информации. Точнее говоря, масштабирование «lon» таково, что оно кажется жесткой спиралью, что говорит о плохой подгонке линии регрессии (оценка, с которой я согласен, красная линия, которую вы проведете, обеспечит более низкие квадратные ошибки, если данные были сформированы в порядке, представленном).

Ниже я приведу диаграмму рассеяния, созданную в Excel, с измененным масштабом для «lon», чтобы она не создавала плотную спираль в диаграмме рассеяния. С этим изменением линия регрессии теперь обеспечивает лучшее визуальное соответствие, и я думаю, помогает продемонстрировать, как масштабирование в исходной диаграмме рассеяния дало ошибочную оценку соответствия.

Я думаю, что регрессия работает хорошо здесь. Я не думаю, что необходим более сложный анализ.

введите описание изображения здесь

Для любого заинтересованного, я нанес на график данные, используя инструмент отображения и показать регрессию, подогнанную к данным. Красные точки - это записанные данные, а зеленые - линия регрессии.

введите описание изображения здесь

И вот те же данные на графике рассеяния с линией регрессии; здесь lat рассматривается как зависимый, а оценки lat меняются местами, чтобы соответствовать географическому профилю.

введите описание изображения здесь

Bryan
источник
1
Регрессия не показывает направление дрейфа ветра
Аксакал
Мы знаем только широту и долготу, и для предоставленных данных они показывают изменение одного относительно другого.
Брайан
Так что же означает эта линия тренда?
Аксакал
Предполагая, что первая точка в файле данных является начальным местоположением, кажется, что есть небольшое северное увеличение маршрута по мере продвижения на восток. Данные не дают информации о силе или высоте ветра, но указывают направление - восток на север.
Брайан
Коррекция, картографическое программное обеспечение, которое я использовал, запрашивает широту, но его данные длинны, поэтому направление ветра будет немного севернее на восток, то есть небольшое восточное движение будет дальше на север (или небольшое западное движение дальше на юг). путешествовал).
Брайан
1

Вы путаете обычную регрессию наименьших квадратов (OLS) (которая минимизирует сумму квадратов отклонения относительно прогнозируемых значений, (наблюдаемых-предсказанных) ^ 2) и регрессию по главной оси (которая минимизирует суммы квадратов перпендикулярного расстояния между каждой точкой и линия регрессии, иногда это упоминается как регрессия типа II, ортогональная регрессия или стандартизированная регрессия основного компонента).

Если вы хотите сравнить два подхода только в R, просто посмотрите

data=read.csv("https://pastebin.com/raw/4TsstQYm")
require(lmodel2)
fit = lmodel2(lat ~ lon, data=data)
plot(fit,method="OLS") # ordinary least squares regression

введите описание изображения здесь

plot(fit,method="MA") # major axis regression

введите описание изображения здесь

То, что вы находите наиболее интуитивно понятным (ваша красная линия), это просто регрессия по главной оси, которая, визуально говоря, действительно выглядит наиболее логичной, поскольку она минимизирует перпендикулярное расстояние до ваших точек. Регуляция OLS будет отображаться только для минимизации перпендикулярного расстояния до ваших точек, если переменные x и y находятся на одной шкале измерения и / или имеют одинаковую величину ошибки (вы можете увидеть это просто на основании теоремы Пифагора). В вашем случае ваша переменная y имеет гораздо больший разброс, поэтому разница ...

Том Венселерс
источник
0

Ответ PCA является лучшим, потому что я думаю, что именно это вам следует делать, учитывая описание вашей проблемы, однако ответ PCA может смешивать PCA и регрессию, которые являются совершенно разными вещами. Если вы хотите экстраполировать этот конкретный набор данных, то вам нужно сделать регрессию и, вероятно, захотите сделать регрессию Деминга (что, я думаю, иногда происходит с Типом II, никогда не слышал об этом описании). Однако, если вы хотите выяснить, какие направления являются наиболее важными (собственные векторы) и имеют метрику их относительного влияния на набор данных (собственные значения), тогда PCA является правильным подходом.

Эндрю Х
источник
4
В основном это серия комментариев к другим ответам. Было бы лучше прокомментировать непосредственно каждый. Я не вижу, что ответ @Aksakal вообще смущает PCA и регресс.
Ник Кокс
Я хотел прокомментировать напрямую, но не был достаточно авторитетным. Я не думаю, что Аксакал вводит в заблуждение регресс, но подумал, что стоит отметить, что PCA и регрессия совершенно разные.
Эндрю Х