Önceden belirlenmiş bir sparite paterni ile simetrik pozitif tanımlı matris üretin


9

Önceden belirlenmiş bir sparite yapısı ( düğümleri üzerinde bir grafik tarafından belirtilen) ile bir korelasyon matrisi (simetrik psd) üretmeye çalışıyorum . Grafikte bağlı olan düğümler korelasyonuna sahiptir , geri kalanı 0 ve köşegen hepsi 1'dir.pxppρ~U(0,1)

Bu matrisi birkaç kez oluşturmayı denedim, ancak nadiren geçerli bir korelasyon matrisi elde ettim.

Ben bir korelasyon matris whp sağlamak bir yolu var mı? Ben sadece pozitif korelasyon olabilir bu yüzden vb bir seçenek değildir unutmayın.ρ~U(-1,1)

Herhangi bir yardım büyük beğeni topluyor!


Belki R'deki Matrix paketinin nearPD işlevi yardımcı olabilir.
niandra82

Sizin için sabit olan seyreklik ölçünüz nedir? Verileriniz ikili mi yoksa negatif olmayan mı olmalıdır?
ttnphns

@ niandra82: nearPD matrisin seyrini yok edeceğinden iyi değil.
Blade Runner

1
Genel olarak, bu soruda anlatıldığı gibi böyle bir matris dağılımı yoktur. Örneğin, üç katsayı olan durumunu ele alalım . Eğer ve3x3ρ,σ,ττ=0ρ>0,σ>0 , daha sonraρ2+σ2<1yalnızca ve matris pozitif tanımlıysa. Ama sonra ikisine birden sahip olamazsınρ~U(0,1) ve σ~U(0,1).
whuber

3
O zaman neden ilk önce korelasyon matrisini oluşturmuyoruz. Daha sonra, bu matris için dizinlenmiş öğeleri 0'a zorladığınız bir simetrik dizin oluşturun. Sparcity, dizin büyüklüğüne göre belirtilir ve r'deki örnek gibi bir işlev aracılığıyla rasgele rastgele olabilirsiniz. Kaç tane çapraz elemanı 0'a zorlarsanız zorlayın, matix hala pd olacaktır
Zachary Blumenfeld

Yanıtlar:


2

@Rodrigo de Azevedo için hiçbir puro ama kapatın.

Çözüm, maksimum değeri bulmak için semidefinite programlama kullanmak, ρmbirxve minimum değer (negatif olmayan duruma bağlı), ρmbenn, nın-nin ρöyle ki, öngörülen azlık paterni ile korelasyon matrisi pozitif semidefinit (psd) olacaktır. Tüm değerleriρ öyle ki ρmbirxρρmbirx, psd matrisleri üretecek (okuyucu için egzersiz)

Bu nedenle, ρ yalnızca değerleri alabilir [ρmbirx,ρmbirx]veya kabul / reddetme yöntemini kullanmanız ve oluşturulan ρ psd matrisi üretmeyenler.

MATLAB altında YALMIP kullanan 4'e 4 matris örneği

sdpvar rho % declare rho to be a scalar variable
% find maximum value of rho (by minimizing -rho) subject to prescribed matrix being psd.
optimize([1 0 rho 0;0 1 rho 0;rho rho 1 rho;0 0 rho 1] >= 0,-rho) 
% find minimum value of rho subject to prescribed matrix being psd and rho being >= 0.
optimize([[1 0 rho 0;0 1 rho 0;rho rho 1 rho;0 0 rho 1] >= 0,rho >= 0],rho) 

Sonuçlar: maksimum rho = 0.57735, minimum rho = 0. Boyut veya sparite örüntüsü ne olursa olsun, sıfırın rho'nun negatif ve öngörülen matrisin psd olduğu asgari rho değeri olacağı açıkça görülmektedir. Bu nedenle, minimum negatif olmayan değerini bulmak için semidefinite optimizasyonunu çalıştırmak gereksizdir.ρ.


4
Bu, sorunun ilginç bir yorumudur: sıfırdan farklı tüm köşegen olmayan katsayıların eşit olduğunu varsayar (böylece problemi muazzam derecede basitleştirir). Bunun amaçlanan yorum olup olmadığı veya sıfır olmayan tüm diyagonal katsayıların ortak bir dağıtımdan bağımsız gerçekleşmeler olup olmadığı açık değildir .
whuber

Yaptığım yorum bu. Şimdi bahsettiğinize göre, farklı bir yorumun mümkün olduğunu görebiliyordum. En azından benim yorumum oldukça iyi tanımlanmış bir soruna yol açma erdemine sahip. Her ne kadar çözümünü araştırmamış olduğum bir problemin, korelasyon matrisinin bir üçgeni içindeki sıfırdan farklı diyagonal olmayan elemanların mutlaka eşit olmayan negatif değerlerle doldurulabileceği şekilde ρ maksimum değerini bulmak için formüle edilebileceğini düşünüyorum. bu değer ve mutlaka tamamen doldurulmuş matris psd olun.
Mark L. Stone

0

Bir korelasyon matrisi simetrik, pozitif semidefinittir ve 1ana köşegeninde. Bir bulabilirsiniznxnobjektif fonksiyonun keyfi olduğu (örneğin, sıfır fonksiyon) aşağıdaki semidefinite programını (SDP) çözerek korelasyon matrisi

küçültmekÖn,Xtabix11=x22==xnn=1XÖn

Eğer kişi kısıtlama gibi ek kısıtlamalara sahipse

xbenj=0 hepsi için (ben,j)Z[n]x[n]

ve olumsuzluk kısıtlamaları, XÖn, sonra aşağıdaki SDP çözülür

küçültmekÖn,Xtabix11=x22==xnn=1xbenj=0 hepsi için (ben,j)Z[n]x[n]XÖnXÖn

bir 3x3 misal

Diyelim ki sahip olmak istiyoruz x13=0 ve x12,x230. İşte bir MATLAB + CVX betiği,

cvx_begin sdp

    variable X(3,3) symmetric

    minimize( trace(zeros(3,3)*X) )
    subject to

        % put ones on the main diagonal
        X(1,1)==1
        X(2,2)==1
        X(3,3)==1

        % put a zero in the northeast and southwest corners
        X(1,3)==0

        % impose nonnegativity
        X(1,2)>=0
        X(2,3)>=0

        % impose positive semidefiniteness
        X >= 0

cvx_end

Senaryoyu çalıştırmak,

Calling sedumi: 8 variables, 6 equality constraints
------------------------------------------------------------
SeDuMi 1.21 by AdvOL, 2005-2008 and Jos F. Sturm, 1998-2003.
Alg = 2: xz-corrector, Adaptive Step-Differentiation, theta = 0.250, beta = 0.500
eqs m = 6, order n = 6, dim = 12, blocks = 2
nnz(A) = 8 + 0, nnz(ADA) = 36, nnz(L) = 21
 it :     b*y       gap    delta  rate   t/tP*  t/tD*   feas cg cg  prec
  0 :            3.00E+000 0.000
  1 : -1.18E-001 6.45E-001 0.000 0.2150 0.9000 0.9000   1.86  1  1  1.2E+000
  2 : -6.89E-004 2.25E-002 0.000 0.0349 0.9900 0.9900   1.52  1  1  3.5E-001
  3 : -6.48E-009 9.72E-007 0.097 0.0000 1.0000 1.0000   1.01  1  1  3.8E-006
  4 : -3.05E-010 2.15E-009 0.000 0.0022 0.9990 0.9990   1.00  1  1  1.5E-007
  5 : -2.93E-016 5.06E-015 0.000 0.0000 1.0000 1.0000   1.00  1  1  3.2E-013

iter seconds digits       c*x               b*y
  5      0.3   5.8  0.0000000000e+000 -2.9302886987e-016
|Ax-b| =  1.7e-015, [Ay-c]_+ =  6.1E-016, |x|= 2.0e+000, |y|= 1.5e-015

Detailed timing (sec)
   Pre          IPM          Post
1.563E-001    2.500E-001    1.094E-001    
Max-norms: ||b||=1, ||c|| = 0,
Cholesky |add|=0, |skip| = 0, ||L.L|| = 1.
------------------------------------------------------------
Status: Solved
Optimal value (cvx_optval): +0

CVX'in hangi çözümü bulduğunu görelim,

>> X

X =

    1.0000    0.4143         0
    0.4143    1.0000    0.4143
         0    0.4143    1.0000

Bu matris pozitif semidefinit mi? Olumlu kesin mi?

>> rank(X)

ans =

     3

>> eigs(X)

ans =

    1.5860
    1.0000
    0.4140

Beklendiği gibi, pozitif tanımlayıcıdır. Sıfır (doğrusal) objektif bir fonksiyon seçerek pozitif semidefinite korelasyon matrislerini bulabiliriz.


Bu sitede "oluştur" ifadesinin "rastgele dağıtımdan çekme" anlamına geldiği için, kodunuzun nasıl rasgele korelasyon matrisleri ürettiğini açıklayabilir ve hangi dağılımı izlediklerini gösterebilir misiniz?
whuber

@whuber OP imkansızı istiyor. Buna 1 Ocak 2015'te yorum yaptınız. Rastgele korelasyon matrisleri oluşturmak istiyorsanız, rasgele bir kare matris oluşturun ve yukarıdaki yarım kenarlı programdaki nesnel işlevde kullanın. Veya, küp üzerinde tekdüze olan rastgele bir değişkenin gerçekleşmelerini oluşturun
[-1,1](n2)
bunları (korelasyon) matrislerinin köşegen olmayan girişlerine 1ana diyagonal üzerindedir ve pozitif semidefinite olmayanları atın. Negatiflik kısıtlamaları varsa, küpü eşit olarak örnekleyin
[0,1](n2)
Rodrigo de Azevedo

3
@whuber İşte 3D elliptop [png],3x3korelasyon matrisleri. OP'nin istediği eliptopu negatif olmayan oktan ile kesip sonra formun düzlemleriyle kesiştirmektirxbenj=0. Matris0, O zaman olmalıdır elliptope arasında. Sıfır olmayan objektif fonksiyonlarla SDP kullanarak , eliptopun yüzeyini örnekleyebiliriz. Eliptop dışbükey olduğundan, yüzey noktalarının dışbükey kombinasyonları da korelasyon matrislerine eşlenir.
Rodrigo de Azevedo

1
Bu durumu tanımlamak için mükemmel bir yol.
whuber

3
Göreceli hacimlerin nasıl büzüştüğü konusunda haklısınız. İşte bu yüzden bu zor bir sorundur.
Whuber
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.