কীভাবে একটি স্বেচ্ছাসেবীর মেলিক্স তৈরি করা যায়


21

উদাহরণস্বরূপ, ইন R, MASS::mvrnorm()ফাংশনটি পরিসংখ্যানে বিভিন্ন জিনিস প্রদর্শনের জন্য ডেটা উত্পন্ন করার জন্য দরকারী is এটি একটি বাধ্যতামূলক Sigmaযুক্তি নেয় যা ভেরিয়েবলের কোভারিয়েন্স ম্যাট্রিক্স নির্দিষ্ট করে একটি প্রতিসম ম্যাট্রিক্স। আমি কীভাবে নির্বিচারে এন্ট্রি সহ একটি প্রতিসম ম্যাট্রিক্স তৈরি করব ?n×n


3
আমি মনে করি "এই প্রশ্নটি আমি কীভাবে একটি স্বেচ্ছাসেবীর ম্যাট্রিক্স তৈরি করতে পারি" এবং কোডিংয়ের দিকটি কম নিয়ে ফোকাস করার জন্য সম্পাদনা করা থেকে উপকৃত হবে I উত্তর দ্বারা প্রদর্শিত হিসাবে এখানে অবশ্যই একটি বিষয় অন্তর্নিহিত পরিসংখ্যানগত সমস্যা আছে।
সিলভারফিশ

উত্তর:


22

নির্বিচার মান সহ একটি n×n ম্যাট্রিক্স তৈরি করুনA

এবং তারপরে আপনার সমবায় ম্যাট্রিক্স হিসাবে ব্যবহার করুন Σ=ATA

উদাহরণ স্বরূপ

n <- 4  
A <- matrix(runif(n^2)*2-1, ncol=n) 
Sigma <- t(A) %*% A

তেমনি Sigma <- A + t(A),।
আরএসএল

6
@ মোয়াজ্জেমহসেন: আপনার পরামর্শটি একটি প্রতিসম ম্যাট্রিক্স তৈরি করবে, তবে এটি সর্বদা ইতিবাচক অর্ধসীমা হতে পারে না (যেমন আপনার পরামর্শটি নেতিবাচক ইগেনভ্যালুগুলি সহ একটি ম্যাট্রিক্স তৈরি করতে পারে) এবং তাই এটি কোভারিয়েন্স ম্যাট্রিক্স হিসাবে উপযুক্ত নাও হতে পারে
হেনরি

হ্যাঁ, আমি লক্ষ্য করেছি যে আমার প্রস্তাবিত উপায়ে অনুপযুক্ত ম্যাট্রিক্স উত্পাদিত ইভেন্টে আর ত্রুটি প্রদান করে।
আরএসএল

4
মনে রাখবেন যে আপনি যদি আরও ভাল ব্যাখ্যার জন্য একটি সম্পর্কযুক্ত ম্যাট্রিক্স পছন্দ করেন তবে সেখানে ? Cov2cor ফাংশন রয়েছে যা পরবর্তী সময়ে প্রয়োগ করা যেতে পারে।
গুং - মনিকা পুনরায়

1
@ বি 11 বি: ইতিবাচক আধা-সুনির্দিষ্ট হওয়ার জন্য আপনার কোভারিয়েন্স ম্যাট্রিক্সের প্রয়োজন। এটি সমবায় মূল্যবোধের কিছু সীমাবদ্ধতা ফেলবে, পুরোপুরি সুস্পষ্ট নয় যখন n>2
হেনরি

24

আমি নির্ধারিত বস্তুগুলির উপর নিয়ন্ত্রণ রাখতে চাই, এমনকি তারা নির্বিচারে থাকতে পারে over

বিবেচনা করুন, তারপর, যে সব সম্ভব সহভেদাংক ম্যাট্রিক্স Σ আকারে প্রকাশ করা যেতে পারেn×nΣ

Σ=P Diagonal(σ1,σ2,,σn) P

যেখানে একটি লম্ব ম্যাট্রিক্স এবং σ 1σ 2σ এন0Pσ1σ2σn0

জ্যামিতিক এই একটি সীমার সঙ্গে একটি সহভেদাংক গঠন বর্ণনা প্রধান উপাদান আকারের । এই উপাদানগুলি পি এর সারিগুলির দিক নির্দেশ করে । N = 3 সহ উদাহরণের জন্য মূল উপাদান বিশ্লেষণ, ইগেনভেেক্টর এবং ইগেনভ্যালুগুলি বোঝার জন্য পরিসংখ্যানগুলি দেখুন । সেট σ আমি covariances এবং তাদের আপেক্ষিক আকারের মাত্রার সেট হবে, যার ফলে কোন পছন্দসই ellipsoidal আকৃতি নির্ণয়। পি এর সারিগুলি আপনার পছন্দ অনুসারে আকৃতির অক্ষকে কেন্দ্র করে।σiPn=3σiP

এই পদ্ধতির একটি বীজগণিত এবং কম্পিউটিং সুবিধা হ'ল , read যখন সহজেই উল্টে যায় (যা কোভরিয়েন্স ম্যাট্রিক্সে একটি সাধারণ অপারেশন):σn>0Σ

Σ1=P Diagonal(1/σ1,1/σ2,,1/σn) P.

দিকনির্দেশ সম্পর্কে চিন্তা করবেন না, তবে কেবলমাত্র এর আকারের পরিসীমা সম্পর্কে ? এটি দুর্দান্ত: আপনি সহজেই একটি এলোমেলো অর্থোথোনাল ম্যাট্রিক্স তৈরি করতে পারেন। কেবলমাত্র এন 2 আইড স্ট্যান্ডার্ড সাধারণ মানগুলি একটি বর্গক্ষেত্রের ম্যাট্রিক্সে মোড়ুন এবং তারপরে এটি र्थোগোনালাইজ করুন। এটি প্রায় অবশ্যই কাজ করবে (প্রদত্ত এন বিশাল নয়)। এই কোড হিসাবে কিউআর পচন এটি করবেσin2n

n <- 5
p <- qr.Q(qr(matrix(rnorm(n^2), n)))

এটি কাজ করে কারণ ভেরিয়েট মাল্টিনর্মাল বিতরণ এতটাই উত্পন্ন যে "উপবৃত্তাকার": এটি সমস্ত আবর্তন এবং প্রতিবিম্বের অধীনে (মূল মাধ্যমে) inv সুতরাং, সমস্ত অরথোগোনাল ম্যাট্রিক্স একইভাবে উত্পন্ন হয়, 3-ডি ইউনিট গোলকের পৃষ্ঠের পৃষ্ঠে সমানভাবে বিতরণকৃত পয়েন্টগুলি কীভাবে উত্পন্ন করতে হবে তা যুক্তি অনুসারে ? n

পি এবং Σ i থেকে প্রাপ্ত করার দ্রুত উপায় , আপনি একবার তাদের নির্দিষ্ট করে বা তৈরি করে নিলে পাটিগণিতের ক্রিয়াকলাপগুলিতে অ্যারেগুলির পুনরায় ব্যবহার এবং ব্যবহার করে, যেমন এই উদাহরণে σ = ( σ 1 , , σ 5 সহ) ) = ( 5 , 4 , 3 , 2 , 1 ) :ΣPσicrossprodRσ=(σ1,,σ5)=(5,4,3,2,1)

Sigma <- crossprod(p, p*(5:1))

একটি চেক হিসাবে, সিঙ্গুলার মূল্য পচানি উভয় ফেরত পাঠাবেন এবং পি ' । আপনি কমান্ড দিয়ে এটি পরিদর্শন করতে পারেনσP

svd(Sigma)

বিপরীতে Sigmaঅবশ্যই কেবলমাত্র division দ্বারা একটি বিভাগে পরিবর্তন করে প্রাপ্ত করা হয়:σ

Tau <- crossprod(p, p/(5:1))

আপনি এটি দেখে যাচাই করতে পারেন zapsmall(Sigma %*% Tau), যা পরিচয় ম্যাট্রিক্স হওয়া উচিত । একজন সাধারণ বিপরীত (রিগ্রেশন গণনার জন্য অপরিহার্য) প্রতিস্থাপন কোনো দ্বারা প্রাপ্ত হয় σ আমি0 দ্বারা 1 / σ আমি , ঠিক যেমন উপরে, কিন্তু মধ্যে কোনো শূন্য রেখে σ আমি তারা ছিল।n×nσi01/σiσi


এটি অক্ষরটিকে অগ্রাধিকার হিসাবে সাজানোর জন্য এর সারিগুলি কীভাবে ব্যবহার করবেন তা প্রদর্শনে সহায়তা করতে পারে । P
গুং - মনিকা পুনরায়

1
উল্লেখ করার মতো বিষয় যে একক মানগুলি পুনরায় সাজানো svd(Sigma)হবে - যা আমাকে এক মিনিটের জন্য বিভ্রান্ত করেছিল।
ফ্র্যাঙ্কডি

1

আপনি ব্যাপকভাবে ব্যবহৃত প্যাকেজ "পরিসংখ্যান" থেকে "rWishart" ফাংশনটি ব্যবহার করে উইশার্ট বিতরণ থেকে র্যান্ডম পজিটিভ সুনির্দিষ্ট ম্যাট্রিকগুলি অনুকরণ করতে পারেন can

n <- 4
rWishart(1,n,diag(n))

1

এর জন্য বিশেষত একটি প্যাকেজ রয়েছে, clusterGeneration(অন্যদের মধ্যে হ্যারি জো লিখেছেন, সেই ক্ষেত্রের একটি বড় নাম)।

দুটি প্রধান ফাংশন রয়েছে:

  • genPositiveDefMat একটি কোভেরিয়েন্স ম্যাট্রিক্স, 4 টি বিভিন্ন পদ্ধতি জেনারেট করুন
  • rcorrmatrix : একটি পারস্পরিক সম্পর্ক মেট্রিক্স উত্পন্ন

দ্রুত উদাহরণ:

library(clusterGeneration)
#> Loading required package: MASS
genPositiveDefMat("unifcorrmat",dim=3)
#> $egvalues
#> [1] 15.408962  5.673916  1.228842
#> 
#> $Sigma
#>          [,1]     [,2]     [,3]
#> [1,] 6.714871 1.643449 6.530493
#> [2,] 1.643449 6.568033 2.312455
#> [3,] 6.530493 2.312455 9.028815
genPositiveDefMat("eigen",dim=3)
#> $egvalues
#> [1] 8.409136 4.076442 2.256715
#> 
#> $Sigma
#>            [,1]       [,2]      [,3]
#> [1,]  2.3217300 -0.1467812 0.5220522
#> [2,] -0.1467812  4.1126757 0.5049819
#> [3,]  0.5220522  0.5049819 8.3078880

দ্বারা 2019-10-27 এ নির্মিত হয়েছিল ডিপেক্স প্যাকেজ (v0.3.0)

পরিশেষে, নোট করুন যে বিকল্প বিকল্পটি প্রথমে স্ক্র্যাচ থেকে প্রথম চেষ্টা করা, তারপরে Matrix::nearPD()আপনার ম্যাট্রিক্সকে ইতিবাচক-সুনির্দিষ্ট করে তুলতে ব্যবহার করুন।

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