Có một biến phụ thuộc?
Đường xu hướng trong Excel là từ hồi quy của biến phụ thuộc "lat" trên biến độc lập "lon". Những gì bạn gọi là "đường cảm giác chung" có thể đạt được khi bạn không chỉ định biến phụ thuộc và coi cả vĩ độ và kinh độ đều như nhau. Cái sau có thể thu được bằng cách áp dụng PCA . Cụ thể, đó là một trong những vectơ riêng của ma trận hiệp phương sai của các biến này. Bạn có thể nghĩ về nó như là một đường thu nhỏ khoảng cách ngắn nhất từ bất kỳ điểm nào đến một đường thẳng, tức là bạn vẽ một đường vuông góc với đường thẳng và tối thiểu hóa tổng của các đường đó cho mỗi lần quan sát.(xi,yi)
Đây là cách bạn có thể làm điều đó trong 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)
Đường xu hướng mà bạn nhận được từ Excel là một ý nghĩa phổ biến như vectơ eigen từ PCA khi bạn hiểu rằng trong hồi quy Excel, các biến không bằng nhau. Ở đây bạn đang thu nhỏ khoảng cách dọc từ đến , trong đó trục y là vĩ độ và trục x là kinh độ. y ( x i )yiy(xi)
Việc bạn có muốn đối xử bình đẳng với các biến hay không phụ thuộc vào mục tiêu. Đó không phải là chất lượng vốn có của dữ liệu. Bạn phải chọn công cụ thống kê phù hợp để phân tích dữ liệu, trong trường hợp này chọn giữa hồi quy và PCA.
Một câu trả lời cho một câu hỏi không được hỏi
Vậy, tại sao trong trường hợp của bạn, một đường xu hướng (hồi quy) trong Excel dường như không phải là một công cụ phù hợp cho trường hợp của bạn? Lý do là đường xu hướng là câu trả lời cho câu hỏi chưa được hỏi. Đây là lý do tại sao.
Hồi quy Excel đang cố gắng ước tính các tham số của một dòng . Vì vậy, vấn đề đầu tiên là vĩ độ thậm chí không phải là chức năng của kinh độ, nói đúng (xem ghi chú ở cuối bài), và nó thậm chí không phải là vấn đề chính. Vấn đề thực sự là bạn thậm chí không quan tâm đến vị trí của dù lượn, bạn quan tâm đến gió.lat=a+b×lon
Hãy tưởng tượng rằng không có gió. Một người chơi dù lượn sẽ thực hiện cùng một vòng tròn lặp đi lặp lại. Điều gì sẽ là đường xu hướng? Rõ ràng, nó sẽ là đường ngang phẳng, độ dốc của nó bằng 0, nhưng điều đó không có nghĩa là gió thổi theo hướng ngang!
Đây là một âm mưu mô phỏng khi có một cơn gió mạnh dọc theo trục y, trong khi một người chơi dù lượn đang tạo ra những vòng tròn hoàn hảo. Bạn có thể thấy cách hồi quy tuyến tính tạo ra kết quả vô nghĩa, một đường xu hướng ngang. Trên thực tế, nó thậm chí hơi tiêu cực, nhưng không đáng kể. Hướng gió được hiển thị với một đường màu đỏ:y∼x
Mã R cho mô phỏng:
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])
Vì vậy, hướng của gió rõ ràng không phù hợp với đường xu hướng. Họ được liên kết, tất nhiên, nhưng theo một cách không tầm thường. Do đó, tuyên bố của tôi rằng đường xu hướng Excel là câu trả lời cho một số câu hỏi, nhưng không phải là câu hỏi mà bạn đã hỏi.
Tại sao PCA?
Như bạn đã lưu ý, có ít nhất hai thành phần chuyển động của dù lượn: sự trôi dạt với một chuyển động gió và vòng tròn được điều khiển bởi một chiếc dù lượn. Điều này được thấy rõ khi bạn kết nối các dấu chấm trên cốt truyện của mình:
Một mặt, chuyển động tròn thực sự gây phiền toái cho bạn: bạn quan tâm đến gió. Mặt khác, bạn không quan sát tốc độ gió, bạn chỉ quan sát dù lượn. Vì vậy, mục tiêu của bạn là suy ra cơn gió không thể quan sát được từ việc đọc vị trí của người chơi dù lượn có thể quan sát được. Đây chính xác là tình huống mà các công cụ như phân tích nhân tố và PCA có thể hữu ích.
Mục đích của PCA là cô lập một vài yếu tố xác định nhiều đầu ra bằng cách phân tích các mối tương quan trong đầu ra. Nó hiệu quả khi đầu ra được liên kết với các yếu tố tuyến tính, điều này xảy ra trong trường hợp dữ liệu của bạn: gió trôi chỉ đơn giản là thêm vào tọa độ của chuyển động tròn, đó là lý do tại sao PCA hoạt động ở đây.
Thiết lập PCA
Vì vậy, chúng tôi đã thiết lập rằng PCA nên có cơ hội ở đây, nhưng chúng tôi sẽ thực sự thiết lập nó như thế nào? Hãy bắt đầu với việc thêm một biến thứ ba, thời gian. Chúng ta sẽ chỉ định thời gian từ 1 đến 123 cho mỗi lần quan sát 123, giả sử tần suất lấy mẫu không đổi. Dưới đây là cách biểu đồ 3D trông giống như dữ liệu, cho thấy cấu trúc xoắn ốc của nó:
Cốt truyện tiếp theo cho thấy trung tâm tưởng tượng của một chiếc dù lượn là những vòng tròn màu nâu. Bạn có thể thấy nó trôi như thế nào trên mặt phẳng lat-lon với gió, trong khi dù lượn được hiển thị với một chấm màu xanh đang lượn quanh nó. Thời gian là trên trục dọc. Tôi đã kết nối trung tâm xoay với một vị trí tương ứng của dù lượn chỉ hiển thị hai vòng tròn đầu tiên.
Mã R tương ứng:
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)
Sự trôi dạt của tâm xoay dù được gây ra chủ yếu là do gió, và đường đi và tốc độ của sự trôi dạt tương quan với hướng và tốc độ của gió, các biến quan tâm không thể quan sát được. Đây là cách trôi dạt khi được chiếu lên mặt phẳng lat-lon:
Hồi quy PCA
Vì vậy, trước đó chúng tôi đã thiết lập rằng hồi quy tuyến tính thông thường dường như không hoạt động tốt ở đây. Chúng tôi cũng đã tìm ra lý do tại sao: bởi vì nó không phản ánh quá trình cơ bản, bởi vì chuyển động của dù lượn rất phi tuyến. Đó là sự kết hợp của chuyển động tròn và trôi tuyến tính. Chúng tôi cũng thảo luận rằng trong tình huống này, phân tích nhân tố có thể hữu ích. Đây là một phác thảo về một cách tiếp cận có thể để mô hình hóa dữ liệu này: hồi quy PCA . Nhưng nắm tay tôi sẽ cho bạn thấy những hồi quy PCA lắp đường cong:
Điều này đã đạt được như sau. Chạy PCA trên tập dữ liệu có thêm cột t = 1: 123, như đã thảo luận trước đó. Bạn nhận được ba thành phần chính. Cái đầu tiên đơn giản là t. Cột thứ hai tương ứng với cột lon và cột thứ ba đến lat.
Tôi khớp hai thành phần chính sau với một biến có dạng , trong đó được trích xuất từ phân tích quang phổ của các thành phần. Chúng xảy ra có cùng tần số nhưng các pha khác nhau, điều này không gây ngạc nhiên khi có chuyển động tròn.ω , φasin(ωt+φ)ω,φ
Đó là nó. Để có được các giá trị được trang bị, bạn khôi phục dữ liệu từ các thành phần được trang bị bằng cách cắm chuyển vị của ma trận xoay PCA vào các thành phần chính được dự đoán. Mã R của tôi ở trên hiển thị các phần của quy trình và phần còn lại bạn có thể tìm ra dễ dàng.
Phần kết luận
Thật thú vị khi thấy PCA và các công cụ đơn giản khác mạnh đến mức nào khi nói đến các hiện tượng vật lý trong đó các quy trình cơ bản ổn định và các đầu vào chuyển thành đầu ra thông qua các mối quan hệ tuyến tính (hoặc tuyến tính hóa). Vì vậy, trong trường hợp của chúng ta, chuyển động tròn rất phi tuyến nhưng chúng ta dễ dàng tuyến tính hóa nó bằng cách sử dụng các hàm sin / cosine trên một tham số t thời gian. Lô đất của tôi được sản xuất chỉ với một vài dòng mã R như bạn đã thấy.
Mô hình hồi quy sẽ phản ánh quá trình cơ bản, sau đó chỉ bạn có thể mong đợi rằng các tham số của nó là có ý nghĩa. Nếu đây là một dù lượn trôi trong gió, thì một âm mưu phân tán đơn giản như trong câu hỏi ban đầu sẽ ẩn cấu trúc thời gian của quá trình.
Ngoài ra, hồi quy Excel là một phân tích cắt ngang, trong đó hồi quy tuyến tính hoạt động tốt nhất, trong khi dữ liệu của bạn là một quá trình chuỗi thời gian, trong đó các quan sát được sắp xếp theo thời gian. Phân tích chuỗi thời gian phải được áp dụng ở đây và nó được thực hiện trong hồi quy PCA.
Ghi chú về một chức năng
Vì một dù lượn đang tạo các vòng tròn, sẽ có nhiều vĩ độ tương ứng với một kinh độ duy nhất. Trong toán học, hàm ánh xạ một giá trị thành một giá trị . Đó là mối quan hệ nhiều-một, có nghĩa là nhiều có thể tương ứng với , nhưng không nhiều tương ứng với một . Đó là lý do tại sao không phải là một hàm, nói đúng ra.x y x y y x l a t = f ( l o n )y=f(x)xyxyyxlat=f(lon)