Analisis dengan data yang kompleks, ada yang berbeda?

31

Katakan misalnya Anda sedang melakukan model linier, tetapi data kompleks.y

y=xβ+ϵ

Kumpulan data saya rumit, karena dalam semua angka dalam adalah dalam bentuk ( a + b i ) . Apakah ada yang berbeda secara prosedural ketika bekerja dengan data seperti itu?y(a+bi)

Saya bertanya karena, Anda akan mendapatkan matriks kovarian yang kompleks, dan menguji statistik yang dinilai kompleks.

Apakah Anda perlu menggunakan transpos konjugat alih-alih transpos ketika melakukan kuadrat terkecil? Apakah kovarians bernilai kompleks itu bermakna?

bill_e
sumber
3
Anggap bilangan kompleks sebagai dua variabel yang terpisah, dan dengan cara itu hapus i dari semua persamaan Anda. Kalau tidak, itu akan menjadi mimpi buruk ...
sashkello
Adakah informasi tentang atau β ? xβ
Stijn
3
@Sashkello Apa "mimpi buruk"? Dimensi yang dibelah dua ketika Anda menggunakan bilangan kompleks, jadi bisa dibilang itu penyederhanaan. Selain itu, Anda telah mengubah DV bivariat menjadi DV univariat , yang merupakan keuntungan besar. PeterRabbit: ya, transpos konjugat diperlukan. Matriks kovarians yang kompleks adalah Hermitean yang pasti-positif. Seperti rekan aslinya, ia masih memiliki nilai eigen nyata yang positif, yang menjawab pertanyaan tentang kebermaknaan.
whuber
2
@whuber Tidak masuk akal bagi saya untuk pergi ke bilangan kompleks jika masalahnya seperti yang ditunjukkan. Tidaklah mudah untuk berurusan dengan bilangan kompleks - jika tidak, tidak akan ada pertanyaan sama sekali di sini. Tidak semuanya akan bekerja dengan baik dengan bilangan kompleks dan itu bukan perubahan langsung jika Anda tidak tahu apa yang Anda lakukan. Mengubah masalah ini di ruang nyata adalah setara , dan Anda dapat menerapkan semua variasi teknik statistik tanpa khawatir apakah itu berfungsi atau tidak di ruang yang kompleks.
sashkello
1
@whuber Jawaban yang bagus dan penjelasan yang bagus. Saya akan mengatakan begitu Anda mendapatkan alih transformasi dari satu ke yang lain itu benar-benar tidak sulit ...
sashkello

Jawaban:

40

Ringkasan

Generalisasi regresi kuadrat-terkecil ke variabel-variabel bernilai kompleks adalah langsung, terutama terdiri dari penggantian transpos matriks dengan konjugat transpos dalam formula matriks biasa. Namun, regresi bernilai kompleks sesuai dengan regresi berganda multivariat yang rumit yang solusinya akan jauh lebih sulit diperoleh dengan menggunakan metode standar (variabel nyata). Dengan demikian, ketika model bernilai kompleks bermakna, menggunakan aritmatika kompleks untuk mendapatkan solusi sangat dianjurkan. Jawaban ini juga mencakup beberapa cara yang disarankan untuk menampilkan data dan menyajikan plot diagnostik kecocokan.


Untuk kesederhanaan, mari kita bahas kasus regresi biasa (univariat), yang dapat ditulis

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

Saya telah mengambil kebebasan menamai variabel independen dan variabel dependen Z , yang konvensional (lihat, misalnya, Lars Ahlfors, Analisis Kompleks ). Semua yang berikut ini mudah untuk memperluas ke pengaturan regresi berganda.WZ

Interpretasi

Model ini memiliki interpretasi geometris dengan mudah divisualisasikan: perkalian dengan akan rescale w j oleh modulus β 1 dan memutar di sekitar asal oleh argumen dari β 1 . Selanjutnya, menambahkan β 0 menerjemahkan hasilnya dengan jumlah ini. Efek dari ε j adalah "jitter" terjemahan yang sedikit. Dengan demikian, kemunduran yang z j pada w j dengan cara ini merupakan upaya untuk memahami koleksi poin 2D ( z j )β1 wjβ1β1β0εjzjwj(zj)seperti yang timbul dari konstelasi poin 2D melalui transformasi tersebut, memungkinkan untuk beberapa kesalahan dalam proses. Ini diilustrasikan di bawah ini dengan gambar berjudul "Fit as a Transformation."(wj)

Perhatikan bahwa pengubahan ukuran dan rotasi bukan sembarang transformasi linear dari bidang: mereka mengesampingkan transformasi miring, misalnya. Dengan demikian model ini tidak sama dengan regresi berganda bivariat dengan empat parameter.

Kotak Terkecil Biasa

Untuk menghubungkan kasing yang kompleks dengan kasing asli, mari menulis

untuk nilai-nilai variabel dependen danzj=xj+iyj

untuk nilai-nilai variabel independen.wj=uj+ivj

Selanjutnya untuk parameter tulis

dan β 1 = γ 1 + i δ 1 . β0=γ0+iδ0β1=γ1+iδ1

Setiap istilah baru yang diperkenalkan, tentu saja, nyata, dan adalah imajiner sementara j = 1 , 2 , , n mengindeks data.i2=1j=1,2,,n

OLS temuan ß 0 dan β 1 yang meminimalkan jumlah kuadrat penyimpangan,β^0β^1

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

Secara formal ini identik dengan formulasi matriks biasa: bandingkan dengan Satu-satunya perbedaan yang kami temukan adalah bahwa transpose dari matriks desain X digantikan oleh transpose konjugat X = ˉ X . Akibatnya solusi matriks formal adalah(zXβ)(zXβ).X X=X¯

β^=(XX)1Xz.

Pada saat yang sama, untuk melihat apa yang mungkin dicapai dengan melemparkan ini ke masalah yang benar-benar variabel nyata, kita dapat menuliskan tujuan OLS dalam hal komponen nyata:

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

Jelas ini mewakili dua regresi nyata yang terkait : salah satunya regresi pada u dan v , yang lain regresi y pada u dan v ; dan kami mensyaratkan bahwa koefisien v untuk x menjadi negatif dari koefisien u untuk y dan koefisien u untuk x sama dengan koefisien v untuk y . Apalagi karena jumlahnyaxuvyuvvxuyuxvykuadrat residu dari dua regresi harus diminimalkan, biasanya tidak akan menjadi kasus yang mana set koefisien memberikan estimasi terbaik untuk atau y saja. Ini dikonfirmasi dalam contoh di bawah ini, yang melakukan dua regresi nyata secara terpisah dan membandingkan solusi mereka dengan regresi kompleks.xy

Analisis ini membuatnya jelas bahwa menulis ulang regresi kompleks dalam hal bagian nyata (1) memperumit rumus, (2) mengaburkan interpretasi geometris sederhana, dan (3) akan membutuhkan regresi berganda multivariat umum (dengan korelasi nontrivial di antara variabel-variabel ) menyelesaikan. Kita bisa melakukan yang lebih baik.

Contoh

Sebagai contoh, saya mengambil kisi-kisi nilai pada titik-titik integral dekat asal dalam bidang kompleks. Ke nilai-nilai yang diubah w β ditambahkan kesalahan iid memiliki distribusi Gaussian bivariat: khususnya, bagian nyata dan imajiner dari kesalahan tidak independen.wwβ

Sulit untuk menarik sebar biasa untuk variabel yang kompleks, karena akan terdiri dari poin dalam empat dimensi. Sebaliknya, kita dapat melihat matriks sebar bagian nyata dan imajiner mereka.(wj,zj)

Matriks Scatterplot

Abaikan kecocokan untuk saat ini dan lihat di empat baris teratas dan empat kolom kiri: ini menampilkan data. Grid lingkaran terlihat jelas di kiri atas; ini memiliki 81 poin. Plot sebaran komponen w terhadap komponen z menunjukkan korelasi yang jelas. Tiga di antaranya memiliki korelasi negatif; hanya y (bagian imajiner dari z ) dan u (bagian nyata dari w ) yang berkorelasi positif.w81wzyzuw

Untuk data ini, nilai sebenarnya dari adalah ( - 20 + 5 i , - 3 / 4 + 3 / 4 β. Ini merupakan ekspansi dengan3/2dan rotasi berlawanan 120 derajat diikuti oleh terjemahan dari20unit ke kiri dan5unit up. Saya menghitung tiga kecocokan: solusi kuadrat terkecil kompleks dan dua solusi OLS untuk(xj)dan(yj)secara terpisah, untuk perbandingan.(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

Akan selalu menjadi kasus bahwa intersep hanya-nyata setuju dengan bagian nyata dari intersep kompleks dan intersep hanya imajiner setuju dengan bagian imajiner untuk intersep kompleks. Meskipun demikian, jelas bahwa lereng nyata-saja dan imajiner-saja tidak setuju dengan koefisien lereng kompleks atau dengan satu sama lain, persis seperti yang diperkirakan.

Mari kita lihat lebih dekat hasil dari fit kompleks. Pertama, sebidang residu memberi kita indikasi distribusi Gaussian bivariat. (Distribusi yang mendasari memiliki standar deviasi marjinal dan korelasi 0,8 .) Kemudian, kita dapat memplot besaran residual (diwakili oleh ukuran simbol lingkaran) dan argumen mereka (diwakili oleh warna persis seperti pada plot pertama) terhadap nilai yang dipasang: plot ini akan terlihat seperti distribusi acak ukuran dan warna, yang memang demikian.20.8

Sisa plot

Akhirnya, kita dapat menggambarkan kecocokan dalam beberapa cara. Kecocokan muncul di baris dan kolom terakhir dari matriks sebar ( qv ) dan mungkin patut dilihat lebih dekat pada titik ini. Di bawah ini di sebelah kiri pas diplot sebagai lingkaran dan panah biru terbuka (mewakili residu) sambungkan ke data, ditampilkan sebagai lingkaran merah pekat. Di sebelah kanan yang ditampilkan sebagai lingkaran hitam terbuka diisi dengan warna yang sesuai dengan argumen mereka; ini dihubungkan oleh panah dengan nilai-nilai yang sesuai dari ( z j ) . Ingat bahwa setiap panah merupakan ekspansi dengan 3 / 2 di sekitar titik asal, rotasi dengan 120(wj)(zj)3/2120derajat, dan terjemahan oleh , ditambah kesalahan bivariat Guassian.(20,5)

Cocok sebagai transformasi

Hasil ini, plot, dan plot diagnostik semuanya menunjukkan bahwa rumus regresi kompleks bekerja dengan benar dan mencapai sesuatu yang berbeda dari regresi linier terpisah dari bagian nyata dan imajiner dari variabel.

Kode

The Rkode untuk membuat data, cocok, dan plot muncul di bawah. Perhatikan bahwa solusi yang sebenarnya dari β diperoleh dalam satu baris kode. Pekerjaan tambahan - tetapi tidak terlalu banyak - akan diperlukan untuk mendapatkan keluaran kuadrat biasa: matriks varians-kovarians dari fit, kesalahan standar, nilai-p, dll.β^

#
# 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)
whuber
sumber
β^y
Jika semua dihitung dengan benar, kovarians akan tetap positif. Secara khusus, ini menyiratkan bahwa ketika Anda menggunakannya untuk menghitung kovarian dari bagian nyata atau bagian imajiner dari variabel, Anda akan mendapatkan angka positif, sehingga semua CI akan terdefinisi dengan baik.
whuber
β^
Juga, jika ketika saya menghitung nilai untuk statistik uji, saya mendapatkan angka seperti katakanlah, 3 + .1 * i. Untuk ini saya mengharapkan nomor tidak memiliki bagian imajiner. Apakah ini normal? Atau pertanda saya melakukan sesuatu yang salah?
bill_e
Saat Anda menghitung statistik pengujian dengan angka-angka kompleks, Anda akan mendapatkan hasil yang kompleks! Jika Anda memiliki alasan matematis mengapa statistik harus nyata, maka perhitungannya harus salah. Ketika bagian imajiner benar-benar kecil dibandingkan dengan bagian nyata, itu kemungkinan akumulasi kesalahan floating point dan biasanya aman untuk mematikannya ( zapsmalldalam R). Kalau tidak, itu pertanda ada sesuatu yang secara fundamental salah.
Whuber
5

Setelah google sesh panjang yang bagus, saya menemukan beberapa informasi yang relevan tentang memahami masalah secara alternatif. Ternyata masalah yang serupa agak umum dalam pemrosesan sinyal statistik. Alih-alih memulai dengan kemungkinan gaussian yang sesuai dengan kuadrat terkecil linier untuk data nyata, seseorang mulai dengan:

http://en.wikipedia.org/wiki/Complex_normal_distribution

Halaman wikipedia ini memberikan rundown yang memuaskan pada objek ini.

β^

Sumber lain yang saya temukan yang mencapai kesimpulan yang sama dengan whuber, tetapi mengeksplorasi penaksir lain seperti kemungkinan maksimum adalah: "Estimasi Model Regresi Linier Tidak Benar", dari Yan et al.

bill_e
sumber
1

Sementara @whuber memiliki jawaban yang diilustrasikan dengan indah dan dijelaskan dengan baik, saya pikir itu adalah model yang disederhanakan yang merindukan sebagian kekuatan ruang yang kompleks.

wβx

z=β0+β1w+ϵ

ϵ

Saya menyarankan agar regresi linier kompleks didefinisikan sebagai berikut:

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

Ada dua perbedaan utama.

β2

ϵ

Kembali ke model nyata, solusi kuadrat terkecil keluar meminimalkan kerugian, yang merupakan kemungkinan log-negatif. Untuk distribusi normal, ini 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μ

Berikut adalah gambar kepadatan distribusi normal yang kompleks:

Kepadatan distribusi normal univariat kompleks

b

Ini menyulitkan regresi walaupun saya cukup yakin solusinya masih analitis. Saya memecahkannya untuk kasus satu input, dan saya senang menuliskan solusi saya di sini, tetapi saya merasa bahwa whuber mungkin bisa menyelesaikan kasus umum.

Neil G
sumber
Terima kasih atas kontribusi ini. Saya tidak mengikutinya, karena saya tidak yakin (a) mengapa Anda memperkenalkan polinomial kuadratik, (b) apa yang sebenarnya Anda maksudkan dengan polinomial "sesuai", atau (c) model statistik apa yang Anda pas. Apakah Anda bisa menguraikannya?
whuber
@whuber Saya sudah menulis ulang sebagai model statistik. Tolong beri tahu saya jika masuk akal bagi Anda.
Neil G
zww¯ϵ
\Beta2
|x|2x2
1

Masalah ini telah muncul lagi di StaticExchange Mathematica dan jawaban saya / komentar panjang ada bahwa jawaban bagus @whuber harus diikuti.

Jawaban saya di sini adalah upaya untuk memperluas jawaban @whuber sedikit dengan membuat struktur kesalahan sedikit lebih eksplisit. Estimator kuadrat terkecil yang diusulkan adalah apa yang akan digunakan jika distribusi kesalahan bivariat memiliki korelasi nol antara komponen nyata dan imajiner. (Tetapi data yang dihasilkan memiliki korelasi kesalahan 0,8.)

ρ=0ρ0

Penaksir data dan kuadrat terkecil

ρ=0

estimasi kemungkinan maksimum dengan asumsi rho adalah nol

ρ=0

ρ

Estimasi kemungkinan maksimum termasuk rho

γ0δ0ργ1

Maksud saya dalam semua ini adalah bahwa model yang sesuai harus dibuat sepenuhnya eksplisit dan bahwa program aljabar simbolis dapat membantu meringankan kekacauan itu. (Dan, tentu saja, estimator kemungkinan maksimum mengasumsikan distribusi normal bivariat yang tidak diasumsikan oleh estimator kuadrat terkecil.)

Lampiran: Kode Mathematica lengkap

(* 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}} *)
JimB
sumber