Podsumowanie
Uogólnienie regresji metodą najmniejszych kwadratów do zmiennych o wartościach zespolonych jest proste, polegające przede wszystkim na zastąpieniu transpozycji macierzy transpozycjami sprzężonymi w zwykłych formułach macierzy. Jednak regresja o złożonej wartości odpowiada skomplikowanej regresji wielowymiarowej wieloczynnikowej, której rozwiązanie byłoby znacznie trudniejsze do uzyskania przy użyciu standardowych metod (zmiennej rzeczywistej). Dlatego, gdy model o wartościach zespolonych ma sens, zdecydowanie zaleca się stosowanie złożonej arytmetyki w celu uzyskania rozwiązania. Ta odpowiedź zawiera także kilka sugerowanych sposobów wyświetlania danych i prezentacji wykresów diagnostycznych dopasowania.
Dla uproszczenia omówmy przypadek regresji zwykłej (jednoczynnikowej), którą można zapisać
zj=β0+β1wj+εj.
Pozwoliłem sobie nazwać zmienną niezależną i zmienną zależną , która jest umowna (patrz na przykład Lars Ahlfors, Analiza złożona ). Wszystko, co następuje, można łatwo rozszerzyć na ustawienie regresji wielokrotnej.ZWZ
Interpretacja
Model ten łatwo uwidocznić interpretacji geometryczne: mnożenie przez będzie przeskalowanie przez moduł i obrócić ją wokół pochodzeniu argumentu . Następnie dodanie tłumaczy wynik o tę kwotę. Efektem jest „drżenie” tego tłumaczenia. Zatem regresowanie na w ten sposób jest próbą zrozumienia zbioru punktów 2D wynikającego z konstelacji punktów 2Dw j β 1 β 1 β 0 ε j z j w j ( z j ) ( w j )β1 wjβ1β1β0εjzjwj(zj)(wj)poprzez taką transformację, dopuszczając pewien błąd w procesie. Ilustruje to rysunek zatytułowany „Dopasuj jako transformację”.
Należy zauważyć, że przeskalowanie i obrót nie są po prostu żadną liniową transformacją płaszczyzny: wykluczają na przykład transformacje skośne. Zatem ten model nie jest tym samym co dwuwymiarowa regresja wielokrotna z czterema parametrami.
Zwykłe najmniejsze kwadraty
Aby połączyć złożoną sprawę ze sprawą prawdziwą, napiszmy
zj=xj+iyj dla wartości zmiennej zależnej i
wj=uj+ivj dla wartości zmiennej niezależnej.
Ponadto, dla parametrów napisz
β 1 = γ 1 + i δ 1β0=γ0+iδ0 i . β1=γ1+iδ1
Każdy z wprowadzonych nowych terminów jest oczywiście prawdziwy, a jest wyimaginowane, zaś indeksuje dane.j = 1 , 2 , … , ni2=−1j=1,2,…,n
OLS znajduje i które minimalizują sumę kwadratów odchyleń, β 1β^0β^1
∑j=1n||zj−(β^0+β^1wj)||2=∑j=1n(z¯j−(β^0¯+β^1¯w¯j))(zj−(β^0+β^1wj)).
Formalnie jest to identyczne ze zwykłym sformułowaniem macierzowym: porównaj to z Jedyną różnicą, którą widzimy, jest to, że transpozycja macierzy projektowej jest zastąpiona sprzężoną transpozycją . W związku z tym formalnym rozwiązaniem macierzy jestX ′ X ∗ = ˉ X ′(z−Xβ)′(z−Xβ).X′ X∗=X¯′
β^=(X∗X)−1X∗z.
Jednocześnie, aby zobaczyć, co można osiągnąć, umieszczając to w problemie o wyłącznie rzeczywistej zmiennej, możemy napisać cel OLS pod względem rzeczywistych składników:
∑j=1n(xj−γ0−γ1uj+δ1vj)2+∑j=1n(yj−δ0−δ1uj−γ1vj)2.
Widocznie ta obejmuje dwie połączone rzeczywiste regresji: jeden z nich ulega zmniejszeniu o i , do pozostałych cofa o i ; i wymagamy, aby współczynnik dla był ujemny współczynnika dla a współczynnik dla równy współczynnik dla . Ponadto, ponieważ ogółemu v y u v v x u y u x v y x yxuvyuvvxuyuxvykwadraty reszt z dwóch regresji należy zminimalizować, zwykle nie będzie tak, że którykolwiek zestaw współczynników da najlepsze oszacowanie dla samego lub . Potwierdza to poniższy przykład, w którym oddzielnie przeprowadza się dwie prawdziwe regresje i porównuje ich rozwiązania z regresją złożoną.xy
Ta analiza pokazuje, że przepisanie złożonej regresji w kategoriach części rzeczywistych (1) komplikuje formuły, (2) przesłania prostą interpretację geometryczną i (3) wymagałoby uogólnionej regresji wieloczynnikowej wielorakiej (z nietrywialnymi korelacjami między zmiennymi ) rozwiązać. Możemy zrobić lepiej.
Przykład
Jako przykład biorę siatkę wartościach w integralnych punktów pobliżu pochodzenia w płaszczyźnie zespolonej. Do przekształconych wartości dodaje się błędy id mające dwuwymiarowy rozkład Gaussa: w szczególności rzeczywiste i urojone części błędów nie są niezależne.w βwwβ
Trudno jest narysować zwykły wykres rozproszenia dla zmiennych złożonych, ponieważ składałby się on z punktów w czterech wymiarach. Zamiast tego możemy zobaczyć matrycę wykresu rozrzutu ich rzeczywistych i urojonych części.(wj,zj)
Na razie zignoruj dopasowanie i spójrz na cztery górne wiersze i cztery lewe kolumny: wyświetlają one dane. Okrągła siatka widoczna jest w lewym górnym rogu; ma punktów. Wykresy rozrzutu składników względem składników wykazują wyraźne korelacje. Trzy z nich mają ujemne korelacje; tylko (urojona część ) (rzeczywista część ) są dodatnio skorelowane.81 w z y z u ww81wzyzuw
Dla tych danych prawdziwą wartością jest . Reprezentuje rozszerzenie o i obrót o 120 stopni w kierunku przeciwnym do ruchu wskazówek zegara, a następnie przesunięcie o jednostek w lewo i jednostek w górę. Obliczam trzy pasowania: złożone rozwiązanie najmniejszych kwadratów i dwa rozwiązania OLS dla i osobno, dla porównania.( - 20 + 5 i , - 3 / 4 + 3 / 4 √β3/2205(xJ)(rj)(−20+5i,−3/4+3/43–√i)3/2205(xj)(yj)
Fit Intercept Slope(s)
True -20 + 5 i -0.75 + 1.30 i
Complex -20.02 + 5.01 i -0.83 + 1.38 i
Real only -20.02 -0.75, -1.46
Imaginary only 5.01 1.30, -0.92
Zawsze będzie tak, że przechwytywanie tylko rzeczywiste zgadza się z rzeczywistą częścią przechwytywania złożonego, a przechwytywanie tylko wyobrażeniowe zgadza się z częścią urojoną przechwytywania złożonego. Oczywiste jest jednak, że zbocza tylko rzeczywiste i wyobrażone nie zgadzają się ze złożonymi współczynnikami nachylenia ani ze sobą, dokładnie tak, jak przewidywano.
Przyjrzyjmy się bliżej wynikom złożonego dopasowania. Po pierwsze, wykres reszt zawiera wskazanie ich dwuwymiarowego rozkładu Gaussa. (Podstawowy rozkład ma marginalne odchylenia standardowe i korelację .) Następnie możemy wykreślić wielkości reszt (reprezentowane przez rozmiary okrągłych symboli) i ich argumenty (reprezentowane przez kolory dokładnie tak, jak na pierwszym wykresie) w stosunku do dopasowanych wartości: ta fabuła powinna wyglądać jak losowy rozkład rozmiarów i kolorów, co robi.0,820.8
Wreszcie możemy przedstawić dopasowanie na kilka sposobów. Dopasowanie pojawiło się w ostatnich wierszach i kolumnach macierzy wykresu rozrzutu ( qv ) i może być warte bliższego przyjrzenia się temu punktowi. Poniżej po lewej pasowania są wykreślone jako otwarte niebieskie kółka, a strzałki (reprezentujące resztki) łączą je z danymi, pokazanymi jako ciągłe czerwone kółka. Po prawej stronie są pokazane jako otwarte czarne kółka wypełnione kolorami odpowiadającymi ich argumentom; są one połączone strzałkami z odpowiednimi wartościami . Przypomnij sobie, że każda strzałka przedstawia rozszerzenie o wokół początku, obrót o stopni i tłumaczenie o , plus ten dwuwymiarowy błąd Guassiana.( z j ) 3 / 2 120 ( - 20 , 5 )(wj)(zj)3/2120(−20,5)
Te wyniki, wykresy i wykresy diagnostyczne wszystkie sugerują, że formuła regresji złożonej działa poprawnie i osiąga coś innego niż oddzielne regresje liniowe rzeczywistych i urojonych części zmiennych.
Kod
R
Kod do tworzenia danych, drgawki, a działki znajduje się poniżej. Zauważ, że rzeczywiste rozwiązanie uzyskuje się w jednym wierszu kodu. Dodatkowa praca - ale nie za duża - byłaby potrzebna do uzyskania zwykłego wyniku najmniejszych kwadratów: macierzy wariancji-kowariancji dopasowania, błędów standardowych, wartości p itp.β^
#
# Synthesize data.
# (1) the independent variable `w`.
#
w.max <- 5 # Max extent of the independent values
w <- expand.grid(seq(-w.max,w.max), seq(-w.max,w.max))
w <- complex(real=w[[1]], imaginary=w[[2]])
w <- w[Mod(w) <= w.max]
n <- length(w)
#
# (2) the dependent variable `z`.
#
beta <- c(-20+5i, complex(argument=2*pi/3, modulus=3/2))
sigma <- 2; rho <- 0.8 # Parameters of the error distribution
library(MASS) #mvrnorm
set.seed(17)
e <- mvrnorm(n, c(0,0), matrix(c(1,rho,rho,1)*sigma^2, 2))
e <- complex(real=e[,1], imaginary=e[,2])
z <- as.vector((X <- cbind(rep(1,n), w)) %*% beta + e)
#
# Fit the models.
#
print(beta, digits=3)
print(beta.hat <- solve(Conj(t(X)) %*% X, Conj(t(X)) %*% z), digits=3)
print(beta.r <- coef(lm(Re(z) ~ Re(w) + Im(w))), digits=3)
print(beta.i <- coef(lm(Im(z) ~ Re(w) + Im(w))), digits=3)
#
# Show some diagnostics.
#
par(mfrow=c(1,2))
res <- as.vector(z - X %*% beta.hat)
fit <- z - res
s <- sqrt(Re(mean(Conj(res)*res)))
col <- hsv((Arg(res)/pi + 1)/2, .8, .9)
size <- Mod(res) / s
plot(res, pch=16, cex=size, col=col, main="Residuals")
plot(Re(fit), Im(fit), pch=16, cex = size, col=col,
main="Residuals vs. Fitted")
plot(Re(c(z, fit)), Im(c(z, fit)), type="n",
main="Residuals as Fit --> Data", xlab="Real", ylab="Imaginary")
points(Re(fit), Im(fit), col="Blue")
points(Re(z), Im(z), pch=16, col="Red")
arrows(Re(fit), Im(fit), Re(z), Im(z), col="Gray", length=0.1)
col.w <- hsv((Arg(w)/pi + 1)/2, .8, .9)
plot(Re(c(w, z)), Im(c(w, z)), type="n",
main="Fit as a Transformation", xlab="Real", ylab="Imaginary")
points(Re(w), Im(w), pch=16, col=col.w)
points(Re(w), Im(w))
points(Re(z), Im(z), pch=16, col=col.w)
arrows(Re(w), Im(w), Re(z), Im(z), col="#00000030", length=0.1)
#
# Display the data.
#
par(mfrow=c(1,1))
pairs(cbind(w.Re=Re(w), w.Im=Im(w), z.Re=Re(z), z.Im=Im(z),
fit.Re=Re(fit), fit.Im=Im(fit)), cex=1/2)