วิธีสร้างเมทริกซ์สหสัมพันธ์แบบกึ่งบวกแบบกึ่งมีประสิทธิภาพได้อย่างมีประสิทธิภาพได้อย่างไร


38

ฉันต้องการที่จะสร้างเมทริกซ์สหสัมพันธ์เชิงบวก - semidefinite (PSD) ได้อย่างมีประสิทธิภาพ วิธีการของฉันช้าลงอย่างมากเมื่อฉันเพิ่มขนาดของเมทริกซ์ที่จะสร้าง

  1. คุณช่วยแนะนำวิธีแก้ปัญหาที่มีประสิทธิภาพได้ไหม? หากคุณตระหนักถึงตัวอย่างใด ๆ ใน Matlab ฉันจะขอบคุณมาก
  2. เมื่อสร้างเมทริกซ์ความสัมพันธ์ PSD คุณจะเลือกพารามิเตอร์เพื่ออธิบายเมทริกซ์ที่จะสร้างได้อย่างไร ค่าเฉลี่ยสหสัมพันธ์ส่วนเบี่ยงเบนมาตรฐานของสหสัมพันธ์ค่าลักษณะเฉพาะ

คำตอบ:


16

คุณสามารถทำย้อนหลังได้: เมทริกซ์ทุกตัว (เซตของเมทริกซ์ PSD สมมาตรp × p PSD ทั้งหมด) สามารถแยกย่อยเป็นCR++pp×p

โดยที่ Oเป็นเมทริกซ์แบบออโธเทนเน็ตC=OTDOO

ที่จะได้รับแรกสร้างพื้นฐานแบบสุ่ม( โวลต์1 , . . . , วีพี ) (ที่วีฉันเวกเตอร์สุ่มโดยทั่วไปใน( - 1 , 1 ) ) จากนั้นใช้กระบวนการ orthogonalization แกรมชมิดท์ที่จะได้รับ( U 1 , . . . . , ยูพี ) = OO(v1,...,vp)vi(1,1)(u1,....,up)=O

มีแพ็คเกจจำนวนหนึ่งที่สามารถทำการสุ่มตั้งฉากแบบ GS ได้อย่างมีประสิทธิภาพซึ่งแม้แต่ในมิติที่มีขนาดใหญ่เช่นแพ็คเกจ 'ไกล' แม้ว่าคุณจะพบอัลกอริทึม GS บนวิกิ แต่ก็น่าจะดีกว่าที่จะไม่คิดค้นวงล้อใหม่และเริ่มใช้งาน MATLAB (มีอยู่จริง ๆ ฉันก็ไม่แนะนำเลย)R

สุดท้ายเป็นเมทริกซ์ทแยงมุมซึ่งเป็นธาตุบวกทั้งหมด (นี้เป็นอีกครั้งที่ง่ายในการสร้าง: สร้างหน้าตัวเลขสุ่มตารางพวกเขาจัดเรียงพวกเขาและสถานที่ที่เขาไปถึงเส้นทแยงมุมของตัวตนของพีโดยพีเมทริกซ์)Dppp


3
(1) โปรดทราบว่าผลลัพธ์จะไม่เป็นเมทริกซ์สหสัมพันธ์ (ตามที่ร้องขอโดย OP) เพราะจะไม่มีเส้นทแยงมุม แน่นอนมันสามารถปรับขนาดที่จะมีคนในแนวทแยงโดยการตั้งค่าไปยังE - 1 / 2 C E - 1 / 2ที่Eเป็นเมทริกซ์ทแยงมุมกับเส้นทแยงมุมเช่นเดียวกับC (2) ถ้าฉันไม่เข้าใจผิดนี่จะส่งผลให้เมทริกซ์สหสัมพันธ์ที่องค์ประกอบนอกแนวทแยงทั้งหมดมีความเข้มข้นประมาณ0ดังนั้นจึงไม่มีความยืดหยุ่นที่ OP ต้องการหา (OP ต้องการตั้งค่า"สหสัมพันธ์เฉลี่ย ค่าเบี่ยงเบนมาตรฐานของสหสัมพันธ์ค่าลักษณะเฉพาะ "CE1/2CE1/2EC0)
อะมีบาพูดว่า Reinstate Monica

@ amoeba: ฉันจะพูดถึง (2) ตั้งแต่เมื่อคุณชี้ให้เห็นทางออกของ (1) นั้นเล็กน้อย ตัวละครหมายเลขหนึ่งของ 'รูปร่าง' (ความสัมพันธ์ระหว่างองค์ประกอบเข้าและออกในแนวทแยง) ของเมทริกซ์ PSD (และความแปรปรวนร่วมและเมทริกซ์สหสัมพันธ์) คือหมายเลขเงื่อนไข และวิธีการที่อธิบายไว้ข้างต้นช่วยให้สามารถควบคุมได้อย่างเต็มที่ 'ความเข้มข้นขององค์ประกอบนอกแนวทแยงรอบ 0' ไม่ใช่คุณสมบัติของวิธีที่ใช้ในการสร้างเมทริกซ์ PSD แต่เป็นผลมาจากข้อ จำกัด ที่จำเป็นเพื่อให้แน่ใจว่าเมทริกซ์นั้นเป็น PSD และความจริงที่ว่ามีขนาดใหญ่ p
user603

คุณกำลังบอกว่าเมทริกซ์ PSD ขนาดใหญ่ทั้งหมดมีองค์ประกอบแบบทแยงมุมใกล้ศูนย์หรือไม่? ฉันไม่เห็นด้วยก็ไม่เป็นเช่นนั้น ตรวจสอบคำตอบของฉันที่นี่เพื่อดูตัวอย่าง: วิธีสร้างเมทริกซ์สหสัมพันธ์แบบสุ่มที่มีการแจกแจงแบบเส้นทแยงมุมโดยทั่วไปประมาณค่าเบี่ยงเบนมาตรฐานที่กำหนด แต่สิ่งหนึ่งโดยตรงจะเห็นว่ามันไม่ได้เป็นกรณีเพราะเมทริกซ์ตารางมีทุกคนในแนวทแยงและค่าคงที่ทุกนอกเส้นทแยงมุมเป็น PSD และρอาจมีขนาดใหญ่โดยพล ( แต่แน่นอนด้านล่าง1 ) ρρ1
อะมีบาพูดว่า Reinstate Monica

@ amoeba: ถ้าอย่างนั้นฉันคิดผิดว่าสมมติว่ามีเมทริกซ์สหสัมพันธ์ขนาดใหญ่เมื่อพวกเขาได้รับอนุญาตให้เป็นทั้งบวกและลบใกล้เคียงกับ 0 ขอบคุณสำหรับตัวอย่างที่รู้แจ้ง
user603

1
ฉันอ่านกระดาษที่ดีมากในการสร้างเมทริกซ์สหสัมพันธ์แบบสุ่มและให้คำตอบของฉันเองที่นี่ (รวมทั้งคำตอบอื่นในเธรดที่เชื่อมโยงนั้น) ฉันคิดว่าคุณน่าสนใจ
อะมีบาพูดว่า Reinstate Monica

27

กระดาษสร้างเมทริกซ์สหสัมพันธ์แบบสุ่มโดยยึดตามเถาและวิธีการหอมใหญ่โดย Lewandowski, Kurowicka และ Joe (LKJ), 2009, ให้การรักษาแบบครบวงจรและการแสดงออกของทั้งสองวิธีที่มีประสิทธิภาพในการสร้างเมทริกซ์สหสัมพันธ์แบบสุ่ม ทั้งสองวิธีอนุญาตให้สร้างเมทริกซ์จากการแจกแจงแบบสม่ำเสมอในความหมายบางอย่างที่กำหนดไว้ด้านล่างง่ายต่อการติดตั้งรวดเร็วและมีข้อได้เปรียบเพิ่มเติมจากการมีชื่อที่น่าขบขัน

เมทริกซ์สมมาตรที่แท้จริงของขนาดกับคนที่อยู่บนเส้นทแยงมุมมีd ( d - 1 ) / 2องค์ประกอบปิดเส้นทแยงมุมที่ไม่ซ้ำกันและเพื่อให้สามารถ parametrized เป็นจุดในR d ( d - 1 ) / 2 แต่ละจุดในพื้นที่นี้สอดคล้องกับเมทริกซ์สมมาตร แต่ไม่ใช่ทั้งหมดที่เป็นบวกแน่นอน (เป็นเมทริกซ์สหสัมพันธ์จะต้องมี) เมทริกซ์สหสัมพันธ์จึงเกิดชุดย่อยของR d ( d - 1 ) / 2d×dd(d1)/2Rd(d1)/2Rd(d1)/2 (อันที่จริงแล้วเซตย่อยนูนที่เชื่อมต่อ) และทั้งสองวิธีสามารถสร้างคะแนนจากการแจกแจงแบบสม่ำเสมอเหนือเซ็ตย่อยนี้

ฉันจะช่วยให้การดำเนินงาน MATLAB ของตัวเองของแต่ละวิธีและแสดงให้เห็นถึงพวกเขาด้วย 100d=100


วิธีการหอม

วิธีหอมมาจากกระดาษอื่น (Ref # 3 ใน lkj) และเป็นเจ้าของชื่อเป็นความจริงที่การฝึกอบรมความสัมพันธ์จะมีการสร้างที่เริ่มต้นด้วยเมทริกซ์และการเจริญเติบโตมันคอลัมน์คอลัมน์และแถวโดยแถว การกระจายผลลัพธ์เป็นแบบสม่ำเสมอ ฉันไม่เข้าใจคณิตศาสตร์ที่อยู่เบื้องหลังวิธีการ (และชอบวิธีที่สองอยู่ดี) แต่นี่คือผลลัพธ์:1×1

วิธีการหอม

ที่นี่และด้านล่างชื่อของแต่ละแผนย่อยแสดงค่าลักษณะเฉพาะที่เล็กที่สุดและใหญ่ที่สุดและตัวกำหนด (ผลิตภัณฑ์ของค่าลักษณะเฉพาะทั้งหมด) นี่คือรหัส:

%// ONION METHOD to generate random correlation matrices distributed randomly
function S = onion(d)
    S = 1;
    for k = 2:d
        y = betarnd((k-1)/2, (d-k)/2); %// sampling from beta distribution
        r = sqrt(y);
        theta = randn(k-1,1);
        theta = theta/norm(theta);
        w = r*theta;
        [U,E] = eig(S);
        R = U*E.^(1/2)*U';             %// R is a square root of S
        q = R*w;
        S = [S q; q' 1];               %// increasing the matrix size
    end
end

วิธีการหอมใหญ่

C[detC]η1ηη=1η=1,10,100,1000,10000,100000

วิธีการหอมใหญ่

η=0η=1

%// EXTENDED ONION METHOD to generate random correlation matrices
%// distributed ~ det(S)^eta [or maybe det(S)^(eta-1), not sure]
function S = extendedOnion(d, eta)
    beta = eta + (d-2)/2;
    u = betarnd(beta, beta);
    r12 = 2*u - 1;
    S = [1 r12; r12 1];  

    for k = 3:d
        beta = beta - 1/2;
        y = betarnd((k-1)/2, beta);
        r = sqrt(y);
        theta = randn(k-1,1);
        theta = theta/norm(theta);
        w = r*theta;
        [U,E] = eig(S);
        R = U*E.^(1/2)*U';
        q = R*w;
        S = [S q; q' 1];
    end
end

วิธีการเถาวัลย์

d(d1)/2[1,1]η[detC]η1

วิธีการเถาวัลย์

%// VINE METHOD to generate random correlation matrices
%// distributed ~ det(S)^eta [or maybe det(S)^(eta-1), not sure]
function S = vine(d, eta)
    beta = eta + (d-1)/2;   
    P = zeros(d);           %// storing partial correlations
    S = eye(d);

    for k = 1:d-1
        beta = beta - 1/2;
        for i = k+1:d
            P(k,i) = betarnd(beta,beta); %// sampling from beta
            P(k,i) = (P(k,i)-0.5)*2;     %// linearly shifting to [-1, 1]
            p = P(k,i);
            for l = (k-1):-1:1 %// converting partial correlation to raw correlation
                p = p * sqrt((1-P(l,i)^2)*(1-P(l,k)^2)) + P(l,i)*P(l,k);
            end
            S(k,i) = p;
            S(i,k) = p;
        end
    end
end

วิธีการ Vine ด้วยการสุ่มตัวอย่างแบบสหสัมพันธ์บางส่วน

±1[0,1][1,1]α=β=50,20,10,5,2,1. ยิ่งพารามิเตอร์ของการแจกแจงเบต้าน้อยเท่าไหร่ก็ยิ่งมีความเข้มข้นใกล้กับขอบมากขึ้นเท่านั้น

วิธีการ Vine พร้อมการสุ่มตัวอย่างด้วยตนเอง

โปรดทราบว่าในกรณีนี้การกระจายไม่รับประกันว่าจะมีการเปลี่ยนแปลงอย่างต่อเนื่องดังนั้นฉันจึงสุ่มเปลี่ยนแถวและคอลัมน์หลังจากการสร้าง

%// VINE METHOD to generate random correlation matrices
%// with all partial correlations distributed ~ beta(betaparam,betaparam)
%// rescaled to [-1, 1]
function S = vineBeta(d, betaparam)
    P = zeros(d);           %// storing partial correlations
    S = eye(d);

    for k = 1:d-1
        for i = k+1:d
            P(k,i) = betarnd(betaparam,betaparam); %// sampling from beta
            P(k,i) = (P(k,i)-0.5)*2;     %// linearly shifting to [-1, 1]
            p = P(k,i);
            for l = (k-1):-1:1 %// converting partial correlation to raw correlation
                p = p * sqrt((1-P(l,i)^2)*(1-P(l,k)^2)) + P(l,i)*P(l,k);
            end
            S(k,i) = p;
            S(i,k) = p;
        end
    end

    %// permuting the variables to make the distribution permutation-invariant
    permutation = randperm(d);
    S = S(permutation, permutation);
end

นี่คือวิธีที่ฮิสโทแกรมขององค์ประกอบนอกแนวทแยงมองหาเมทริกซ์ด้านบน (ความแปรปรวนของการแจกแจงแบบ monotonically เพิ่มขึ้น):

องค์ประกอบแนวทแยงมุม


อัปเดต: ใช้ปัจจัยสุ่ม

k<dWk×dWWDB=WW+DC=E1/2BE1/2EBk=100,50,20,10,5,1

เมทริกซ์สหสัมพันธ์แบบสุ่มจากปัจจัยสุ่ม

และรหัส:

%// FACTOR method
function S = factor(d,k)
    W = randn(d,k);
    S = W*W' + diag(rand(1,d));
    S = diag(1./sqrt(diag(S))) * S * diag(1./sqrt(diag(S)));
end

นี่คือรหัสการห่อที่ใช้ในการสร้างตัวเลข:

d = 100; %// size of the correlation matrix

figure('Position', [100 100 1100 600])
for repetition = 1:6
    S = onion(d);

    %// etas = [1 10 100 1000 1e+4 1e+5];
    %// S = extendedOnion(d, etas(repetition));

    %// S = vine(d, etas(repetition));

    %// betaparams = [50 20 10 5 2 1];
    %// S = vineBeta(d, betaparams(repetition));

    subplot(2,3,repetition)

    %// use this to plot colormaps of S
    imagesc(S, [-1 1])
    axis square
    title(['Eigs: ' num2str(min(eig(S)),2) '...' num2str(max(eig(S)),2) ', det=' num2str(det(S),2)])

    %// use this to plot histograms of the off-diagonal elements
    %// offd = S(logical(ones(size(S))-eye(size(S))));
    %// hist(offd)
    %// xlim([-1 1])
end

2
นี่เป็นบทสรุปที่ยอดเยี่ยมฉันดีใจที่ฉันพูดอะไรบางอย่าง!
shadowtalker

เมื่อฉันแปลรหัส MATLAB สำหรับเมทริกซ์สหสัมพันธ์จากเถาวัลย์เป็น R และทดสอบความหนาแน่นของความสัมพันธ์ในคอลัมน์ 1 มักจะแตกต่างจากคอลัมน์ถัดไปเสมอ อาจเป็นได้ว่าฉันแปลบางอย่างไม่ถูกต้อง แต่บางทีบันทึกนี้อาจช่วยบางคนได้
Charlie

3
สำหรับผู้ใช้ R ฟังก์ชั่น rcorrmatrix ในแพ็คเกจกลุ่มการสร้าง (เขียนโดย W Qui และ H. Joe) ใช้วิธีการเถาวัลย์
RNM

14

AATAyT(ATA)y0yyT(ATA)y=(Ay)TAy=||Ay||ซึ่งไม่ติดลบ ดังนั้นใน Matlab เพียงลอง

A = randn(m,n);   %here n is the desired size of the final matrix, and m > n
X = A' * A;

ทั้งนี้ขึ้นอยู่กับแอปพลิเคชันซึ่งอาจไม่ให้การกระจายของค่าลักษณะเฉพาะที่คุณต้องการ คำตอบของ Kwak นั้นดีกว่ามากในเรื่องนั้น ค่าลักษณะเฉพาะที่Xสร้างโดยข้อมูลโค้ดนี้ควรเป็นไปตามการแจกแจง Marchenko-Pastur

สำหรับการจำลองเมทริกซ์สหสัมพันธ์ของหุ้นคุณอาจต้องการแนวทางที่แตกต่างกันเล็กน้อย:

k = 7;      % # of latent dimensions;
n = 100;    % # of stocks;
A = 0.01 * randn(k,n);  % 'hedgeable risk'
D = diag(0.001 * randn(n,1));   % 'idiosyncratic risk'
X = A'*A + D;
ascii_hist(eig(X));    % this is my own function, you do a hist(eig(X));
-Inf <= x <  -0.001 : **************** (17)
-0.001 <= x <   0.001 : ************************************************** (53)
 0.001 <= x <   0.002 : ******************** (21)
 0.002 <= x <   0.004 : ** (2)
 0.004 <= x <   0.005 :  (0)
 0.005 <= x <   0.007 : * (1)
 0.007 <= x <   0.008 : * (1)
 0.008 <= x <   0.009 : *** (3)
 0.009 <= x <   0.011 : * (1)
 0.011 <= x <     Inf : * (1)

1
คุณยินดีที่จะแบ่งปันฟังก์ชั่น ascii_hist ของคุณหรือไม่?
btown

@btown ขอบมีขนาดเล็กเกินไปที่จะเก็บมัน!
shabbychef

1
yT(ATA)y=(Ay)TAy=||Ay||

8

DA=QDQTQ


M. : การอ้างอิงที่ดี: สิ่งนี้ดูเหมือนจะเป็นทางออกที่มีประสิทธิภาพมากที่สุด (แบบไม่แสดงอาการ)
whuber

3
@whuber: เฮ้ฉันหยิบมันมาจาก Golub และ Van Loan (แน่นอน); ฉันใช้สิ่งนี้ตลอดเวลาเพื่อช่วยในการสร้างเมทริกซ์การทดสอบสำหรับรูทีนค่าลักษณะเฉพาะ / ค่าเอกฐาน ดังที่เห็นได้จากกระดาษมันเป็นหลักเทียบเท่ากับ QR-decomposing เมทริกซ์แบบสุ่มตามที่ kwak แนะนำยกเว้นว่าทำได้ดีกว่า มีการนำ MATLAB ไปใช้ใน Text Matrix Toolbox, BTW
JM ไม่ใช่นักสถิติ

M.:> ขอบคุณสำหรับการใช้งาน matlab คุณมีโอกาสที่จะรู้ว่าเครื่องกำเนิดเมทริกซ์หลอกหลอก Haar ใน R หรือไม่
user603

@kwak: ไม่มีความคิด แต่ถ้ายังไม่มีการนำไปใช้งานมันไม่ควรที่จะแปลรหัส MATLAB ไปเป็น R ยากเกินไป (ฉันสามารถลองใช้มันถ้าไม่มีจริงๆ); สิ่งที่จำเป็นต้องมีเพียงอย่างเดียวคือตัวสร้างที่ดีสำหรับตัวแปรธรรมดาหลอกซึ่งฉันแน่ใจว่าอาร์มี
JM ไม่ใช่นักสถิติ

อ:> ใช่ฉันอาจจะแปลมันด้วยตัวเอง ขอบคุณสำหรับลิงค์ที่ดีที่สุด
user603

4

คุณยังไม่ได้ระบุการกระจายสำหรับเมทริกซ์ สองคนที่พบบ่อยคือ Wishart และการกระจาย Wishart ตรงกันข้าม การสลายตัวของบาร์ตเลตต์นั้นเป็นตัวประกอบของ Cholesky ของเมทริกซ์ Wishart แบบสุ่ม (ซึ่งสามารถแก้ไขได้อย่างมีประสิทธิภาพเพื่อให้ได้เมทริกซ์ Wishart ผกผันแบบสุ่ม)

ในความเป็นจริงพื้นที่ Cholesky เป็นวิธีที่สะดวกในการสร้างเมทริกซ์ PSD แบบสุ่มชนิดอื่นเนื่องจากคุณจะต้องแน่ใจว่าเส้นทแยงมุมนั้นไม่ใช่ลบ


> ไม่สุ่ม: สองเมทริกซ์ที่สร้างจาก Whishard เดียวกันจะไม่เป็นอิสระจากกัน หากคุณวางแผนที่จะเปลี่ยน Whishart ในแต่ละรุ่นคุณต้องการสร้าง Whishart เหล่านั้นตั้งแต่แรกอย่างไร?
user603

@kwak: ฉันไม่เข้าใจคำถามของคุณ: การสลายตัวของบาร์ตเลตต์จะให้การจับฉลากอิสระจากการกระจายของ Wishart เดียวกัน
Simon Byrne

> ให้ฉันใช้ถ้อยคำใหม่นี้คุณจะได้เมทริกซ์สเกลของการกระจาย whishart จากที่ไหน
user603

1
@kwak: มันเป็นพารามิเตอร์ของการกระจายและได้รับการแก้ไข คุณเลือกเมื่อเริ่มต้นขึ้นอยู่กับลักษณะที่ต้องการของการกระจายของคุณ (เช่นค่าเฉลี่ย)
Simon Byrne

3

UTSU


หากรายการถูกสร้างขึ้นจากการแจกแจงแบบปกติมากกว่าเครื่องแบบการสลายตัวที่คุณพูดถึงควรจะเป็นค่าคงที่ SO (n) (ดังนั้นจึงมีการกระจายตัวที่สัมพันธ์กับการวัด Haar)
whuber

น่าสนใจ คุณสามารถให้การอ้างอิงสำหรับสิ่งนี้ได้หรือไม่?
สวัสดี

1
> ปัญหาของวิธีนี้คือคุณไม่สามารถควบคุมอัตราส่วน eigenvalue ที่เล็กที่สุดและใหญ่ที่สุดได้ (และฉันคิดว่าเมื่อขนาดของชุดข้อมูลที่คุณสร้างขึ้นแบบสุ่มไปไม่มีที่สิ้นสุดอัตราส่วนนี้จะรวมกันเป็น 1)
user603

1

หากคุณต้องการควบคุมเมทริกซ์ PSD สมมาตรที่สร้างขึ้นเช่นสร้างชุดการตรวจสอบความถูกต้องสังเคราะห์คุณมีพารามิเตอร์จำนวนมาก เมทริกซ์ PSD สมมาตรสอดคล้องกับ hyper-ellipse ในพื้นที่ N-มิติพร้อมองศาอิสระที่เกี่ยวข้องทั้งหมด:

  1. ผลัด
  2. ความยาวของแกน

ดังนั้นสำหรับเมทริกซ์ 2 มิติ (เช่นวงรี 2d) คุณจะมี 1 การหมุน + 2 แกน = 3 พารามิเตอร์

Σ=ODOTΣOD

Σ

figure;
mu = [0,0];
for i=1:16
    subplot(4,4,i)
    theta = (i/16)*2*pi;   % theta = rand*2*pi;
    U=[cos(theta), -sin(theta); sin(theta) cos(theta)];
    % The diagonal's elements control the lengths of the axes
    D = [10, 0; 0, 1]; % D = diag(rand(2,1));    
    sigma = U*D*U';
    data = mvnrnd(mu,sigma,1000);
    plot(data(:,1),data(:,2),'+'); axis([-6 6 -6 6]); hold on;
end

U


0

วิธีการที่ถูกและร่าเริงที่ฉันใช้ในการทดสอบคือการสร้าง m N (0,1) n-vectors V [k] จากนั้นใช้ P = d * I + Sum {V [k] * V [k] '} เป็นเมทริกซ์ ndn psd ด้วย m <n สิ่งนี้จะเป็นเอกฐานสำหรับ d = 0 และสำหรับ d ขนาดเล็กจะมีหมายเลขเงื่อนไขสูง


2
> ปัญหาของวิธีนี้คือคุณไม่สามารถควบคุมอัตราส่วน eigenvalue ที่เล็กที่สุดและใหญ่ที่สุดได้ (และฉันคิดว่าเมื่อขนาดของชุดข้อมูลที่คุณสร้างขึ้นแบบสุ่มไปไม่มีที่สิ้นสุดอัตราส่วนนี้จะรวมกันเป็น 1)
user603

> นอกจากนี้วิธีการดังกล่าวไม่ได้มีประสิทธิภาพมากนัก (จากมุมมองการคำนวณแบบใหม่)
603

1
"เมทริกซ์แบบสุ่ม" ของคุณเป็นโครงสร้างแบบพิเศษที่เรียกว่า "เมทริกซ์แบบทแยงมุมบวกอันดับ 1" (เมทริกซ์ DR1) ดังนั้นจึงไม่ใช่เมทริกซ์แบบสุ่มที่ดีจริงๆ
JM ไม่ใช่นักสถิติ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.