Підсумок
Узагальнення регресії найменших квадратів до складних змінних є простим, що складається, головним чином, із заміни матричних транспозитів кон'югованими транспозитами у звичайних матричних формулах. Однак комплексна регресія відповідає складній багатоваріантній множинній регресії, рішення якої було б набагато складніше отримати за допомогою стандартних (реальної змінної) методи. Таким чином, коли складнозначна модель має сенс, настійно рекомендується використовувати складну арифметику для отримання рішення. Ця відповідь також включає деякі запропоновані способи відображення даних та подання діагностичних діаграм придатності.
Для простоти обговоримо випадок звичайної (універсальної) регресії, яку можна записати
zj=β0+β1wj+εj.
Я взяв на себе назву незалежної змінної і залежної змінної Z , яка є звичайною (див., Наприклад, Lars Ahlfors, комплексний аналіз ). Все, що випливає далі, прямо для того, щоб поширитись на параметри множинної регресії.WZ
Інтерпретація
Ця модель має легко візуалізувати геометричну інтерпретацію: множення на буде перемасштабіровать ш J по модулю р 1 і повернути його навколо початку координат з допомогою аргументу р 1 . Згодом додавання β 0 переводить результат на цю кількість. Ефект ε j полягає в тому, щоб трохи "затребувати" цей переклад. Таким чином, регресування z j на w j таким чином є зусиллям для розуміння набору 2D точок ( z j )β1 wjβ1β1β0εjzjwj(zj)як виникає із сузір'я 2D точок завдяки такому перетворенню, що допускає деяку помилку в процесі. Це проілюстровано нижче малюнком під назвою "Придатність як перетворення".(wj)
Зауважте, що масштабування та обертання - це не будь-яке лінійне перетворення площини: наприклад, вони виключають перекоси перетворень. Таким чином, ця модель не є такою ж, як двоваріантна множинна регресія з чотирма параметрами.
Звичайні найменші квадрати
Щоб з'єднати складний випадок з реальним випадком, напишемо
для значень залежної змінної таzj=xj+iyj
для значень незалежної змінної.wj=uj+ivj
Крім того, для параметрів запишіть
і β 1 = γ 1 + i δ 1 . β0=γ0+iδ0β1=γ1+iδ1
Кожен з нових введених термінів, звичайно, реальний, і є уявним, тоді як j = 1 , 2 , … , n індексує дані.i2=−1j=1,2,…,n
МНК знахідки р 0 і β 1 , що мінімізує суму квадратів відхилень,β^0β^1
∑j=1n||zj−(β^0+β^1wj)||2=∑j=1n(z¯j−(β^0¯+β^1¯w¯j))(zj−(β^0+β^1wj)).
Формально це ідентично звичайній матричній композиції: порівняйте її з Єдина відмінність, яку ми знаходимо, полягає в тому, що транспозиція проектної матриці X ' замінюється кон'югатом транспозиції X ∗ = ˉ X ′ . Отже, формальне рішення матриці є( z- Xβ)'( z- Xβ) .Х' Х∗= X¯'
β^= ( X∗Х)- 1Х∗z.
У той же час, щоб побачити, що може бути досягнуто шляхом внесення цього завдання до чисто реальної змінної проблеми, ми можемо написати ціль OLS з точки зору реальних компонентів:
∑j = 1н( хj- γ0- γ1уj+ δ1vj)2+ ∑j = 1н( уj- δ0- δ1уj- γ1vj)2.
Очевидно, це представляє дві пов'язані реальні регресії: одна з них регресує на u і v , інша регресує y на u і v ; і нам потрібно, щоб коефіцієнт v для x був від'ємним коефіцієнтом u для у, а коефіцієнт u для х рівний коефіцієнту v для у . Більше того, тому що загальнийхуvууvvхууухvуквадрати залишків від двох регресій мають бути зведені до мінімуму, зазвичай це не буде так, що будь-який набір коефіцієнтів дає найкращу оцінку лише для або y . Це підтверджено в прикладі нижче, в якому дві реальні регресії здійснюють окремо і порівнюють їх рішення зі складною регресією.ху
Цей аналіз робить очевидним, що переписання складної регресії з точки зору реальних частин (1) ускладнює формули, (2) затьмарює просту геометричну інтерпретацію і (3) потребує узагальненої багатовимірної множинної регресії (з нетривіальними кореляціями між змінними ) вирішувати. Ми можемо зробити краще.
Приклад
Як приклад, я беру сітку значень в цілісних точках, що знаходяться поблизу від початку в складній площині. До перетворених значень w β додаються iid помилки, що мають двовимірний гауссовий розподіл: зокрема, реальна та уявна частини помилок не є незалежними.шw β
Важко намалювати звичайний розсіювач для складних змінних, оскільки він складався б з точок у чотирьох вимірах. Натомість ми можемо переглянути матрицю розсіювання їх реальних та уявних частин.( шj, zj)
На даний момент проігноруйте відповідність і подивіться на чотири верхні рядки та чотири ліві стовпці: вони відображають дані. Кругла сітка видно в лівій верхній частині; вона має 81 бал. Розсіювання компонентів w проти компонентів z показують чіткі кореляції. Три з них мають негативні кореляції; тільки y (уявна частина z ) і u (реальна частина w ) позитивно корелюються.ш81шzуzуш
Для отримання цих даних, справжнє значення є ( - 20 + 5 я , - 3 / 4 + 3 / 4 √β. Він являє собою розширення,3/2і обертання проти годинникової стрілки на 120 градусівнаступним перекладом20одиниць зліва і5одиниць вгору. Я обчислюю три підходи: складне рішення з найменшими квадратами та два рішення OLS для(xj)та(yj)окремо для порівняння.( -20+5i,−3/4+3/43–√i)3 /2205( хj)( уj)
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
Завжди буде так, що перехоплення, що реалізується лише для реального, погоджується з реальною частиною складного перехоплення, а уявний лише перехоплення узгоджується з уявною частиною складного перехоплення. Вочевидь, однак, що реальні і уявні лише схили не узгоджуються зі складними коефіцієнтами схилу, ані між собою, точно так, як передбачено.
Давайте докладніше розглянемо результати комплексу. По-перше, сюжет залишків дає нам вказівку на їх двобічне гауссове поширення. (Базовий розподіл має граничні стандартні відхилення та кореляцію 0,8 . Тоді ми можемо побудувати величини залишків (представлені розмірами кругових символів) та їх аргументи (представлені кольорами точно так само, як у першому сюжеті) проти встановлених значень: цей графік повинен виглядати як випадковий розподіл розмірів і кольорів, який він робить.20,8
Нарешті, ми можемо зобразити пристосування кількома способами. Примітка з'явилася в останніх рядках і стовпцях матриці розсіювання ( qv ) і, можливо, варто детальніше ознайомитися з цією точкою. Зліва зліва фігурують у вигляді відкритих синіх кружечків, а стрілки (що представляють собою залишки) з'єднують їх із даними, зображеними як суцільні червоні кола. Праворуч зображені як відкриті чорні кола, заповнені кольорами, що відповідають їх аргументам; вони з'єднані стрілками до відповідних значень ( z j ) . Нагадаємо , що кожна стрілка представляє собою розширення, 3 / 2 навколо початку координат, поворот на 120( шj)( zj)3 / 2120градусів і переклад на , плюс та двозначна помилка Гаасія.( - 20 , 5 )
Ці результати, графіки та діагностичні діаграми свідчать про те, що складна формула регресії працює правильно і досягає чогось іншого, ніж окремі лінійні регресії реальних та уявних частин змінних.
Код
R
Код для створення даних, припадки, і ділянки , наводиться нижче. Слід зазначити , що фактичне рішення р виходить в одному рядку коду. Додаткова робота - але не надто велика - потрібна для отримання звичайних найменших квадратів: матриця дисперсії та коваріації пристосування, стандартні помилки, значення p тощо.β^
#
# 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)