가장 잘 맞는 선은 잘 맞는 것처럼 보이지 않습니다. 왜?


82

이 Excel 그래프를 살펴보십시오. 그래프

'상식'의 최적 선은 점의 중심을 가로 지르는 거의 수직선 (수작업으로 빨간색으로 편집)으로 나타납니다. 그러나 Excel에서 결정한 선형 추세선은 대각선 검은 선입니다.

  1. Excel이 (사람의 눈에) 잘못된 것으로 보이는 것을 왜 생성 했습니까?
  2. 좀 더 직관적 인 것처럼 보이는 (즉, 빨간 선과 같은) 가장 적합한 선을 어떻게 만들 수 있습니까?

업데이트 1. 데이터 및 그래프가 포함 된 Excel 스프레드 시트 ( : data , Paste in CSV)를 사용할 수 있습니다 . type1 및 type2 회귀 기술을 Excel 함수로 사용할 수 있습니까?

업데이트 2. 데이터는 바람과 함께 표류하면서 열에서 패러 글라이더 등반을 나타냅니다. 마지막 목표는 바람의 세기와 방향이 높이에 따라 어떻게 달라지는 지 조사하는 것입니다. 저는 수학 자나 통계학자가 아닌 엔지니어이기 때문에 이러한 반응의 정보를 통해 더 많은 연구 분야를 찾을 수있었습니다.


5
xy

12
이 현상은 19 세기의 주요 통계 발견 중 하나였습니다 (항상 그런 것은 아님). 평균을 향한 회귀 라고 합니다 . 실제로이 통계적 절차가 "회귀"라고하는 이유가 바로 여기에 있습니다!
whuber

3
피팅이 너무 다르게 보이는 주된 이유는 플롯이 y 축의 스케일을 크게 과장하기 때문입니다. 두 척도가 한계 표준 편차에 비례하는 곳에서이 그림을 그려서 어느 "적합성"이 더 "상식"인지에 ​​대한 완전히 다른 결론에 도달 할 수 있습니다.
whuber

6
yx=0.714

7
이것은 이미 현장에서 여러 번 해결되었습니다 (예 : 여기 참조 ). 회귀선이 무엇인지 이해하면 왜 이것이 검은 선인지 쉽게 알 수 있습니다. 두 가지 질문을 해보십시오. 1 : x가 약 0.712 일 때 y의 평균값은 얼마입니까? 2. 빨간색과 검은 색 선은 무엇을 예측해야합니까? ... [ 귀하의 질문에 다시 초점을 맞출 가치 가있는 특정 문제 가 있으므로 지금은 중복으로 마감했습니다 .]
Glen_b

답변:


111

종속 변수가 있습니까?

(xi,yi)

여기에 이미지 설명을 입력하십시오

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)

yiy(xi)

변수를 동일하게 취급할지 여부는 목적에 따라 다릅니다. 데이터의 고유 품질이 아닙니다. 데이터를 분석하려면 올바른 통계 도구를 선택해야합니다.이 경우 회귀 분석과 PCA 중에서 선택하십시오.

묻지 않은 질문에 대한 답변

그렇다면 왜 귀하의 경우 Excel의 (회귀) 추세선이 귀하의 경우에 적합한 도구가 아닌 것 같습니까? 그 이유는 추세선이 질문되지 않은 질문에 대한 답변이기 때문입니다. 이유는 다음과 같습니다.

lat=a+b×lon

바람이 없었다고 상상해보십시오. 패러 글라이더는 계속해서 같은 원을 만들고있을 것입니다. 추세선은 무엇입니까? 분명히, 그것은 평평한 수평선 일 것이고, 그것의 기울기는 0 일 것이지만, 바람이 수평 방향으로 불어 오는 것을 의미하지는 않습니다!

yx

여기에 이미지 설명을 입력하십시오

시뮬레이션을위한 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 설정

그래서 우리는 PCA가 여기에 기회가 있어야한다는 것을 알았지 만 실제로 어떻게 설정할 것입니까? 세 번째 변수 인 시간을 추가하는 것으로 시작하겠습니다. 일정한 샘플링 주파수를 가정하여 각 123 개의 관측치에 1 ~ 123의 시간을 할당합니다. 다음은 3D 플롯이 데이터와 비슷한 모습을 나타내며 나선형 구조를 나타냅니다.

여기에 이미지 설명을 입력하십시오

다음 그림은 패러 글라이더의 가상 회전 중심을 갈색 원으로 보여줍니다. 바람과 함께 위도 비행기에서 표류하는 방법을 볼 수 있으며 파란색 점으로 표시된 패러 글라이더가 주위를 돌고 있습니다. 시간은 세로 축입니다. 회전 중심을 처음 두 개의 원만 표시하는 패러 글라이더의 해당 위치에 연결했습니다.

여기에 이미지 설명을 입력하십시오

해당 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 회귀 적합 곡선을 보여 드리겠습니다 .

여기에 이미지 설명을 입력하십시오

이것은 다음과 같이 얻었습니다. 앞에서 설명한 것처럼 추가 열 t = 1 : 123이있는 데이터 세트에서 PCA를 실행하십시오. 세 가지 주요 구성 요소가 있습니다. 첫 번째는 단순히 t입니다. 두 번째는 lon 열에 해당하고 세 번째는 위도 열에 해당합니다.

asin(ωt+φ)ω,φ

그게 다야. 적합치를 얻으려면 PCA 회전 행렬의 전치를 예측 된 주성분에 옮김으로써 적합 된 구성 요소에서 데이터를 복구합니다. 위의 R 코드는 절차의 일부를 나타내며 나머지는 쉽게 알아낼 수 있습니다.

결론

기본 프로세스가 안정적이고 입력이 선형 (또는 선형화 된) 관계를 통해 출력으로 변환되는 물리적 현상과 관련하여 PCA 및 기타 간단한 도구가 얼마나 강력한 지 확인하는 것이 흥미 롭습니다. 따라서 우리의 경우 원형 모션은 매우 비선형 적이지만 시간 t 파라미터에 사인 / 코사인 함수를 사용하여 쉽게 선형화합니다. 내 줄거리는 보듯이 몇 줄의 R 코드로 생성되었습니다.

회귀 모델은 기본 프로세스를 반영해야하며 매개 변수가 의미가 있다고 기대할 수 있습니다. 이것이 바람에 떠 다니는 패러 글라이더라면, 원래 질문에서와 같은 간단한 산포도는 프로세스의 시간 구조를 숨길 것입니다.

또한 Excel 회귀 분석은 선형 회귀 분석이 가장 잘 작동하는 단면 분석이며 데이터는 시계열 프로세스이며 관측치는 시간 순서대로 정렬됩니다. 시계열 분석을 여기에 적용해야하며 PCA 회귀 분석에서 수행했습니다.

기능에 대한 참고 사항

y=f(x)xyxyyxlat=f(lon)


11
a sin ωt+b cos ωt

11
당신이 그들을 동등하게 대우할지 여부는 목표에 달려 있습니다. 데이터의 고유 품질이 아닙니다. -좋은 점과 +1.
Richard Hardy

@NickCox, 맞아요, 그것은 덜 일했을 것입니다
Aksakal

PCA는> 2 변수가있는 상황에 대한 주축 회귀 분석의 일반화라는 점을 지적 할 가치가 있습니다. 그러나이 경우에는 2 개의 변수 만 있기 때문에 기술의 표준 이름은 주축 회귀 (때로는 직교 회귀 또는 유형 II 회귀라고도 함)입니다.
Tom Wenseleers

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. allometry를위한 이변 량 라인 피팅 방법. Biol. 개정 81 : 259–291. 도 : 10.1017 / S1464793106007007

Smith, RJ 2009. 줄 맞춤을 위해 줄어든 장축의 사용 및 오용. 오전. J. Phys. Anthropol. 140 : 476-486. 도 : 10.1002 / ajpa.21090


편집 :

@amoeba는 위의 유형 2 회귀 분석을 직교 회귀라고도합니다. 이것은 더 적절한 용어 일 수 있습니다. 위에서 말했듯이,이 영역의 용어가 일치하지 않으므로 추가 관리가 필요합니다.


19
유형 1 또는 유형 2를 사용할 지에 대한 토론? 목표 (객관적 기능 또는 손실 기능)가 무엇인지 아는 경우에는 논의 할 것이 없습니다. 그리고 당신이 잘하지 않는다면, 진행하기 전에 그것을 분명히해야합니다.
Richard Hardy

7
두 축이 서로 다른 단위를 사용하는 경우 유형 2는 무의미한 결과도 생성합니다.
John Dvorak

4
"Type 1"및 "Type 2"를 표준 용어 인 것처럼 사용하고 있습니다. 그들이 있습니까? 나는 평범한 회귀와 직교 회귀를 "type 1"과 "type 2"라고 부르는 사람을 본 적이 없다.
amoeba

2
@RichardHardy 물론 특정 목표를 명확히하는 것이 가장 좋습니다. 내가 대답했다하지만, 내 느낌이 경우 하위 집합에서의 사용에 대한 지속적인 논쟁이 있다는 것입니다 - 내가 인용하는 논문 (물론 나는 리뷰어가 계속 충돌 권장)이 밖으로 부담 것으로 보인다.
mkt

3
@mkt, 설명해 주셔서 감사합니다. 실제로, 자신이 무엇을하는지 잘 모르는 사람들 사이에 논쟁이있을 수 있습니다. 여기서 논쟁의 초점은 두 가지 중 어느 것이 주제 목표와 더 관련이 있는지입니다. 내가 강조하고 싶은 것은 목표가 잘 정의되면 토론이 없다는 것입니다. 즉, 주제 목표가 통계 언어로 변환됩니다 (통계 방법을 사용하는 경우 피할 수 없습니다). 그래서 우리는 논쟁의 다른 부분을 강조하고 있다고 생각합니다.
Richard Hardy

31

Excel이 대답하려고하는 질문은 "y가 x에 의존한다고 가정하면 어떤 선이 y를 가장 잘 예측하는지"입니다. 대답은 y의 큰 변화로 인해 특히 좋은 줄이 없을 수 있으며 Excel에서 표시하는 것이 가장 좋습니다.

제안 된 빨간색 선을 가져 와서 최대 x = -0.714 및 x = -0.712까지 계속하면 값이 차트에서 멀어지고 해당 y 값과 거리에 있음을 알 수 있습니다 .

Excel이 대답하는 질문은 "데이터 포인트에 가장 가까운 선"이 아니라 "x 값에서 y 값을 예측하는 것이 가장 좋은 선"입니다.


4
바로 그거죠. 기본 가정은 "x가 주어지고 y가 측정 / 예측된다"입니다.
Floris

12

다른 답변에는 아무 것도 추가하고 싶지 않지만 잘못된 통계, 특히 일부 통계 과정에서 사용되는 "최적 선"이라는 용어로 인해 길을 잃었다 고 말하고 싶습니다.

직관적으로 "가장 적합한 선"은 빨간 선처럼 보입니다. 그러나 Excel에서 생성 한 줄은 "가장 적합한 줄"이 아닙니다. 심지어는 노력하지도 않습니다. 질문에 대답하는 선입니다. x 값이 주어지면 y에 대한 최선의 예측은 무엇입니까? 또는 대안으로, 각 x 값에 대한 평균 y 값은 얼마입니까?

여기서 x와 y 사이의 비대칭에 주목하십시오. "가장 적합한 라인"이라는 이름을 사용하면이를 모호하게합니다. Excel에서도 "trendline"을 사용합니다.

다음 링크에서 잘 설명되어 있습니다.

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

위 답변에서 "Type 2"또는 Berkeley stats 코스 페이지에서 "SD Line"과 같은 것을 원할 수 있습니다.


11

광학 문제의 일부는 다른 스케일에서 비롯됩니다. 두 축에서 동일한 스케일을 사용하면 이미 다르게 보입니다.

다시 말해, 하나의 축 스케일을 확장하여 이러한 '최 적합'선을 '직관적이지 않은'것처럼 보이게 만들 수 있습니다.


1
나는 이것이 대답이라는 것에 동의합니다-값의 X 범위는 약 0.02 너비이지만 Y 범위는 약 0.005에 불과합니다. 실제로 차트는 높이의 약 4 배 넓어야합니다. 가장 잘 맞는 것은 수평입니다. 문제의 현상은 규모가 다르기 때문에 순전히 시각적입니다.
RemcoGerlich 10

3
@RemcoGerlich 우리는 질문에 표시된 것처럼 그래프의 종횡비가 도움이되지 않는다는 데 동의 할 수 있습니다. 그러나 수치 적으로 범위가 해당 비율에 있기 때문에 4 배나 높은 너비의 그래프가 필요하다는 제안은 믿기 어려우며 사실은 아닙니다. 축 중 하나의 단위가 1000 배로 변경되면 종횡비가 4000 또는 0.004입니까? 4 배 비율은 다른 단위의 부작용 일 가능성이 높습니다.
닉 콕스

4
다른 답변은 정답을 제공합니다. 슬프게도 그렇지 않습니다. 동일한 시각적 이미지를 얻을 수 있지만 축이 같은 값을 다시 조정하면 여전히 "유형 1"대 "유형 2"피팅 문제입니다.
한스 얀센

1
그는 "상식"에 가장 잘 맞는 것, "사람의 눈에 맞는 것"에 대해 이야기합니다. 그리고 축의 스케일링이 중요합니다.
RemcoGerlich

그는 때때로 직관적 인 것처럼 보이는 것은 스케일링과 같은 어리석은 것들에 의해 영향을받습니다. 여기 엑셀이하는 것과 OP가 원하는 것 사이에 불일치가 있습니다
Aksakal

4

소수의 개인은 문제가 시각적이라는 점에 주목했습니다. 사용 된 그래픽 스케일링은 잘못된 정보를 생성합니다. 더 구체적으로 말하면, "론"의 스케일링은 회귀선이 적합하지 않다는 것을 암시하는 단단한 나선처럼 보입니다 (데이터가 제시된 방식으로 형성되었습니다.

아래에서는 Excel에서 만든 "lon"에 대한 배율이 변경된 산점도를 제공하므로 산점도에 단단한 나선이 생성되지 않습니다. 이 변경으로 인해 회귀선이 시각적으로 더 잘 맞으며 원래 산점도의 스케일링이 잘못된 적합도 평가를 제공 한 방법을 보여주는 데 도움이된다고 생각합니다.

회귀가 여기에서 잘 작동한다고 생각합니다. 더 복잡한 분석이 필요하다고 생각하지 않습니다.

여기에 이미지 설명을 입력하십시오

관심있는 사람은 매핑 도구를 사용하여 데이터를 플로팅하고 데이터에 맞는 회귀를 보여줍니다. 빨간색 점은 기록 된 데이터이고 녹색 점은 회귀선입니다.

여기에 이미지 설명을 입력하십시오

그리고 여기 회귀선이있는 산점도에 동일한 데이터가 있습니다. 여기서 위도는 종속 프로파일로 취급되며 위도 점수는 지리적 프로파일에 맞게 반전됩니다.

여기에 이미지 설명을 입력하십시오


1
회귀는 바람의 방향을 보여주지 않습니다
Aksakal

우리는 위도 및 경도 만 알고 있으며 제공된 데이터에 대해서는 하나의 상대적인 변화를 보여줍니다.
Bryan

이 추세선은 무엇을 의미합니까?
Aksakal

데이터 파일의 첫 번째 지점이 시작 위치라고 가정하면 동쪽으로 이동하는 경로가 약간 북쪽으로 증가한 것으로 보입니다. 데이터는 바람의 강도 나 높이에 대한 정보는 제공하지 않지만 북쪽에서 동쪽 방향을 제공합니다.
Bryan

수정, 내가 사용하는 매핑 소프트웨어는 위도를 요청했지만 그의 데이터는 위도에 따라 바람의 방향은 동쪽으로 약간 북쪽이 될 것입니다. 여행).
Bryan

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

여기에 이미지 설명을 입력하십시오

가장 직관적 인 것 (빨간 선)은 주요 축 회귀입니다. 시각적으로 말하면 실제로 포인트까지의 수직 거리를 최소화하므로 가장 논리적으로 보입니다. x와 y 변수가 동일한 측정 척도에 있고 / 또는 같은 양의 오차가있는 경우 OLS 회귀는 점까지의 수직 거리를 최소화하는 것처럼 보입니다 (피타고라스의 정리를 기준으로 간단히 볼 수 있음). 귀하의 경우, y 변수는 그것에 더 많이 퍼져 있으므로 차이가 있습니다 ...


0

PCA 답변은 문제 설명과 함께해야 할 일이라고 생각하기 때문에 최고이지만 PCA 답변은 완전히 다른 PCA와 회귀를 혼란스럽게 할 수 있습니다. 이 특정 데이터 세트를 외삽하고 싶다면 회귀를 수행하고 데밍 회귀를 원할 것입니다. 그러나 어떤 방향이 가장 중요한지 (고유 벡터)를 찾고 데이터 세트 (고유 값)에 대한 상대적인 영향의 메트릭을 찾으려면 PCA가 올바른 접근 방법입니다.


4
이것은 대부분 다른 답변에 대한 일련의 의견입니다. 각각에 대해 직접 언급하는 것이 좋습니다. @Aksakal의 답변이 PCA와 회귀를 혼란스럽게하는 것을 보지 못했습니다.
닉 콕스

나는 직접 의견을 말하고 싶었지만 충분히 평판이 좋지 않았다. Aksakal이 회귀를 혼란스럽게 생각하지는 않지만 PCA와 회귀가 완전히 다른 OP를 지적 할 가치가 있다고 생각했습니다.
앤드류 H
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.