উপস্থিত কিছু শক্তিশালী পারস্পরিক সম্পর্ক সহ একটি বৃহত পূর্ণ-র‌্যাঙ্কের এলোমেলো সংযোগ ম্যাট্রিক্স কীভাবে উত্পন্ন করা যায়?


25

আমি একটি র্যান্ডম পারস্পরিক সম্পর্ক ম্যাট্রিক্স জেনারেট করতে চাই এর আকার যেমন কিছু পরিমিতরূপে শক্তিশালী সম্পর্কযুক্তরূপে উপস্থিত আছে: এন × এনসিএন×এন

  • মাপের বর্গক্ষেত্রের রিয়েল প্রতিসম ম্যাট্রিক্স , যেমন ;n = 100এন×এনএন=100
  • ধনাত্মক-সুনির্দিষ্ট, অর্থাত্ সমস্ত ইগ্যালভ্যালু সহ বাস্তব এবং ধনাত্মক;
  • পূর্ণ পদ;
  • সমস্ত তির্যক উপাদান সমান ;1
  • বন্ধ-তির্যক উপাদান দিতে হবে যুক্তিসঙ্গতভাবে অবিশেষে বিতরণ । সঠিক বিতরণে কিছু আসে যায় না, তবে আমি মাঝারি আকারের বড় মানগুলির (যেমন বা তার নিখুঁত মান সহ) কিছুটা মাঝারি পরিমাণে (উদাহরণস্বরূপ ) রাখতে চাই । মূলত আমি নিশ্চিত করতে চাই হল না সব বন্ধ-তির্যক উপাদানের সঙ্গে প্রায় তির্যক ।10 % 0.5 সে(-1,1)10%0.5সি0

এটি করার কোনও সহজ উপায় আছে?

উদ্দেশ্যটি হল এলোমেলো ম্যাট্রিক্সগুলি কিছু কিছু অ্যালগরিদমকে পারস্পরিক সম্পর্ক (বা সমবায়) ম্যাট্রিক্সের সাথে কাজ করে বেঞ্চমার্ক করতে।


পদ্ধতি যে কাজ করে না

আমি জানি যে এলোমেলো পারস্পরিক সম্পর্ক মেট্রিক্স উত্পন্ন করার কয়েকটি উপায় এখানে রয়েছে তবে এটি আমার পক্ষে কার্যকর হয় না:

  1. জেনারেট করুন র্যান্ডম এর আকার, কেন্দ্র, STANDARDIZE এবং পারস্পরিক সম্পর্ক ম্যাট্রিক্স গঠন । যদি তবে ফলে সাধারণত সমস্ত অফ-ডায়াগোনাল সম্পর্কগুলি কাছাকাছি থাকে । যদি কিছু সংযুক্তি শক্তিশালী হবে, তবে পুরো পদমর্যাদায় থাকবে না। এস × n সি = 1এক্সগুলি×এনs>n0snসিসি=1গুলি-1এক্সএক্সগুলি>এন0গুলি«এনসি

  2. নিম্নলিখিত একটির মধ্যে এলোমেলো ধনাত্মক সুনির্দিষ্ট ম্যাট্রিক্স উত্পন্ন করুন :বি

    • এলোমেলো বর্গক্ষেত্র উত্পন্ন করুন এবং প্রতিসম ধনাত্মক সুনির্দিষ্ট ।বি = একজনবি=একজনএকজন

    • এলোমেলো বর্গক্ষেত্র তৈরি করুন , প্রতিসাম্য তৈরি করুন , এবং এগ্রেন-পচন সম্পাদন করে এটি ইতিবাচক সুনির্দিষ্ট করুন এবং সমস্ত নেতিবাচক ইগেনাল্যুগুলি শূন্যে সেট করে: । নোট: এটি একটি র‌্যাঙ্ক-ঘাটতি ম্যাট্রিক্সের ফলস্বরূপ। = একটি + + একটিএকজনE=A+AB = UE=USUB=Umax{S,0}U

    • এলোমেলো orthogonal উত্পন্ন করুন (উদাহরণস্বরূপ এলোমেলো বর্গক্ষেত্র উত্পন্ন করে এবং এর QR পচন ধরে, বা গ্রাম-শ্মিট প্রক্রিয়া মাধ্যমে) এবং এলোমেলো তির্যক সমস্ত ধনাত্মক উপাদান সহ; form । ।ডি বি = কিউ ডি কিউQADB=QDQ

    প্রাপ্ত ম্যাট্রিক্স সহজেই সাধারণ হয়ে উঠতে পারে ত্রিভুজটিতে সমস্ত রয়েছে: , যেখানে হিসাবে একই তির্যক সঙ্গে তির্যক ম্যাট্রিক্স হয় । উপরের তালিকাভুক্ত সমস্ত তিনটি উপায়ে উত্পন্ন করার ফলাফল -এর মধ্যে বন্ধ-ত্রি উপাদানগুলির বন্ধ রয়েছে ।BC=D1/2BD1/2ডি=আমিএকটিবিবিবিসি0


আপডেট: পুরানো থ্রেড

আমার প্রশ্ন পোস্ট করার পরে আমি অতীতে প্রায় দুটি নকল পেয়েছি:

দুর্ভাগ্যক্রমে, এই থ্রেডগুলির কোনওটিতেই সন্তোষজনক উত্তর নেই (এখন অবধি :)


1
আপনি কিউআর বা গ্রাম-শ্মিট প্রক্রিয়া দ্বারা এলোমেলো orthogonal ম্যাট্রিক্স তৈরি করতে পারে। এটি হবে "পিসিএর আইজেনভেেক্টর"। এর কলামগুলিতে স্কেল যুক্ত করুন ("লোডিংগুলিতে পরিণত করুন")। এই লোডিংগুলি থেকে কোভেরিয়েন্স ম্যাট্রিক্স পান। এরকম কিছু ...
ttnphns

1
আহ, ভাল .. কল্পনা করুন আমরা একটি nXkলোডিং ম্যাট্রিক্স ডাব্লু তৈরি করতে চাই , সম্পূর্ণরূপে এলোমেলো নয় তবে আমরা যা চাই (এটি হবে, WW'+diag(noise)আমরা যে কোভ ম্যাট্রিক্সটি চাই তার সংজ্ঞা দিই The একমাত্র কাজটি হল কলাম-নরমালাইজড ডাব্লু সংশোধন করা (অর্থাৎ কে অরথোগোনাল হয়ে উঠতে "ইগেনভেেক্টর")। পারস্পরিক সম্পর্কযুক্ত ভেরিয়েবলগুলি ডি-কোলেক্টেট করার যে কোনও পদ্ধতি (এখানে ভেরিয়েবলগুলি
ইগেনভেেক্টরগুলি হ'ল

1
আহ, @ শুভ্র, এখন আমি দেখছি আপনি কী বলতে চাইছেন। হ্যাঁ, আপনি ঠিক বলেছেন: যদি সমস্ত ত্রিভুজ উপাদানগুলি অভিন্ন এবং সমান হয় তবে ম্যাট্রিক্সটি অবশ্যই সত্যিকারের পূর্ণ পদ এবং ইতিবাচক-সুনির্দিষ্ট ... এটি অবশ্যই আমার মনে ছিল না: আমি বিতরণ করতে চাই প্রতিটি ম্যাট্রিক্সে ত্রিভুজ উপাদানগুলি যুক্তিসঙ্গতভাবে "স্প্রেড" হতে হবে, ম্যাট্রিকগুলিতে বিতরণ নয় ...ρ
অ্যামিবা বলেছে রিইনস্টেট মনিকা


2
@ এনটিএনফএনস: আমি মনে করি অবশেষে আমি বুঝতে পেরেছি যে আপনি ঠিকঠাকই ছিলেন: আপনি যা পরামর্শ দিয়েছেন তা হ'ল লক্ষ্য অর্জনের সহজতম উপায়। আপনি উপরে যা লিখেছেন তা মূলত প্রয়োগ করে আমার উত্তরে আমি একটি আপডেট যুক্ত করেছি।
অ্যামিবা বলছেন

উত্তর:


14

অন্যান্য উত্তরগুলি বিভিন্ন উপায়ে আমার সমস্যা সমাধানের জন্য দুর্দান্ত কৌশলগুলি নিয়ে আসে। যাইহোক, আমি একটি নীতিগত পন্থা পেয়েছি যা আমি মনে করি ধারণাটি খুব পরিষ্কার এবং সামঞ্জস্য করা সহজ হতে একটি বড় সুবিধা আছে।

এই থ্রেডে: কীভাবে দক্ষতার সাথে এলোমেলো ইতিবাচক-সেমাইডাইফিনিট পারস্পরিক সম্পর্ক ম্যাট্রিক্স তৈরি করা যায়? - আমি র্যান্ডম পারস্পরিক সম্পর্ক ম্যাট্রিক্স উত্পন্ন করার জন্য দুটি দক্ষ অ্যালগরিদমের জন্য কোডটি বর্ণনা এবং সরবরাহ করেছি provided উভয়ই লেয়ানডোভস্কি, কুরোভিকা এবং জো (২০০৯) এর একটি কাগজ থেকে এসেছেন , যা @ এসএসডেকট্রোল উপরের মন্তব্যে উল্লেখ করেছেন (অনেক ধন্যবাদ!)

প্রচুর পরিসংখ্যান, ব্যাখ্যা এবং মতলব কোডের জন্য দয়া করে আমার উত্তরটি এখানে দেখুন । তথাকথিত "দ্রাক্ষালতা" পদ্ধতিটি আংশিক পরস্পর সম্পর্কিত কোনও বিতরণের সাথে এলোমেলো পারস্পরিক সম্পর্ক ম্যাট্রিক্স তৈরি করতে দেয় এবং বৃহত্তর অফ-তির্যক মানগুলির সাথে সম্পর্কিত ম্যাট্রিক্স তৈরি করতে ব্যবহার করা যেতে পারে। এখানে এই থ্রেড থেকে উদাহরণ চিত্র:

দ্রাক্ষালতা পদ্ধতি

সাবপ্লটগুলির মধ্যে যে একমাত্র জিনিসটি পরিবর্তিত হয়, তা হ'ল একটি প্যারামিটার যা নিয়ন্ত্রণ করে আংশিক সম্পর্কের বিতরণটি দিকে কেন্দ্রীভূত হয় ।±1

আমি এখানে এই ম্যাট্রিকগুলি উত্পন্ন করতে আমার কোড অনুলিপি করে দেখাব যাতে এটি এখানে প্রস্তাবিত অন্যান্য পদ্ধতির চেয়ে দীর্ঘ নয়। কিছু ব্যাখ্যার জন্য দয়া করে আমার লিঙ্কিত উত্তর দেখুন। betaparamউপরের চিত্রটির মানগুলি ছিল, (এবং মাত্রিকতা ছিল )। 10050,20,10,5,2,1d100

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

আপডেট: ইগেনভ্যালু

@ স্পারকা এই ম্যাট্রিকগুলির ইউজনালু সম্পর্কে জিজ্ঞাসা করেছেন। নীচের চিত্রটিতে আমি উপরের মতো একই ছয়টি সম্পর্কিত ম্যাট্রিক্সের ইগেনভ্যালু বর্ণালী প্লট করছি। তারা ধীরে ধীরে হ্রাস লক্ষ্য করুন; বিপরীতে, @ পার্সার দ্বারা প্রস্তাবিত পদ্ধতিটির ফলস্বরূপ একটি বড় ইগেনুয়ালুয়ের সাথে একটি পারস্পরিক সম্পর্ক মেট্রিক্স পাওয়া যায়, তবে বাকীগুলি বেশ অভিন্ন।

উপরের ম্যাট্রিকগুলির ইগেনাল্যুগুলি


হালনাগাদ. সত্যই সহজ পদ্ধতি: বিভিন্ন কারণ

উপরের মন্তব্যে @ এনটিএনফেন্স যা লিখেছিল এবং তার উত্তরে @ গটফ্রিডহেল্মসের অনুরূপ, আমার লক্ষ্য অর্জনের একটি খুব সহজ উপায় হল এলোমেলোভাবে বেশ কয়েকটি ( ) ফ্যাক্টর লোডিং ( আকারের এলোমেলো ম্যাট্রিক্স ) উত্পন্ন করা , কোভরিয়েন্স ম্যাট্রিক্স ম্যাথবিএফ form (যা অবশ্যই পুরো পদমর্যাদা হবে না) এবং এটিকে একটি এলোমেলো তির্যক ম্যাট্রিক্স যাতে positive পূর্ণ পদ। ফলস্বরূপ কোভরিয়েন্স ম্যাট্রিক্সকে একটি সম্পর্কযুক্ত ম্যাট্রিক্সে পরিণত করতে স্বাভাবিক করা যেতে পারে (আমার প্রশ্নে বর্ণিত হিসাবে)। এটি খুব সহজ এবং কৌশলটি করে। এখানে কিছু উদাহরণ সহকারে ম্যাট্রিকেস রয়েছেডব্লু কে × এন ডাব্লু ডাব্লুডি বি = ডাব্লু ডাব্লু + ডি কে = 100 , 50 , 20 , 10 , 5 , 1<এনওয়াট×এনওয়াটওয়াটডিবি=ওয়াটওয়াট+ +ডি=100,50,20,10,5,1 :

এলোমেলো কারণের থেকে এলোমেলো পারস্পরিক সম্পর্ক ম্যাট্রিক্স

শুধুমাত্র downside হয় যে ফলে ম্যাট্রিক্স থাকবে , বড় eigenvalues এবং তারপর হঠাৎ ড্রপ হিসাবে আঙ্গুরলতা পদ্ধতি সঙ্গে উপরে দেখানো একটা চমৎকার ক্ষয় বিরোধিতা। এখানে সম্পর্কিত বর্ণালী:

এই ম্যাট্রিকগুলির ইগেনস্পেক্টর

কোডটি এখানে:

d = 100;    %// number of dimensions
k = 5;      %// number of factors

W = randn(d,k);
S = W*W' + diag(rand(1,d));
S = diag(1./sqrt(diag(S))) * S * diag(1./sqrt(diag(S)));

+1 টি। তবে, "ফ্যাক্টর পদ্ধতি" -এ আপনার শেষ বিভাগের কেবলমাত্র একটি অনুস্মারক। কঠোরভাবে ডান পদ্ধতির কল কল করে যে কলামগুলি Wঅরথোগোনাল (অর্থাত্ তাদের মধ্যে কোসাইনগুলি 0)। কেবল এলোমেলোভাবে উত্পাদন করা Wএটি সরবরাহ করে না। তারা লম্ব না হন, তাহলে - অর্থাৎ কারণের (পরে কল তির্যক হয় Wযেমন W_) - ফ্যাক্টর উপপাদ্য নয় WW'কিন্তু W_CW_'সঙ্গে C"সম্পর্কযুক্তরূপে" (cosines) কারণের মধ্যে হচ্ছে। এখন, C=Q'Qসঙ্গে Qআবর্তনের nonorthogonal ঘূর্ণন ম্যাট্রিক্স হচ্ছে W_=inv(Q)'W(এবং তাই W=W_Q')। কিছু তৈরি করুন Q- কলাম ss = 1 এবং ম্যাট্রিক্স ss = ম্যাট্রিক্সের আকার সহ একটি ম্যাট্রিক্স।
ttnphns

... টাইপো: না W_=inv(Q)'W, অবশ্যই W_= W inv(Q)'
ttnphns

@ttnphns: আপনি কী বলছে সঠিক, কিন্তু আমি এটা উদ্দেশ্যে গুরুত্বপূর্ণ মনে করি না উৎপাদিত র্যান্ডম পারস্পরিক সম্পর্ক ম্যাট্রিক্স। আমি যদি এলোমেলোভাবে উত্পাদন করি , তবে হ্যাঁ, এর কলামগুলি ঠিক অরথোগোনাল হবে না, তবে (তির্যকটিতে সমস্তগুলি পেতে সাধারণীকরণের পরে) এখনও কিছু বড় অফ-ডায়াগোনাল মান সহ পূর্ণ র‌্যাঙ্কের সম্পর্ক ম্যাট্রিক্স হবে, যা নিয়ে প্রশ্নটি ছিল। অবশ্যই কলামগুলি অরথোগোনাইজ করা খুব সহজ , আমি কেন আগে এই ক্ষেত্রে এটি প্রয়োজনীয় হবে তা দেখিনি। ওয়াটওয়াটওয়াট+ +ডিওয়াট
অ্যামিবা বলেছেন মোনিকা

1
এটিকে আর-তে অনুবাদ করা:W = replicate(k, rnorm(d)); S = W%*%t(W) + diag(rnorm(d),nrow=d); S = diag(1/sqrt(diag(S)))%*%S%*%diag(1/sqrt(diag(S)))
স্কট ওয়ার্ল্যান্ড

1
@ মিহাই, ভাল পয়েন্ট এবং আপনার পরামর্শগুলি সম্ভবত সবচেয়ে সহজ। আপনিও করতে পারেনS <- matrix(nearPD(S, corr = TRUE, keepDiag = TRUE)$mat@x,ncol(S),ncol(S))
স্কট ওয়ারল্যান্ড

7

একটি

import numpy as np
from random import choice
import matplotlib.pyplot as plt

n = 100
a = 2

A = np.matrix([np.random.randn(n) + np.random.randn(1)*a for i in range(n)])
A = A*np.transpose(A)
D_half = np.diag(np.diag(A)**(-0.5))
C = D_half*A*D_half

vals = list(np.array(C.ravel())[0])
plt.hist(vals, range=(-1,1))
plt.show()
plt.imshow(C, interpolation=None)
plt.show()

কিছুটা সমান বিতরণ ইস্যু ফলাফল


crs[-একটি,একটি]এক্স

হ্যাঁ, আপনি পুরোপুরি ঠিক বলেছেন! (ওহ ছেলে, আসলেই ছিল নির্বোধ: ডি)। আমি এলোমেলো অংশটি এলোমেলো করে (1) * এ করেছি এবং এখন এটি আরও ভাল।
psarka


একটিএন

এই পদ্ধতির একটি নেতিবাচক ফলাফল হ'ল ফলস্বরূপ পারস্পরিক সম্পর্ক ম্যাট্রিক্সের একটি বৃহত ইগেনভ্যালু থাকে তবে বাকীগুলি প্রায় অভিন্ন। সুতরাং এই পদ্ধতিটি একটি "জেনারেল" পারস্পরিক সম্পর্ক মেট্রিক্স দেয় না ... এটি নয় যে আমি এটি আমার প্রশ্নে উল্লেখ করেছি। তবে @ এসএসডেকট্রোল উপরের মন্তব্যে উল্লেখ করেছেন যে দৃশ্যত সমস্ত পারস্পরিক সম্পর্ক মেট্রিক থেকে নমুনা দেওয়ার উপায় আছে; এটি আকর্ষণীয় দেখায় তবে আরও জটিল।
অ্যামিবা বলেছেন মনিকাকে পুনরায়

6

হুম, আমি আমার ম্যাটমেট-ভাষায় একটি উদাহরণ করার পরে আমি দেখতে পাচ্ছি যে ইতিমধ্যে একটি অজগর-উত্তর রয়েছে, এটি সম্ভবত পছন্দনীয় কারণ পাইথন ব্যাপকভাবে ব্যবহৃত হয়। তবে আপনার এখনও প্রশ্ন থাকলেও আমি আপনাকে ম্যাটমেট্রিক্স-ভাষা ব্যবহার করে আমার দৃষ্টিভঙ্গি দেখিয়েছি, সম্ভবত এটি আরও বেশি স্ব-সংযুক্তি।

পদ্ধতি 1
(ম্যাটমেট ব্যবহার করে):

v=12         // 12 variables
f=3          // subset-correlation based on 3 common factors
vg = v / f   // variables per subsets

 // generate hidden factor-matrix
             // randomu(rows,cols ,lowbound, ubound) gives uniform random matrix 
             //    without explicite bounds the default is: randomu(rows,cols,0,100)
L = {   randomu(vg,f)     || randomu(vg,f)/100  || randomu(vg,f)/100 , _
        randomu(vg,f)/100 || randomu(vg,f)      || randomu(vg,f)/100 , _
        randomu(vg,f)/100 || randomu(vg,f)/100  || randomu(vg,f)     }

 // make sure there is itemspecific variance
 // by appending a diagonal-matrix with random positive entries
L = L || mkdiag(randomu(v,1,10,20)) 
  // make covariance and correlation matrix
cov = L *'   // L multiplied  with its transpose
cor = covtocorr(cov)
                   set ccdezweite=3 ccfeldweite=8
                   list cor
cor = 
   1.000,   0.321,   0.919,   0.489,   0.025,   0.019,   0.019,   0.030,   0.025,   0.017,   0.014,   0.014
   0.321,   1.000,   0.540,   0.923,   0.016,   0.015,   0.012,   0.030,   0.033,   0.016,   0.012,   0.015
   0.919,   0.540,   1.000,   0.679,   0.018,   0.014,   0.012,   0.029,   0.028,   0.014,   0.012,   0.012
   0.489,   0.923,   0.679,   1.000,   0.025,   0.022,   0.020,   0.040,   0.031,   0.014,   0.011,   0.014
   0.025,   0.016,   0.018,   0.025,   1.000,   0.815,   0.909,   0.758,   0.038,   0.012,   0.018,   0.014
   0.019,   0.015,   0.014,   0.022,   0.815,   1.000,   0.943,   0.884,   0.035,   0.012,   0.014,   0.012
   0.019,   0.012,   0.012,   0.020,   0.909,   0.943,   1.000,   0.831,   0.036,   0.013,   0.015,   0.010
   0.030,   0.030,   0.029,   0.040,   0.758,   0.884,   0.831,   1.000,   0.041,   0.017,   0.022,   0.020
   0.025,   0.033,   0.028,   0.031,   0.038,   0.035,   0.036,   0.041,   1.000,   0.831,   0.868,   0.780
   0.017,   0.016,   0.014,   0.014,   0.012,   0.012,   0.013,   0.017,   0.831,   1.000,   0.876,   0.848
   0.014,   0.012,   0.012,   0.011,   0.018,   0.014,   0.015,   0.022,   0.868,   0.876,   1.000,   0.904
   0.014,   0.015,   0.012,   0.014,   0.014,   0.012,   0.010,   0.020,   0.780,   0.848,   0.904,   1.000

এখানে সমস্যাটি হতে পারে, আমরা সাবমেট্রিকগুলির ব্লকগুলি সংজ্ঞায়িত করি যাগুলির মধ্যে খুব কম পারস্পরিক সম্পর্ক রয়েছে এবং এটি প্রোগ্রামিকভাবে নয় তবে ধ্রুবক যুক্তি-অভিব্যক্তি দ্বারা। হয়তো এই পদ্ধতির অজগরকে আরও মার্জিতভাবে মডেল করা যেতে পারে।


পদ্ধতি 2 (ক) এর
পরে, সম্পূর্ণ আলাদা পদ্ধতির উপস্থিতি রয়েছে, যেখানে আমরা সম্ভাব্য অবশিষ্ট কোভরিয়েন্সকে এলোমেলো পরিমাণে 100 শতাংশকে একটি ফ্যাক্টর-লোডিংস-ম্যাট্রিক্সে পূরণ করি। এটি পারী / জিপিতে করা হয়:

{L = matrix(8,8);  \\ generate an empty factor-loadings-matrix
for(r=1,8, 
   rv=1.0;    \\ remaining variance for variable is 1.0
   for(c=1,8,
        pv=if(c<8,random(100)/100.0,1.0); \\ define randomly part of remaining variance
        cv= pv * rv;  \\ compute current partial variance
        rv = rv - cv;     \\ compute the now remaining variance
        sg = (-1)^(random(100) % 2) ;  \\ also introduce randomly +- signs
        L[r,c] = sg*sqrt(cv) ;  \\ compute factor loading as signed sqrt of cv
       )
     );}

cor = L * L~

এবং উত্পাদিত পারস্পরিক সম্পর্ক-ম্যাট্রিক্স হয়

     1.000  -0.7111  -0.08648   -0.7806   0.8394  -0.7674   0.6812    0.2765
   -0.7111    1.000   0.06073    0.7485  -0.7550   0.8052  -0.8273   0.05863
  -0.08648  0.06073     1.000    0.5146  -0.1614   0.1459  -0.4760  -0.01800
   -0.7806   0.7485    0.5146     1.000  -0.8274   0.7644  -0.9373  -0.06388
    0.8394  -0.7550   -0.1614   -0.8274    1.000  -0.5823   0.8065   -0.1929
   -0.7674   0.8052    0.1459    0.7644  -0.5823    1.000  -0.7261   -0.4822
    0.6812  -0.8273   -0.4760   -0.9373   0.8065  -0.7261    1.000   -0.1526
    0.2765  0.05863  -0.01800  -0.06388  -0.1929  -0.4822  -0.1526     1.000

সম্ভবত এটি ফ্যাক্টর-লোডিংস-ম্যাট্রিক্সের জন্য ক্রমবর্ধমান উত্পাদনের নিয়মের কারণে প্রভাবশালী মূল উপাদানগুলির সাথে একটি সংযোগ-ম্যাট্রিক্স উত্পন্ন করে। এছাড়াও বৈকল্পিকের শেষ অংশটিকে একটি অনন্য উপাদান তৈরি করে ইতিবাচক সুনির্দিষ্টতা নিশ্চিত করা আরও ভাল। আমি সাধারণ নীতিতে ফোকাস রাখতে প্রোগ্রামে রেখে দিয়েছি।

একটি 100x100 সহসংযোগ-ম্যাট্রিক্সের নিম্নলিখিত সংক্ষিপ্তসারগুলির ফ্রিকোয়েন্সি ছিল (1 ডিগ্রি স্থানে গোলাকার)

    e    f            e: entry(rounded) f: frequency
  -----------------------------------------------------
  -1.000, 108.000
  -0.900, 460.000
  -0.800, 582.000
  -0.700, 604.000
  -0.600, 548.000
  -0.500, 540.000
  -0.400, 506.000
  -0.300, 482.000
  -0.200, 488.000
  -0.100, 464.000
   0.000, 434.000
   0.100, 486.000
   0.200, 454.000
   0.300, 468.000
   0.400, 462.000
   0.500, 618.000
   0.600, 556.000
   0.700, 586.000
   0.800, 536.000
   0.900, 420.000
   1.000, 198.000

[হালনাগাদ]. হুঁ, 100x100 ম্যাট্রিক্স খারাপভাবে কন্ডিশনার; পেরি / জিপি সঠিকভাবে ইগেনুয়ালগুলি নির্ধারণ করতে পারে না polroots (চারপোলি ()) - এমনকি 200 অঙ্কের যথার্থতার সাথেও কাজ করে। লোডিংসমেট্রিক্স এল-তে প্যাকা-ফর্মের জন্য আমি জ্যাকোবি-রোটেশন করেছি এবং বেশিরভাগই খুব ছোট এগারভ্যালুগুলি খুঁজে পেয়েছি, লোগারিডমগুলিতে এটি বেস 10 তে মুদ্রিত করেছি (যা প্রায় দশমিক বিন্দুর অবস্থান দেয়)। বাম থেকে ডানে এবং পরে সারি সারি পড়ুন:

log_10(eigenvalues):
   1.684,   1.444,   1.029,   0.818,   0.455,   0.241,   0.117,  -0.423,  -0.664,  -1.040
  -1.647,  -1.799,  -1.959,  -2.298,  -2.729,  -3.059,  -3.497,  -3.833,  -4.014,  -4.467
  -4.992,  -5.396,  -5.511,  -6.366,  -6.615,  -6.834,  -7.535,  -8.138,  -8.263,  -8.766
  -9.082,  -9.482,  -9.940, -10.167, -10.566, -11.110, -11.434, -11.788, -12.079, -12.722
 -13.122, -13.322, -13.444, -13.933, -14.390, -14.614, -15.070, -15.334, -15.904, -16.278
 -16.396, -16.708, -17.022, -17.746, -18.090, -18.358, -18.617, -18.903, -19.186, -19.476
 -19.661, -19.764, -20.342, -20.648, -20.805, -20.922, -21.394, -21.740, -21.991, -22.291
 -22.792, -23.184, -23.680, -24.100, -24.222, -24.631, -24.979, -25.161, -25.282, -26.211
 -27.181, -27.626, -27.861, -28.054, -28.266, -28.369, -29.074, -29.329, -29.539, -29.689
 -30.216, -30.784, -31.269, -31.760, -32.218, -32.446, -32.785, -33.003, -33.448, -34.318

[আপডেট 2]
পদ্ধতি 2 (খ)
উন্নতি হতে পারে কিছু অ-প্রান্তিক স্তরের আইটেম স্পেসিফিক প্রকরণটি বাড়িয়ে তুলতে এবং সাধারণ কারণগুলির সংখ্যার সাথে যুক্তিযুক্ত ছোট সংখ্যায় হ্রাস করা (উদাহরণস্বরূপ আইটেমম্বরের পূর্ণসংখ্যার-বর্গক্ষেত্র):

{  dimr = 100;
   dimc = sqrtint(dimr);        \\ 10 common factors
   L = matrix(dimr,dimr+dimc);  \\ loadings matrix 
                                \\     with dimr itemspecific and 
                                \\          dimc common factors
   for(r=1,dim, 
         vr=1.0;                \\ complete variance per item 
         vu=0.05+random(100)/1000.0;   \\ random variance +0.05
                                       \\ for itemspecific variance
         L[r,r]=sqrt(vu);              \\ itemspecific factor loading  
         vr=vr-vu;
         for(c=1,dimc,
                cv=if(c<dimc,random(100)/100,1.0)*vr;
                vr=vr-cv;
                L[r,dimr+c]=(-1)^(random(100) % 2)*sqrt(cv)
             )
        );}

   cov=L*L~
   cp=charpoly(cov)   \\ does not work even with 200 digits precision
   pr=polroots(cp)    \\ spurious negative and complex eigenvalues...

ফলাফলের কাঠামো

পারস্পরিক সম্পর্ক বিতরণের মেয়াদে:ভাবমূর্তি

একইভাবে রয়ে গেছে (পেরিজিপি দ্বারা অদ্ভুত নন সংক্ষেপণযোগ্যতাও), তবে এডিশনগুলি, যখন লোডিংসমেট্রিক্সের জ্যাকোবি-রোটেশন দ্বারা পাওয়া যায়, এখন একটি আরও ভাল কাঠামো রয়েছে, একটি নতুন গণনা করা উদাহরণ হিসাবে আমি এগ্রোভ্যালুগুলি পেয়েছি

log_10(eigenvalues):
   1.677,   1.326,   1.063,   0.754,   0.415,   0.116,  -0.262,  -0.516,  -0.587,  -0.783
  -0.835,  -0.844,  -0.851,  -0.854,  -0.858,  -0.862,  -0.862,  -0.868,  -0.872,  -0.873
  -0.878,  -0.882,  -0.884,  -0.890,  -0.895,  -0.896,  -0.896,  -0.898,  -0.902,  -0.904
  -0.904,  -0.909,  -0.911,  -0.914,  -0.920,  -0.923,  -0.925,  -0.927,  -0.931,  -0.935
  -0.939,  -0.939,  -0.943,  -0.948,  -0.951,  -0.955,  -0.956,  -0.960,  -0.967,  -0.969
  -0.973,  -0.981,  -0.986,  -0.989,  -0.997,  -1.003,  -1.005,  -1.011,  -1.014,  -1.019
  -1.022,  -1.024,  -1.031,  -1.038,  -1.040,  -1.048,  -1.051,  -1.061,  -1.064,  -1.068
  -1.070,  -1.074,  -1.092,  -1.092,  -1.108,  -1.113,  -1.120,  -1.134,  -1.139,  -1.147
  -1.150,  -1.155,  -1.158,  -1.166,  -1.171,  -1.175,  -1.184,  -1.184,  -1.192,  -1.196
  -1.200,  -1.220,  -1.237,  -1.245,  -1.252,  -1.262,  -1.269,  -1.282,  -1.287,  -1.290

অনেক ধন্যবাদ! খুব আকর্ষণীয়, তবে আমাকে হজমে কিছুটা সময় নিবে ...
অ্যামিবা বলেছেন

আপনার উত্তরটি দিয়ে আমাকে এখনও সাবধানে যেতে হবে, তবে এর মধ্যে আমি র্যান্ডম পারস্পরিক সম্পর্ক ম্যাট্রিক্সের নমুনা সম্পর্কে একটি কাগজ পড়েছি এবং সেখান থেকে প্রাপ্ত একটি পদ্ধতিতে আমার যা প্রয়োজন ঠিক তা করতে ব্যবহার করা যেতে পারে। আমি এখানে একটি উত্তর পোস্ট করেছি, আপনি একবার নজর দিতে আগ্রহী হতে পারে! এটি আরও একটি উত্তরের সাথে লিঙ্ক করে যা আমি অন্য থ্রেডে লিখেছি।
অ্যামিবা

@ অ্যামিবা: খুশি আপনি কিছু সুন্দরভাবে কাজ করেছেন! এটি একটি আকর্ষণীয় প্রশ্ন, আমি পরে নিজের কাছে ফিরে আসব, সম্ভবত আপনি যে পেপারে কাজ করেছেন তার ম্যাটমেট পদ্ধতিগুলি (এবং তাদের সাবরুটাইনগুলি তৈরি করুন) উন্নত / মানিয়ে নিতে।
গটফ্রিড হেলমস

2

একজনবিλএকজন+ +(1-λ)বিλ

একজনবিসিλএকজনএকজন+ +λবিবি+ +λসিসিΣλ=1λ0


একজনবি

আহ, তবে এই জাতীয় একটি অ্যালগরিদম থেকে এবং "শিখুন" (যা ম্যাট্রিক্স) এর উপযুক্ত বৈচিত্র্য যা আপনার পজিটিভ-সুনির্দিষ্ট পারস্পরিক সম্পর্ক সম্পর্কিত ম্যাট্রিক্সের সংজ্ঞা দেয়, আপনি ইগেনভ্যালুগুলির যে কোনও বিতরণ, প্রবেশের অভিন্নতা পেতে প্রত্যাখ্যানের নমুনা ব্যবহার করতে পারেন, ইত্যাদি, যে আপনি চান। তবে, ভাল ভিত্তিটি কী হবে তা আমার কাছে পরিষ্কার নয়। আই এর তুলনায় সাম্প্রতিক বীজগণিত অধ্যয়নরত এমন কারও কাছে এমন প্রশ্নের মত মনে হচ্ছে
অ্যান্ড্রু এম

হাই, আবার আমি র্যান্ডম পারস্পরিক সম্পর্কের ম্যাট্রিক্সের নমুনা সম্পর্কে একটি কাগজ পড়েছি এবং সেখান থেকে যে কোনও একটি পদ্ধতি আমার প্রয়োজন মতো করতে পারে। আমি এখানে একটি উত্তর পোস্ট করেছি, আপনি একবার নজর দিতে আগ্রহী হতে পারে! এটি আরও একটি উত্তরের সাথে লিঙ্ক করে যা আমি অন্য থ্রেডে লিখেছি।
অ্যামিবা

2

আর এর একটি প্যাকেজ (ক্লাস্টারজেনারেশন) রয়েছে যা পদ্ধতিটি এখানে প্রয়োগ করে:

উদাহরণ:

> (cormat10 = clusterGeneration::rcorrmatrix(10, alphad = 1/100000000000000))
        [,1]   [,2]    [,3]     [,4]     [,5]   [,6]   [,7]    [,8]     [,9]   [,10]
 [1,]  1.000  0.344 -0.1406 -0.65786 -0.19411  0.246  0.688 -0.6146  0.36971 -0.1052
 [2,]  0.344  1.000 -0.4256 -0.35512  0.15973  0.192  0.340 -0.4907 -0.30539 -0.6104
 [3,] -0.141 -0.426  1.0000  0.01775 -0.61507 -0.485 -0.273  0.3492 -0.30284  0.1647
 [4,] -0.658 -0.355  0.0178  1.00000  0.00528 -0.335 -0.124  0.5256 -0.00583 -0.0737
 [5,] -0.194  0.160 -0.6151  0.00528  1.00000  0.273 -0.350 -0.0785  0.08285  0.0985
 [6,]  0.246  0.192 -0.4847 -0.33531  0.27342  1.000  0.278 -0.2220 -0.11010  0.0720
 [7,]  0.688  0.340 -0.2734 -0.12363 -0.34972  0.278  1.000 -0.6409  0.40314 -0.2800
 [8,] -0.615 -0.491  0.3492  0.52557 -0.07852 -0.222 -0.641  1.0000 -0.50796  0.1461
 [9,]  0.370 -0.305 -0.3028 -0.00583  0.08285 -0.110  0.403 -0.5080  1.00000  0.3219
[10,] -0.105 -0.610  0.1647 -0.07373  0.09847  0.072 -0.280  0.1461  0.32185  1.0000
> cormat10[lower.tri(cormat10)] %>% psych::describe()
   vars  n  mean   sd median trimmed mad   min  max range skew kurtosis   se
X1    1 45 -0.07 0.35  -0.08   -0.07 0.4 -0.66 0.69  1.35 0.03       -1 0.05

দুর্ভাগ্যক্রমে, এর সাথে একটি অভিন্ন বিতরণ অনুসরণকারী পারস্পরিক সম্পর্কগুলি অনুকরণ করা সম্ভব বলে মনে হয় না। alphadখুব ছোট মানগুলিতে সেট করা থাকলে এটি আরও শক্তিশালী পারস্পরিক সম্পর্ক তৈরি করে বলে মনে হয়, তবে এমনকি 1/100000000000000পারস্পরিক সম্পর্কের পরিধিটি কেবল প্রায় 1.40 পর্যন্ত চলে যেতে পারে।

তবুও, আমি আশা করি এটি কারওর কিছু উপকারে আসতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.