Резюме
Обобщение регрессии наименьших квадратов на комплексные переменные является простым, состоящим главным образом из замены транспонирования матриц сопряженными транспонированиями в обычных матричных формулах. Однако комплексная регрессия соответствует сложной многовариантной множественной регрессии, решение которой было бы намного сложнее получить с помощью стандартных (реальных переменных) методов. Таким образом, когда комплексная модель имеет смысл, настоятельно рекомендуется использовать комплексную арифметику для получения решения. Этот ответ также включает некоторые предлагаемые способы отображения данных и представления диагностических графиков подгонки.
Для простоты, давайте обсудим случай обычной (одномерной) регрессии, которая может быть записана
zj=β0+β1wj+εj.
Я взял на себя смелость назвать независимую переменную и зависимую переменную , что является общепринятым (см., Например, Lars Ahlfors, Complex Analysis ). Все, что следует, легко распространить на настройку множественной регрессии.ZWZ
интерпретация
Эта модель имеет легко визуализируемую геометрическую интерпретацию: умножение на будет масштаб по модулю и поворачивать его вокруг начала координат с помощью аргумента . Впоследствии добавление переводит результат на эту сумму. Эффект том, чтобы немного «дрожать» в этом переводе. Таким образом, регрессия на таким способом является попыткой понять совокупность 2D точек как возникающую из 2D точекw j β 1 β 1 β 0 ε j z j w j ( z j ) ( w j )β1 wjβ1β1β0εjzjwj(zj)(wj)посредством такого преобразования, допускающего некоторую ошибку в процессе. Это проиллюстрировано ниже с помощью фигуры под названием «Подходить как трансформация».
Обратите внимание, что изменение масштаба и вращение - это не просто линейное преобразование плоскости: например, они исключают перекос. Таким образом, эта модель отличается от двумерной множественной регрессии с четырьмя параметрами.
Обычные наименьшие квадраты
Чтобы связать сложный случай с реальным случаем, напишем
zj=xj+iyj для значений зависимой переменной и
wj=uj+ivj для значений независимой переменной.
Кроме того, для параметров напишите
β 1 = γ 1 + i δ 1β0=γ0+iδ0 и . β1=γ1+iδ1
Каждый из введенных новых терминов, конечно, действителен, и является мнимым, а индексирует данные.j = 1 , 2 , … , ni2=−1j=1,2,…,n
OLS находит и которые минимизируют сумму квадратов отклонений, β 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∗=X¯′
β^=(X∗X)−1X∗z.
В то же время, чтобы увидеть, что может быть достигнуто путем превращения этого в проблему чисто вещественных переменных, мы можем записать цель OLS в терминах реальных компонентов:
∑j=1n(xj−γ0−γ1uj+δ1vj)2+∑j=1n(yj−δ0−δ1uj−γ1vj)2.
Очевидно, это представляет две связанные реальные регрессии: одна из них регрессирует на и , другая регрессирует на и ; и мы требуем, чтобы коэффициент для был отрицательным по отношению к коэффициенту для а коэффициент для равен коэффициенту для . Более того, потому что общееu v y u v v x u y u x v y x yxuvyuvvxuyuxvyквадраты невязок от двух регрессий должны быть минимизированы, обычно это не тот случай, когда любой набор коэффициентов дает наилучшую оценку только для или . Это подтверждается в приведенном ниже примере, который выполняет две реальные регрессии отдельно и сравнивает их решения со сложной регрессией.xy
Этот анализ показывает, что переписывание сложной регрессии в терминах действительных частей (1) усложняет формулы, (2) затеняет простую геометрическую интерпретацию, и (3) потребует обобщенной многомерной множественной регрессии (с нетривиальными корреляциями между переменными ) решать. Мы можем сделать лучше.
пример
В качестве примера я использую сетку значений в целых точках вблизи начала координат в комплексной плоскости. К преобразованным значениям добавляются ошибки, имеющие двумерное распределение Гаусса: в частности, действительная и мнимая части ошибок не являются независимыми.w βwwβ
Трудно нарисовать обычную диаграмму рассеяния для комплексных переменных, потому что она будет состоять из точек в четырех измерениях. Вместо этого мы можем просмотреть матрицу рассеяния их реальной и мнимой частей.(wj,zj)
Не обращайте внимания на подгонку и посмотрите на верхние четыре строки и четыре левых столбца: они отображают данные. Круглая сетка видна в левом верхнем углу; у него балл. Диаграммы рассеяния компонентов относительно компонентов показывают четкие корреляции. Три из них имеют отрицательные корреляции; только (мнимая часть ) и (действительная часть ) имеют положительную корреляцию.81 W Z Y Z U Ww81wzyzuw
Для этих данных истинное значение равно . Он представляет собой расширение на и вращение против часовой стрелки на 120 градусов с последующим переводом на единиц влево и на единиц вверх. Я рассчитываю три подбора: комплексное решение наименьших квадратов и два решения OLS для и отдельно для сравнения.( - 20 + 5 я , - 3 / 4 + 3 / 4 √β3/220(уJ)(−20+5i,−3/4+3/43–√i)3/220( x j )5(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
Всегда будет случай, когда только реальный перехват согласуется с действительной частью комплексного перехвата, а мнимый перехват согласуется с мнимой частью сложного перехвата. Тем не менее, очевидно, что наклоны только для реального и только для мнимых типов не совпадают ни с комплексными коэффициентами наклона, ни друг с другом, в точности так, как прогнозировалось.
Давайте внимательнее посмотрим на результаты комплексной посадки. Во-первых, график остатков дает нам указание на их двумерное распределение Гаусса. (Базовое распределение имеет предельные стандартные отклонения и корреляцию .) Затем мы можем построить амплитуды остатков (представленных размерами круглых символов) и их аргументов (представленных цветами точно так же, как на первом графике) в зависимости от установленных значений: этот график должен выглядеть как случайное распределение размеров и цветов, что он и делает.0,820.8
Наконец, мы можем изобразить подгонку несколькими способами. Подгонка появилась в последних строках и столбцах матрицы диаграммы рассеяния ( qv ) и, возможно, стоит более внимательно рассмотреть этот момент. Внизу слева посадки изображены в виде открытых синих кружков, а стрелки (представляющие остатки) связывают их с данными, показанными сплошными красными кружками. Справа показаны как открытые черные круги, заполненные цветами, соответствующими их аргументам; они связаны стрелками с соответствующими значениями . Напомним, что каждая стрелка представляет расширение на вокруг начала координат, поворот на градусов и перевод на , плюс это двумерная ошибка Гасса.( г J ) 3 / 2 120 ( - 20 , 5 )(wj)(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)