Phân tích với dữ liệu phức tạp, có gì khác nhau?


31

Nói ví dụ bạn đang làm một mô hình tuyến tính, nhưng dữ liệu rất phức tạp.y

y=xβ+ϵ

Tập dữ liệu của tôi rất phức tạp, vì trong tất cả các số trong đều có dạng . Có bất cứ điều gì khác về thủ tục khi làm việc với dữ liệu đó?y(a+bi)

Tôi hỏi bởi vì, cuối cùng bạn sẽ nhận được ma trận hiệp phương sai phức tạp và thống kê kiểm tra có giá trị phức tạp ..

Bạn có cần sử dụng chuyển tiếp liên hợp thay vì chuyển vị khi thực hiện bình phương tối thiểu? một hiệp phương sai có giá trị có ý nghĩa?


3
Coi số phức là hai biến riêng biệt và cách đó loại bỏ i khỏi tất cả các phương trình của bạn. Nếu không, nó sẽ là một cơn ác mộng ...
sashkello

Có thông tin nào về hoặc không? xβ
Stijn

3
@Sashkello "Cơn ác mộng" là gì? Kích thước được giảm một nửa khi bạn sử dụng số phức, vì vậy có thể cho rằng đó là sự đơn giản hóa. Hơn nữa, bạn đã biến một DV bivariate thành một DV đơn biến , đó là một lợi thế rất lớn. PeterRợi: có, chuyển đổi liên hợp là cần thiết. Ma trận hiệp phương sai phức tạp là Hermitean dương-xác định. Giống như đối tác thực sự của nó, nó vẫn có giá trị thực tế tích cực, giải quyết câu hỏi về ý nghĩa.
whuber

2
@whuber Nó không có ý nghĩa với tôi bất cứ điều gì để đi vào số phức nếu vấn đề như được hiển thị. Nó không đơn giản để đối phó với các số phức - nếu không sẽ không có câu hỏi nào ở đây cả. Không phải mọi thứ sẽ hoạt động tốt với các số phức và đó không phải là một thay đổi đơn giản nếu bạn không biết bạn đang làm gì. Chuyển đổi vấn đề này trong không gian thực là tương đương , và bạn có thể áp dụng tất cả các kỹ thuật thống kê sau đó mà không phải lo lắng nếu nó hoạt động hay không trong không gian phức tạp.
sashkello

1
@whuber Câu trả lời hay và giải thích hay. Tôi sẽ nói ngay khi bạn vượt qua sự biến đổi từ người này sang người khác, điều đó thực sự không khó ...
sashkello

Câu trả lời:


40

Tóm lược

Việc khái quát hóa hồi quy bình phương nhỏ nhất cho các biến có giá trị phức tạp rất đơn giản, bao gồm chủ yếu là thay thế ma trận chuyển vị bằng cách hoán vị liên hợp trong các công thức ma trận thông thường. Mặc dù vậy, một hồi quy có giá trị phức tạp tương ứng với một hồi quy đa biến phức tạp phức tạp mà giải pháp của nó sẽ khó khăn hơn nhiều để sử dụng các phương pháp tiêu chuẩn (biến thực). Do đó, khi mô hình có giá trị phức tạp có ý nghĩa, nên sử dụng số học phức tạp để thu được giải pháp. Câu trả lời này cũng bao gồm một số cách được đề xuất để hiển thị dữ liệu và trình bày các sơ đồ chẩn đoán phù hợp.


Để đơn giản, hãy thảo luận về trường hợp hồi quy thông thường (đơn biến), có thể được viết

zj=β0+β1wj+εj.

Tôi đã tự do đặt tên biến độc lập và biến phụ thuộc , là thông thường (xem, ví dụ, Lars Ahlfors, Phân tích phức tạp ). Tất cả những điều tiếp theo là đơn giản để mở rộng đến cài đặt hồi quy bội.WZ

Diễn dịch

Mô hình này có một cách giải thích hình học dễ dàng hình dung: nhân bởi sẽ rescale bởi các mô đun của và xoay nó xung quanh nguồn gốc của các đối số của . Sau đó, thêm dịch kết quả theo số tiền này. Tác dụng của là "jitter" bản dịch đó một chút. Do đó, hồi quy trên theo cách này là một nỗ lực để hiểu bộ sưu tập các điểm 2D khi phát sinh từ một chòm sao các điểm 2Dβ1 wjβ1β1β0εjzjwj(zj)(wj)thông qua một chuyển đổi như vậy, cho phép một số lỗi trong quá trình. Điều này được minh họa dưới đây với hình có tiêu đề "Phù hợp như một sự chuyển đổi."

Lưu ý rằng việc thay đổi kích thước và xoay không chỉ là bất kỳ phép biến đổi tuyến tính nào của mặt phẳng: chẳng hạn, chúng loại trừ các phép biến đổi nghiêng. Do đó , mô hình này không giống như một hồi quy bội biến với bốn tham số.

Bình phương nhỏ nhất

Để kết nối trường hợp phức tạp với trường hợp thực tế, hãy viết

zj=xj+iyj cho các giá trị của biến phụ thuộc và

wj=uj+ivj cho các giá trị của biến độc lập.

Hơn nữa, đối với các tham số ghi

β0=γ0+iδ0 và . β1=γ1+iδ1

Tất cả một trong những thuật ngữ mới được giới thiệu là, tất nhiên, là thực và là tưởng tượng trong khi lập chỉ mục dữ liệu.i2=1j=1,2,,n

OLS tìm thấy và giúp giảm thiểu tổng bình phương sai lệch,β^0β^1

j=1n||zj(β^0+β^1wj)||2=j=1n(z¯j(β^0¯+β^1¯w¯j))(zj(β^0+β^1wj)).

Về mặt hình thức, nó giống hệt với công thức ma trận thông thường: so sánh nó với Sự khác biệt duy nhất mà chúng tôi tìm thấy là sự hoán vị của ma trận thiết kế được thay thế bằng chuyển vị liên hợp . Do đó , giải pháp ma trận chính thức là(zXβ)(zXβ).X X=X¯

β^=(XX)1Xz.

Đồng thời, để xem những gì có thể được thực hiện bằng cách chuyển vấn đề này thành một vấn đề hoàn toàn có thể biến thực, chúng ta có thể viết mục tiêu OLS ra về các thành phần thực:

j=1n(xjγ0γ1uj+δ1vj)2+j=1n(yjδ0δ1ujγ1vj)2.

Rõ ràng điều này đại diện cho hai hồi quy thực liên kết : một trong số đó hồi quy trên và , còn lại hồi quy trên và ; và chúng tôi yêu cầu hệ số cho là âm của hệ số đối và hệ số đối với bằng hệ số đối . Hơn nữa, vì tổng sốxuvyuvvxuyuxvybình phương của phần dư từ hai hồi quy sẽ được giảm thiểu, thông thường sẽ không phải là trường hợp một trong hai hệ số đưa ra ước tính tốt nhất cho riêng hoặc . Điều này được xác nhận trong ví dụ dưới đây, thực hiện hai hồi quy thực riêng biệt và so sánh các giải pháp của chúng với hồi quy phức tạp.xy

Phân tích này cho thấy rõ rằng việc viết lại hồi quy phức tạp theo các phần thực (1) làm phức tạp các công thức, (2) che khuất việc giải thích hình học đơn giản và (3) sẽ yêu cầu một hồi quy đa biến tổng quát (với các mối tương quan không cần thiết giữa các biến ) để giải quyết. Chúng ta có thể làm tốt hơn.

Thí dụ

Ví dụ, tôi lấy một lưới các giá trị tại các điểm tích phân gần gốc tọa độ trong mặt phẳng phức. Đối với các giá trị được chuyển đổi, được thêm vào các lỗi iid có phân phối Gaussian hai biến: đặc biệt, phần thực và phần ảo của các lỗi không độc lập.wwβ

Rất khó để vẽ biểu đồ phân tán thông thường của cho các biến phức tạp, bởi vì nó sẽ bao gồm các điểm theo bốn chiều. Thay vào đó, chúng ta có thể xem ma trận phân tán của phần thực và phần ảo của chúng.(wj,zj)

Ma trận phân tán

Bỏ qua sự phù hợp cho bây giờ và nhìn vào bốn hàng trên cùng và bốn cột bên trái: chúng hiển thị dữ liệu. Lưới tròn của hiển nhiên ở phía trên bên trái; nó có điểm. Các biểu đồ tán xạ của các thành phần của so với các thành phần của cho thấy mối tương quan rõ ràng. Ba trong số chúng có mối tương quan tiêu cực; chỉ có (phần ảo của ) và (phần thực của ) có mối tương quan dương.w81wzyzuw

Đối với những dữ liệu này, giá trị thực của là . Nó đại diện cho sự mở rộng và xoay ngược chiều kim đồng hồ 120 độ, sau đó dịch đơn vị sang trái và đơn vị lên. Tôi tính toán ba sự phù hợp: giải pháp bình phương tối thiểu phức tạp và hai giải pháp OLS cho và riêng biệt, để so sánh.β(20+5i,3/4+3/43i)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

Sẽ luôn luôn là trường hợp mà phần chặn chỉ thực sự đồng ý với phần thực của phần chặn phức tạp và phần chặn chỉ tưởng tượng đồng ý với phần tưởng tượng cho phần chặn phức tạp. Tuy nhiên, rõ ràng là các sườn chỉ có thực và chỉ tưởng tượng không đồng ý với các hệ số độ dốc phức tạp cũng như với nhau, chính xác như dự đoán.

Chúng ta hãy xem xét kỹ hơn về kết quả của sự phù hợp phức tạp. Đầu tiên, một âm mưu của phần dư cho chúng ta một dấu hiệu của phân phối Gaussian bivariate của chúng. (Phân phối cơ bản có độ lệch chuẩn là và tương quan là ). đối với các giá trị được trang bị: âm mưu này sẽ trông giống như một sự phân phối ngẫu nhiên về kích thước và màu sắc.20.8

Lô dư

Cuối cùng, chúng ta có thể mô tả sự phù hợp theo nhiều cách. Sự phù hợp xuất hiện trong các hàng và cột cuối cùng của ma trận phân tán ( qv ) và có thể đáng xem xét kỹ hơn về điểm này. Bên dưới bên trái, các khớp nối được vẽ dưới dạng các vòng tròn và mũi tên màu xanh mở (đại diện cho phần dư) kết nối chúng với dữ liệu, được hiển thị dưới dạng các vòng tròn màu đỏ. Ở bên phải được hiển thị dưới dạng các vòng tròn màu đen mở với đầy màu sắc tương ứng với các đối số của chúng; chúng được kết nối bằng các mũi tên với các giá trị tương ứng của . Hãy nhớ lại rằng mỗi mũi tên biểu thị sự mở rộng xung quanh gốc tọa độ, xoay độ và dịch theo , cộng với lỗi Guassian bivariate.(wj)(zj)3/2120(20,5)

Phù hợp như biến đổi

Các kết quả này, các ô và các ô chẩn đoán đều cho thấy công thức hồi quy phức tạp hoạt động chính xác và đạt được một cái gì đó khác với các hồi quy tuyến tính riêng biệt của các phần thực và phần ảo của các biến.

Các Rmã để tạo ra các dữ liệu, ngất xỉu, và âm mưu xuất hiện bên dưới. Lưu ý rằng giải pháp thực tế của thu được trong một dòng mã. Công việc bổ sung - nhưng không quá nhiều - sẽ cần thiết để có được đầu ra bình phương nhỏ nhất thông thường: ma trận phương sai hiệp phương sai của sự phù hợp, lỗi tiêu chuẩn, giá trị p, v.v.β^

#
# 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)

Tôi đã có một câu hỏi tiếp theo, về công cụ ước tính và hiệp phương sai của nó. Khi tôi giải quyết vấn đề của mình với phức tạp , ma trận hiệp phương sai (mà tôi ước tính bằng cách sử dụng phần dư phù hợp) của công cụ ước tính của tôi có các phần thực và ảo. Tôi không chắc làm thế nào điều này hoạt động. Là phần ảo của hiệp phương sai chỉ liên quan đến phần ảo của công cụ ước tính (giống với phần thực)? Nếu tôi muốn vẽ đồ thị của CI, tôi không chắc chắn về cách này ... Các phần thực và phần ảo của công cụ ước tính có cùng CI không? Có thể bao gồm một chút thông tin về điều này trong lời giải thích của bạn? Cảm ơn bạn! β^y
bill_e

Nếu tất cả được tính toán chính xác, hiệp phương sai vẫn sẽ dương - xác định. Cụ thể, điều này ngụ ý rằng khi bạn sử dụng nó để tính hiệp phương sai của phần thực hoặc phần ảo của một biến, bạn sẽ nhận được một số dương, vì vậy tất cả các CI sẽ được xác định rõ.
whuber

Ma trận Cov là bán xác định dương, nhưng tôi đoán điều tôi bối rối là nơi bạn nói: "khi bạn sử dụng nó để tính hiệp phương sai của phần thực hoặc phần ảo của một biến". Tôi giả định rằng khi tôi tính toán một CI, nó sẽ có phần thực và phần ảo, tương ứng với phần thực và phần ảo của một phần tử của . Điều này dường như không phải là trường hợp mặc dù. Bạn có biết tại sao không? β^
bill_e

Ngoài ra, nếu tôi tính các giá trị cho thống kê kiểm tra, tôi nhận được các số như nói, 3 + .1 * i. Đối với điều này, tôi đã mong đợi con số không có phần tưởng tượng. Điều này có bình thường không? Hoặc một dấu hiệu tôi đang làm gì đó sai?
bill_e

Khi bạn tính toán thống kê kiểm tra với các số phức, bạn sẽ nhận được kết quả phức tạp! Nếu bạn có một lý do toán học tại sao số liệu thống kê phải là thực, thì phép tính phải sai. Khi phần tưởng tượng thực sự rất nhỏ so với phần thực, đó có khả năng là lỗi tích lũy dấu phẩy động và thường sẽ an toàn để loại bỏ nó ( zapsmalltrong R). Nếu không, đó là một dấu hiệu gì đó về cơ bản là sai.
whuber

5

Sau một sesh google dài, tôi tìm thấy một số thông tin liên quan để hiểu vấn đề theo cách khác. Nó chỉ ra các vấn đề tương tự là hơi phổ biến trong xử lý tín hiệu thống kê. Thay vì bắt đầu với khả năng gaussian tương ứng với bình phương tối thiểu tuyến tính cho dữ liệu thực, người ta bắt đầu bằng:

http://en.wikipedia.org/wiki/Complex_n normal_distribution

Trang wikipedia này cung cấp một danh sách thỏa đáng về đối tượng này.

Cụ thể, nếu bạn có thể giả sử rằng phân phối công cụ ước tính của bạn là gaussian đa biến, thì trong trường hợp dữ liệu phức tạp, người ta sẽ sử dụng thông thường phức tạp. Tính toán hiệp phương sai của công cụ ước tính này hơi khác một chút và được đưa ra trên trang wiki. β^

Một nguồn khác mà tôi thấy có kết luận tương tự như whuber, nhưng khám phá các công cụ ước tính khác như khả năng tối đa là: "Ước tính các mô hình hồi quy tuyến tính không phù hợp", từ Yan et al.


1

Trong khi @whuber có một câu trả lời được minh họa đẹp mắt và được giải thích rõ ràng, tôi nghĩ đó là một mô hình đơn giản hóa mà bỏ lỡ một số sức mạnh của không gian phức tạp.

wβx

z=β0+β1w+ϵ

ϵ

Tôi đề nghị rằng hồi quy tuyến tính phức tạp được định nghĩa như sau:

z=β0+β1w+β2w¯+ϵ

Có hai sự khác biệt chính.

β2

ϵ

Quay trở lại mô hình thực tế, giải pháp bình phương tối thiểu thông thường đưa ra tối thiểu hóa tổn thất, đó là khả năng log âm. Đối với phân phối bình thường, đây là parabola:

y=ax2+cx+d.

x=z(β0+β1w)acd

y=a|x|2+(bx2+cx)+d.

cdabb

[xμxμ¯]H[suu¯s¯]1[xμxμ¯]+d
s,u,μ,dsuμ

Đây là hình ảnh về mật độ phân phối bình thường phức tạp:

Mật độ của một phân phối bình thường đơn biến phức tạp

b

Điều này làm phức tạp hồi quy mặc dù tôi khá chắc chắn rằng giải pháp vẫn mang tính phân tích. Tôi đã giải quyết nó cho trường hợp một đầu vào, và tôi rất vui khi sao chép giải pháp của mình ở đây, nhưng tôi có cảm giác rằng whuber có thể giải quyết trường hợp chung.


Cảm ơn bạn đã đóng góp. Mặc dù vậy, tôi không theo dõi nó bởi vì tôi không chắc chắn (a) tại sao bạn giới thiệu một đa thức bậc hai, (b) ý nghĩa thực sự của bạn về đa thức "tương ứng", hoặc (c) mô hình thống kê nào bạn phù hợp. Bạn có thể giải thích những thứ đó không?
whuber

@whuber Tôi đã viết lại nó như một mô hình thống kê. Xin vui lòng cho tôi biết nếu có ý nghĩa với bạn.
Neil G

zww¯ϵ

\Beta2

|x|2x2

1

Vấn đề này có đưa ra một lần nữa trên Mathematica StackExchange và trả lời / bình luận mở rộng của tôi ở đó là @whuber 's câu trả lời xuất sắc nên được tuân thủ.

Câu trả lời của tôi ở đây là một nỗ lực để mở rộng câu trả lời của @whuber chỉ một chút bằng cách làm cho cấu trúc lỗi rõ ràng hơn một chút. Công cụ ước tính bình phương tối thiểu được đề xuất là những gì người ta sẽ sử dụng nếu phân phối lỗi bivariate có mối tương quan bằng không giữa các thành phần thực và ảo. (Nhưng dữ liệu được tạo có tương quan lỗi là 0,8.)

ρ=0ρ0

Dữ liệu và ước lượng bình phương nhỏ nhất

ρ=0

ước tính khả năng tối đa giả sử rho bằng không

ρ=0

ρ

Ước tính khả năng tối đa bao gồm rho

γ0δ0ργ1

Quan điểm của tôi trong tất cả những điều này là mô hình phù hợp cần phải được thực hiện hoàn toàn rõ ràng và các chương trình đại số tượng trưng có thể giúp giảm bớt sự lộn xộn. (Và, tất nhiên, các công cụ ước tính khả năng tối đa giả định phân phối chuẩn bivariate mà các công cụ ước tính bình phương nhỏ nhất không giả định.)

Phụ lục: Mã Mathicala đầy đủ

(* Predictor variable *)
w = {0 - 5 I, -3 - 4 I, -2 - 4 I, -1 - 4 I, 0 - 4 I, 1 - 4 I, 2 - 4 I,
    3 - 4 I, -4 - 3 I, -3 - 3 I, -2 - 3 I, -1 - 3 I, 0 - 3 I, 1 - 3 I,
    2 - 3 I, 3 - 3 I, 4 - 3 I, -4 - 2 I, -3 - 2 I, -2 - 2 I, -1 - 2 I,
    0 - 2 I, 1 - 2 I, 2 - 2 I, 3 - 2 I, 
   4 - 2 I, -4 - 1 I, -3 - 1 I, -2 - 1 I, -1 - 1 I, 0 - 1 I, 1 - 1 I, 
   2 - 1 I, 3 - 1 I, 
   4 - 1 I, -5 + 0 I, -4 + 0 I, -3 + 0 I, -2 + 0 I, -1 + 0 I, 0 + 0 I,
    1 + 0 I, 2 + 0 I, 3 + 0 I, 4 + 0 I, 
   5 + 0 I, -4 + 1 I, -3 + 1 I, -2 + 1 I, -1 + 1 I, 0 + 1 I, 1 + 1 I, 
   2 + 1 I, 3 + 1 I, 4 + 1 I, -4 + 2 I, -3 + 2 I, -2 + 2 I, -1 + 2 I, 
   0 + 2 I, 1 + 2 I, 2 + 2 I, 3 + 2 I, 
   4 + 2 I, -4 + 3 I, -3 + 3 I, -2 + 3 I, -1 + 3 I, 0 + 3 I, 1 + 3 I, 
   2 + 3 I, 3 + 3 I, 4 + 3 I, -3 + 4 I, -2 + 4 I, -1 + 4 I, 0 + 4 I, 
   1 + 4 I, 2 + 4 I, 3 + 4 I, 0 + 5 I};
(* Add in a "1" for the intercept *)
w1 = Transpose[{ConstantArray[1 + 0 I, Length[w]], w}];

z = {-15.83651 + 7.23001 I, -13.45474 + 4.70158 I, -13.63353 + 
    4.84748 I, -14.79109 + 4.33689 I, -13.63202 + 
    9.75805 I, -16.42506 + 9.54179 I, -14.54613 + 
    12.53215 I, -13.55975 + 14.91680 I, -12.64551 + 
    2.56503 I, -13.55825 + 4.44933 I, -11.28259 + 
    5.81240 I, -14.14497 + 7.18378 I, -13.45621 + 
    9.51873 I, -16.21694 + 8.62619 I, -14.95755 + 
    13.24094 I, -17.74017 + 10.32501 I, -17.23451 + 
    13.75955 I, -14.31768 + 1.82437 I, -13.68003 + 
    3.50632 I, -14.72750 + 5.13178 I, -15.00054 + 
    6.13389 I, -19.85013 + 6.36008 I, -19.79806 + 
    6.70061 I, -14.87031 + 11.41705 I, -21.51244 + 
    9.99690 I, -18.78360 + 14.47913 I, -15.19441 + 
    0.49289 I, -17.26867 + 3.65427 I, -16.34927 + 
    3.75119 I, -18.58678 + 2.38690 I, -20.11586 + 
    2.69634 I, -22.05726 + 6.01176 I, -22.94071 + 
    7.75243 I, -28.01594 + 3.21750 I, -24.60006 + 
    8.46907 I, -16.78006 - 2.66809 I, -18.23789 - 
    1.90286 I, -20.28243 + 0.47875 I, -18.37027 + 
    2.46888 I, -21.29372 + 3.40504 I, -19.80125 + 
    5.76661 I, -21.28269 + 5.57369 I, -22.05546 + 
    7.37060 I, -18.92492 + 10.18391 I, -18.13950 + 
    12.51550 I, -22.34471 + 10.37145 I, -15.05198 + 
    2.45401 I, -19.34279 - 0.23179 I, -17.37708 + 
    1.29222 I, -21.34378 - 0.00729 I, -20.84346 + 
    4.99178 I, -18.01642 + 10.78440 I, -23.08955 + 
    9.22452 I, -23.21163 + 7.69873 I, -26.54236 + 
    8.53687 I, -16.19653 - 0.36781 I, -23.49027 - 
    2.47554 I, -21.39397 - 0.05865 I, -20.02732 + 
    4.10250 I, -18.14814 + 7.36346 I, -23.70820 + 
    5.27508 I, -25.31022 + 4.32939 I, -24.04835 + 
    7.83235 I, -26.43708 + 6.19259 I, -21.58159 - 
    0.96734 I, -21.15339 - 1.06770 I, -21.88608 - 
    1.66252 I, -22.26280 + 4.00421 I, -22.37417 + 
    4.71425 I, -27.54631 + 4.83841 I, -24.39734 + 
    6.47424 I, -30.37850 + 4.07676 I, -30.30331 + 
    5.41201 I, -28.99194 - 8.45105 I, -24.05801 + 
    0.35091 I, -24.43580 - 0.69305 I, -29.71399 - 
    2.71735 I, -26.30489 + 4.93457 I, -27.16450 + 
    2.63608 I, -23.40265 + 8.76427 I, -29.56214 - 2.69087 I};

(* whuber 's least squares estimates *)
{a, b} = Inverse[ConjugateTranspose[w1].w1].ConjugateTranspose[w1].z
(* {-20.0172+5.00968 \[ImaginaryI],-0.830797+1.37827 \[ImaginaryI]} *)

(* Break up into the real and imaginary components *)
x = Re[z];
y = Im[z];
u = Re[w];
v = Im[w];
n = Length[z]; (* Sample size *)

(* Construct the real and imaginary components of the model *)
(* This is the messy part you probably don't want to do too often with paper and pencil *)
model = \[Gamma]0 + I \[Delta]0 + (\[Gamma]1 + I \[Delta]1) (u + I v);
modelR = Table[
   Re[ComplexExpand[model[[j]]]] /. Im[h_] -> 0 /. Re[h_] -> h, {j, n}];
(* \[Gamma]0+u \[Gamma]1-v \[Delta]1 *)
modelI = Table[
   Im[ComplexExpand[model[[j]]]] /. Im[h_] -> 0 /. Re[h_] -> h, {j, n}];
(* v \[Gamma]1+\[Delta]0+u \[Delta]1 *)

(* Construct the log of the likelihood as we are estimating the parameters associated with a bivariate normal distribution *)
logL = LogLikelihood[
   BinormalDistribution[{0, 0}, {\[Sigma]1, \[Sigma]2}, \[Rho]],
   Transpose[{x - modelR, y - modelI}]];

mle0 = FindMaximum[{logL /. {\[Rho] -> 
      0, \[Sigma]1 -> \[Sigma], \[Sigma]2 -> \[Sigma]}, \[Sigma] > 
    0}, {\[Gamma]0, \[Delta]0, \[Gamma]1, \[Delta]1, \[Sigma]}]
(* {-357.626,{\[Gamma]0\[Rule]-20.0172,\[Delta]0\[Rule]5.00968,\[Gamma]1\[Rule]-0.830797,\[Delta]1\[Rule]1.37827,\[Sigma]\[Rule]2.20038}} *)

(* Now suppose we don't want to restrict \[Rho]=0 *)
mle1 = FindMaximum[{logL /. {\[Sigma]1 -> \[Sigma], \[Sigma]2 -> \[Sigma]}, \[Sigma] > 0 && -1 < \[Rho] < 
     1}, {\[Gamma]0, \[Delta]0, \[Gamma]1, \[Delta]1, \[Sigma], \[Rho]}]
(* {-315.313,{\[Gamma]0\[Rule]-20.0172,\[Delta]0\[Rule]5.00968,\[Gamma]1\[Rule]-0.763237,\[Delta]1\[Rule]1.30859,\[Sigma]\[Rule]2.21424,\[Rho]\[Rule]0.810525}} *)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.