##R UYGULAMASI ÜZERİNDEN MATRİSLERLE İLGİLİ TEMEL BİLGİLER

A <- matrix (c (8, 9, 15, 2.5, 4, 2.8), nrow=3, ncol=2)
A
##      [,1] [,2]
## [1,]    8  2.5
## [2,]    9  4.0
## [3,]   15  2.8

A matrisinin boyutu:

dim (A)
## [1] 3 2

Eğer bir matrisin satır sayısı n = 1 ise satır vektörü ve sutun sayısı p = 1 ise bir sütun vektörü olarak isimlendiıilir.

a <- c(8,9,12,4.5,2.7,2.8)
a
## [1]  8.0  9.0 12.0  4.5  2.7  2.8

R programinda bunlar matris sayilmamaktadir.Bunun için boyutuna bakabiliriiz ya da direkt soru sorarak ogrenebiliriz.

dim(a)
## NULL
is.matrix(a)
## [1] FALSE

Vektor olup olmadigini sorgulamak icinse;

is.vector(a)
## [1] TRUE

a vektorunun kac eleman icerdigine bakabiliriz

length(a)
## [1] 6

a vektorunu bir matris olarak da tanimlayabiliriz. Bu durumda a nin bir matriz oldugunu anlayacak ve satir ya da sutun sayisi olmadigindan dogrudan bir vektor olarak tanimlayacaktir.

a <- as.matrix(a)
a
##      [,1]
## [1,]  8.0
## [2,]  9.0
## [3,] 12.0
## [4,]  4.5
## [5,]  2.7
## [6,]  2.8

Simdi a vektorunun boyutunu R a sordugumuzda alacagimiz cevap bize satir ve sutun sayilarini verecektir.

dim(a)
## [1] 6 1

Ozetlemek gerekirse reel sayılar skaler, bu skaler sayılann tek bir satır ya da sutun halinde yan yana gelmesi vektör ve bu vektörlerin yan yana (sutun vektörleri) ve ya alt alta (satır vektörleri) birleştirilmesiyle oluşan yapı matris olarak adlandırılabilir.

Bu noktada R programında iki vektörün bir araya getirilerek nasıl matrise dönüseceğini de ifade etmek yararlı olacaktır.

a<- c(20,30,40)
b<- c(22,40, 48) 
a
## [1] 20 30 40
b
## [1] 22 40 48

a ve b vektörleri kullanılarak A ve B matrisleri R’a asağıdaki gibi tanımlanır.

A <- rbind(a,b)
A
##   [,1] [,2] [,3]
## a   20   30   40
## b   22   40   48
B <- cbind(a,b)
B
##       a  b
## [1,] 20 22
## [2,] 30 40
## [3,] 40 48

Bu matrislerin boyutu asagidaki gibi incelenir.

dim(A)
## [1] 2 3
dim(B)
## [1] 3 2

Vektorler ifade edilirken sadece reel sarlardan oluşmak zorunda degildir. Bir vektörün elemanları reel sayılar olabileceği gibi karakter ya da mantıksal ifadeler de olabilir.

#ORNEK.1 : Bir halisaha maçı için yedi kişilik takımda bulunan oyuncuların isimleri bir vektörde şu şekilde ifade edilebilir:

Kadro<-c("Halil","Seckin","Murat","Enes","Ahmet","Hilmi","Kaleci") 
Kadro
## [1] "Halil"  "Seckin" "Murat"  "Enes"   "Ahmet"  "Hilmi"  "Kaleci"

Ayrica söz konusu bu takimin kaptani olan kigi için mantiksal bir vektör kullanarak ilgili kisi için kaptan ise Dogru anlamında TRUE, degilse Yanlis anlaminda FALSE kelimesini girerek bir Kaptan degiskeni ifade edilebilir:

Kaptan <-c (FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE)
Kaptan
## [1] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE

Son olarak bu oyuncularin hal sahada giydikleri forma numaralan da nümerik bir vektörde tanumlanabilir:

Forma <-c (8, 7, 6,5, 10,9, 1)
Forma
## [1]  8  7  6  5 10  9  1

Böylece bir veri çerçevesi olusturarak takumun listesi, forma numaralan ve kaptanın kim oldugu ifade edilebilir. Bunun için data. frame fonksiyonu açagidaki gibi kullanılir.

Takim <- data.frame(Forma,Kadro,Kaptan)
Takim
##   Forma  Kadro Kaptan
## 1     8  Halil  FALSE
## 2     7 Seckin   TRUE
## 3     6  Murat  FALSE
## 4     5   Enes  FALSE
## 5    10  Ahmet  FALSE
## 6     9  Hilmi  FALSE
## 7     1 Kaleci  FALSE

names komutu ile bu veri çerçevesinin her bir sütununu yeniden isimlendirebilir ve düzenleyebiliriz:

names(Takim) <- c("Forma NO", "Isim", "Kaptan")
Takim
##   Forma NO   Isim Kaptan
## 1        8  Halil  FALSE
## 2        7 Seckin   TRUE
## 3        6  Murat  FALSE
## 4        5   Enes  FALSE
## 5       10  Ahmet  FALSE
## 6        9  Hilmi  FALSE
## 7        1 Kaleci  FALSE

Ayrica bir matrisin ya da vektörün belirli elemanlan R’da sorulabilir. Ömegin takinda kimin kaptan oldugu asagidaki gibi sorgulanabilir.

Takim[which (Takim$Kaptan==TRUE),2]
## [1] "Seckin"

Burada öncelikle Takam veri cerçevesinin Kaptan sütununda TRUE degerine sahip olan gözlem which (Takzm$Kaptan==TRUE) belirlenmistir. Daha sonra bu gözlemin Takim veri erçevesinin 2. Sütunundaki degeri, yani ilgili oyuncunun ismi Tolga olarak yazdirilmistir.

#ORNEK.2 :

ornek.2 deki A matrisi ve a vektörü için istenilen degerler söyle sorgulanabiilir. A matrisinin birinci satir ikinci sütun elemani

A[1,2]
##  a 
## 30

A’nin birinci satiri.

A[1,]
## [1] 20 30 40

A’nan ikinci sütunu.

A[,2]
##  a  b 
## 30 40

a vektörünün üçüncü elemanı

a[3]
## [1] 40

##Bir Matrisin Transpozu (Devrigi)

#ORNEK.3:

R ile bir matrisin transpozu baska bir matrise asagidaki gibi tanumlanir.

A<-matrix (c (15,26,30,40,30, 48) ,nrow=2, ncol=3)
A
##      [,1] [,2] [,3]
## [1,]   15   30   30
## [2,]   26   40   48

A matrisinin transpozunu alalım

B <- t(A)
B
##      [,1] [,2]
## [1,]   15   26
## [2,]   30   40
## [3,]   30   48

##Kosegen matris gosterimi

x<-c (1,4,8)
C<-diag (x)
C
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    4    0
## [3,]    0    0    8

ya da,

C<-diag (c (1,4,8) )
C
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    4    0
## [3,]    0    0    8

seklinde gosterilir.

#ORNEK.4: R ile bir matrisin iz’inin hesaplanmasi

Bir kare matrisin kösegen elemanlarnin toplami o matrisin iz’i (trace) olarak ad-landinlur ve iz(A) ya da tr(A) ile gösterilir.

library (psych)
A<-matrix (c(1:9), 3,3)
A
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6    9
tr(A)
## [1] 15

##MATRİSLERDE MATEMATİKSEL İSLEMLER

#ORNEK.5:

Matristerde toplama ve cikarma, Matrislerde toplama ve gikarma islemleri söyle yapilir: matrisleri verilsin. Buna göre C = A + B ve D = A - B islemleri asagidaki gibi gerçeklestirilir.

A <- matrix(c(6,8,18,7,13,3),2,3)
B <- matrix(c(32,17,34,4,27,1),2,3)
A
##      [,1] [,2] [,3]
## [1,]    6   18   13
## [2,]    8    7    3
B
##      [,1] [,2] [,3]
## [1,]   32   34   27
## [2,]   17    4    1
C=A+B
C
##      [,1] [,2] [,3]
## [1,]   38   52   40
## [2,]   25   11    4
D = A-B
D
##      [,1] [,2] [,3]
## [1,]  -26  -16  -14
## [2,]   -9    3    2

#ORNEK.6: Matrislerin çarpilmasi: Bir matrisin skaler bir sayİ ile çarpilmasi, matrisin tüm elemanlarmin o skaler say ile carpilmasi demektir.

Bir matrisin skaler bir sayi ile carpilmasi,

E <- 3*A
E
##      [,1] [,2] [,3]
## [1,]   18   54   39
## [2,]   24   21    9

#ORNEK.7: R da aynı boyutlu iki matrisin carpilmasi,

E<-A*B
E
##      [,1] [,2] [,3]
## [1,]  192  612  351
## [2,]  136   28    3

#ORNEK.8: Farkli boyutlardaki iki matrisin carpilmasi

A<-matrix (c(5,-1,2,5) ,nrow=2,ncol=2)
B<-matrix (c (6,-1,7,1, 6,5) ,nrow=2, ncol=3)
A%*%B
##      [,1] [,2] [,3]
## [1,]   28   37   40
## [2,]  -11   -2   19

##MATRİSİN DETARMINANTI

Bir matrisin determinanti reel bir sayidir ve |A| biçiminde ifade edilir. Matrisin determinantinin hesaplanmast için kare bir matris olmasi gerekmektedir.

#ORNEK.9: R da matrisin detarmantini hesapma

A<-matrix (c(4, 6, 4,7,6,3,1,3,5) , 3,3)
A
##      [,1] [,2] [,3]
## [1,]    4    7    1
## [2,]    6    6    3
## [3,]    4    3    5
det(A)
## [1] -48

##MATRİSİN TERSİ

Bir A matrisinin tersinin almabilmesi için matrisin kare olmasi gerekmektedir ve A matrisinin tersi A uzeri -1 ile ifade edilir.

#ORNEK.10:

R da matrisin tersini hesaplama

A<-matrix (c(4, 6, 4,7,6,3,1,3,5), 3,3)
A
##      [,1] [,2] [,3]
## [1,]    4    7    1
## [2,]    6    6    3
## [3,]    4    3    5

Matrisin tersi,

solve(A)
##         [,1]       [,2]    [,3]
## [1,] -0.4375  0.6666667 -0.3125
## [2,]  0.3750 -0.3333333  0.1250
## [3,]  0.1250 -0.3333333  0.3750

Duzenlenmis hali,

round(solve(A),3)
##        [,1]   [,2]   [,3]
## [1,] -0.438  0.667 -0.312
## [2,]  0.375 -0.333  0.125
## [3,]  0.125 -0.333  0.375

#Yukarıdaki ozelliklerin uygulamalarla gosterimi

#ORNEK.11:

A ve B matrisleri kare, C matrisi kösegen ve D matrisi ise ortogonal bir matristir. Matrisler R’ye asagdaki gibi girilir,

A<-matrix (c (6,5,2,5) ,2,2) 
A
##      [,1] [,2]
## [1,]    6    2
## [2,]    5    5
B <- matrix(c(2,-4,8,2),2,2)
B
##      [,1] [,2]
## [1,]    2    8
## [2,]   -4    2
C<-diag(c(6,3,1))
C
##      [,1] [,2] [,3]
## [1,]    6    0    0
## [2,]    0    3    0
## [3,]    0    0    1
D<-matrix (c (1/3,2/3,2/3, -2/3, -1/3,2/3,2/3, -2/3,1/3) , 3,3)
D
##           [,1]       [,2]       [,3]
## [1,] 0.3333333 -0.6666667  0.6666667
## [2,] 0.6666667 -0.3333333 -0.6666667
## [3,] 0.6666667  0.6666667  0.3333333

#1. (AB)(-1)=B(-1)A^(-1) R da nasıl yapilir.

solve(A%*%B)  #(A*B)^(-1)
##            [,1]         [,2]
## [1,] 0.06944444 -0.072222222
## [2,] 0.01388889  0.005555556
solve(B)%*%solve (A) # (B^ (-1)) x (A^ (-1) )
##            [,1]         [,2]
## [1,] 0.06944444 -0.072222222
## [2,] 0.01388889  0.005555556

#2. |A^(-1)|= |A|^(-1) R da gosterimi nasil yapilir.

det(solve(A))
## [1] 0.05
det(A)^-1
## [1] 0.05

ve ya

1/det (A)
## [1] 0.05

#3. Kosegen matrisin tersinin alinmasi

solve(C)
##           [,1]      [,2] [,3]
## [1,] 0.1666667 0.0000000    0
## [2,] 0.0000000 0.3333333    0
## [3,] 0.0000000 0.0000000    1

#4. Ortogonal matrisin tersi ile transpozunun esit olmasimin gösterilmesi

t (D)
##            [,1]       [,2]      [,3]
## [1,]  0.3333333  0.6666667 0.6666667
## [2,] -0.6666667 -0.3333333 0.6666667
## [3,]  0.6666667 -0.6666667 0.3333333
solve(D)  # D^ (-1)
##            [,1]       [,2]      [,3]
## [1,]  0.3333333  0.6666667 0.6666667
## [2,] -0.6666667 -0.3333333 0.6666667
## [3,]  0.6666667 -0.6666667 0.3333333

Elde edilen bu iki matrisin esit olup-olmadig asagidaki gibi sorgulanabilir.

round(t(D) , 10) == round(solve(D) , 10)
##      [,1] [,2] [,3]
## [1,] TRUE TRUE TRUE
## [2,] TRUE TRUE TRUE
## [3,] TRUE TRUE TRUE

#5. Simdi matrisin transpozu ile çarpiminin birim matris olacagin gösterelim

round(t(D)%*%D, 2)   # D'xD=I
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1

##MATRİSİN RANKI

Matrisin rank’ı, matrisin satır veya sütun vektörlerinden elde edilebilecek doğrusal olarak bağımsız vektörlerin sayısını ifade eder.

Bunu R ile hesaplayalim.

qr(A)$rank
## [1] 2
library(Matrix)
## Warning: package 'Matrix' was built under R version 4.2.3
rankMatrix(A)
## [1] 2
## attr(,"method")
## [1] "tolNorm2"
## attr(,"useGrad")
## [1] FALSE
## attr(,"tol")
## [1] 4.440892e-16

#ORNEK.12: Kare bir matrisin rankını R ile hesaplama

B<-matrix (c (1,9, -3,1,4,-4,6,5,7) , 3,3)
B
##      [,1] [,2] [,3]
## [1,]    1    1    6
## [2,]    9    4    5
## [3,]   -3   -4    7
qr(B)$rank
## [1] 3

ya da

rankMatrix (B)
## [1] 3
## attr(,"method")
## [1] "tolNorm2"
## attr(,"useGrad")
## [1] FALSE
## attr(,"tol")
## [1] 6.661338e-16

Detarminant sifir oldugunda tam ranki olmadiğina karar verilebilir.

round (det (B) , 1)
## [1] -174

tam ranki değildir.

##OZDEGER VE OZVEKTOR

#ORNEK.13: Asagida tanimlayacagimiz A matrisinin ozdeger ve ozvektor matrisini R ile hesaplama

A<-matrix(c(-2,17, -8, 19) ,2, 2)
A
##      [,1] [,2]
## [1,]   -2   -8
## [2,]   17   19

ozdeger

eigen(A)$values
## [1] 8.5+5.074446i 8.5-5.074446i

ozvektor

eigen(A)$vectors
##                       [,1]                  [,2]
## [1,] -0.5093248+0.2461468i -0.5093248-0.2461468i
## [2,]  0.8246211+0.0000000i  0.8246211+0.0000000i

ORNEK.14: Deretrminant ve Iz’in ozdegerlerden hesaplanmasi,

A<-matrix (c (20,10,8,1, 20,5, -3, 1, 30) , 3, 3)
A
##      [,1] [,2] [,3]
## [1,]   20    1   -3
## [2,]   10   20    1
## [3,]    8    5   30
det(A)
## [1] 11938
library(psych)
tr(A)
## [1] 70
oz<-eigen(A)$value
oz
## [1] 26.93287+3.81269i 26.93287-3.81269i 16.13426+0.00000i
oz<-as.matrix(oz)
oz
##                   [,1]
## [1,] 26.93287+3.81269i
## [2,] 26.93287-3.81269i
## [3,] 16.13426+0.00000i
iz <- sum(oz)
iz
## [1] 70+0i

##SPEKTRAL AYRISIM

A matrisinin özdegerler ve özvektörler matrisi cinsinden ifade edilmesine, A matrisinin spektral ayrisim denir.

#ORNEK.15: A matrisinin spektral ayrisimini R ile yapiniz,

A<-matrix (c (10,2,5,2,3,-2,5,-2, 4) , 3,3)
A
##      [,1] [,2] [,3]
## [1,]   10    2    5
## [2,]    2    3   -2
## [3,]    5   -2    4
ozdeger<-eigen(A)$values
ozdeger
## [1] 12.892518  4.912698 -0.805216
ozdegerMatris <- diag(ozdeger)
ozdegerMatris
##          [,1]     [,2]      [,3]
## [1,] 12.89252 0.000000  0.000000
## [2,]  0.00000 4.912698  0.000000
## [3,]  0.00000 0.000000 -0.805216
ozvektor <- eigen(A)$vector
ozvektor
##            [,1]       [,2]       [,3]
## [1,] 0.87647512 -0.2222742  0.4270662
## [2,] 0.08126045 -0.8060221 -0.5862807
## [3,] 0.47453989  0.5485641 -0.6883962
B<- ozvektor%*%ozdegerMatris%*%t(ozvektor)
B
##      [,1] [,2] [,3]
## [1,]   10    2    5
## [2,]    2    3   -2
## [3,]    5   -2    4

Pozitif Tanimli Matris ve Cholesky Parçalanmasi

#ORNEK.16:Asagdaki A matrisinin pozitif tanimli olup-olmadigin inceleye-rek, eger pozitif tanimh ise Cholesky parçalanmasi ile A = T’T esitigini saglayan T matrisini elde ediniz.

library (matrixcalc)
A <- matrix(c (3,0, -3, 0, 12, 3, -3,3,20),ncol=3)
A
##      [,1] [,2] [,3]
## [1,]    3    0   -3
## [2,]    0   12    3
## [3,]   -3    3   20
is.positive.definite (A)
## [1] TRUE

Buna göre A matrisi pozitif tanimlidir.

T matrisi R programinda bulunan base paketinde chol fonksiyonu ile kolaylikla elde edilebilir.

library(base)
T<-chol(A)
T
##          [,1]     [,2]       [,3]
## [1,] 1.732051 0.000000 -1.7320508
## [2,] 0.000000 3.464102  0.8660254
## [3,] 0.000000 0.000000  4.0311289

Elde edilen bu T matrisi kullanilarak matrisin kendisinin elde edilebilecegi ise asagidaki gibi kolayca gösterilir.

t(T)%*%T
##      [,1] [,2] [,3]
## [1,]    3    0   -3
## [2,]    0   12    3
## [3,]   -3    3   20

Sonuç olarak elde edilen bu T matrisinin transpozu ile çarpumi, orijinal A matrisini vermektedir.

COK DEGİSKENLİ VERİ YAPİSİ VE VERİ MATRİSİ

Çok değişkenli veri matrisi, birden fazla değişken içeren ve bu değişkenlerin değerlerini düzenli bir şekilde tablo şeklinde gösteren matristir.

KLASİK COK DEGİSKENLİ İSTATİSTİKLER

Klasik çok değişkenli istatistikler, aynı anda birden fazla bağımlı değişkeni analiz eden istatistiksel yöntemlerdir. Bu teknikler, farklı değişkenler arasındaki ilişkileri anlamak, örüntüleri tanımlamak ve veri indirgemesi yapmak için kullanılır.

#ORNEK.17:

Asagida tanimlayacagimiz veride, a- X, degiskeni için sirasiyla ortalama, varyans, standart sapma degerlerini hesaplayiniz. b-X1 ve X2 degiskenleri arasindaki kovaryansi ve korelasyonu hesaplayiniz.

X1<-c(2, 4, 6, 8, 10, 6, 2, 7, 6, 7)
X2<-c(0.17,0.15,0.42,0.34,0.82,0.54,0.41,0.52,0.50,0.71)
X3<-c(17,54,12, 63, 47, 51, 28, 81,29,35)
Veri<-cbind(X1,X2,X3) #Degiskenler sütun olarak birlestirilir
t(Veri)
##     [,1]  [,2]  [,3]  [,4]  [,5]  [,6]  [,7]  [,8] [,9] [,10]
## X1  2.00  4.00  6.00  8.00 10.00  6.00  2.00  7.00  6.0  7.00
## X2  0.17  0.15  0.42  0.34  0.82  0.54  0.41  0.52  0.5  0.71
## X3 17.00 54.00 12.00 63.00 47.00 51.00 28.00 81.00 29.0 35.00
library(MSMwRA)
data(Sim1)
str(Sim1)
## 'data.frame':    10 obs. of  3 variables:
##  $ X1: num  3 4 6 5 8 6 4 5 6 7
##  $ X2: num  0.27 0.35 0.42 0.39 0.72 0.54 0.41 0.52 0.5 0.71
##  $ X3: num  78 54 82 63 47 51 28 81 29 35

a-

X1 <- Veri[,1]
X1
##  [1]  2  4  6  8 10  6  2  7  6  7
X1 <- Sim1$X1
X1
##  [1] 3 4 6 5 8 6 4 5 6 7

X1’ in ortalamasi

mean(X1)
## [1] 5.4

ya da

sum (X1) /length (X1)
## [1] 5.4

X1’ in Varyansi

var (X1)
## [1] 2.266667

ya da

sum ( (X1-mean (X1) ) ^2) / (length (X1) -1)
## [1] 2.266667

X1’ in Standart Sapmasi

sd(X1)
## [1] 1.505545

ya da

sqrt(var (X1) )
## [1] 1.505545

b- X1 ve X2 degiskenleri arasindaki kovaryans ve korelasyon hesaplamasi,

X2<-Sim1$X2   # XI ile X2 arasindaki kovaryans
X2
##  [1] 0.27 0.35 0.42 0.39 0.72 0.54 0.41 0.52 0.50 0.71
 sum ( (X1-mean (X1)) * (X2-mean (X2) )) / (length (X1) -1)
## [1] 0.2008889

ya da

cov (X1,X2)
## [1] 0.2008889

X1 ile X2 arasindaki korelasyon

cov(X1, X2) / sqrt (var (X1) *var (X2) )
## [1] 0.9097445

ya da

 cor (X1, X2)
## [1] 0.9097445

#ORNEK.18: Asagida olusturacagimiz veri setine ait ortalama vektoru ile kovaryans ve korelasyon matrislerini hesaplayiniz.

library(matrixStats)
## Warning: package 'matrixStats' was built under R version 4.2.3
library(MSMwRA)
mean(Sim1)
## Warning in mean.default(Sim1): argument is not numeric or logical: returning NA
## [1] NA
colMeans(Sim1)
##     X1     X2     X3 
##  5.400  0.483 54.800
library(matrixStats)
Sim1 <- as.matrix(Sim1)
colVars(Sim1)
##           X1           X2           X3 
##   2.26666667   0.02151222 431.51111111
cov(Sim1)
##            X1          X2         X3
## X1  2.2666667  0.20088889  -9.355556
## X2  0.2008889  0.02151222  -1.264889
## X3 -9.3555556 -1.26488889 431.511111
cor(Sim1)
##            X1         X2         X3
## X1  1.0000000  0.9097445 -0.2991436
## X2  0.9097445  1.0000000 -0.4151583
## X3 -0.2991436 -0.4151583  1.0000000

ikisini duzenlemek istersek,

round(cor (Sim1), 2)
##       X1    X2    X3
## X1  1.00  0.91 -0.30
## X2  0.91  1.00 -0.42
## X3 -0.30 -0.42  1.00
round (cov(Sim1), 2)
##       X1    X2     X3
## X1  2.27  0.20  -9.36
## X2  0.20  0.02  -1.26
## X3 -9.36 -1.26 431.51

#ORNEK.19: R ile standartlastirma islemi asagidaki gibi yapilir.

Sim1<-as.matrix(Sim1)
mu<-colMeans (Sim1)   # Sim1 verisine ait ortalama vektörü
sig<-cov(Sim1)  #Sim1 verisine ait kovaryans matrisi
n<-nrow(Sim1) # Simi verisindeki gözlem sayisi
birv<-rep (1,n) #n tane 1 ile olusturulmus Inxi matrisi

Standartlastirma islemi esitlik 3.15 yardimiyla yapilir.

z <- (Sim1-birv%*%t(mu))%*%solve(diag(sqrt(diag(sig))))
z
##             [,1]       [,2]        [,3]
##  [1,] -1.5941068 -1.4522352  1.11684266
##  [2,] -0.9298956 -0.9067948 -0.03851182
##  [3,]  0.3985267 -0.4295344  1.30940174
##  [4,] -0.2656845 -0.6340745  0.39474611
##  [5,]  1.7269490  1.6158674 -0.37549020
##  [6,]  0.3985267  0.3886263 -0.18293112
##  [7,] -0.9298956 -0.4977144 -1.29014583
##  [8,] -0.2656845  0.2522662  1.26126197
##  [9,]  0.3985267  0.1159061 -1.24200606
## [10,]  1.0627379  1.5476873 -0.95316744

Orijinal veri ile standart veri arasinda özel bir iliski vardir. Standartlastirilmis veri setinin kovaryans matrisi ile orijinal degiskenin korelasyon matrisi birbirine esittir. Ayrica standart verinin kovaryans ve korelasyon matrisi de birbirine esittir.

Cor(X) = Cou(Z) = Cor(Z) = R

 round (cor (Sim1), 3)
##        X1     X2     X3
## X1  1.000  0.910 -0.299
## X2  0.910  1.000 -0.415
## X3 -0.299 -0.415  1.000
round (cov (z) , 3)
##        [,1]   [,2]   [,3]
## [1,]  1.000  0.910 -0.299
## [2,]  0.910  1.000 -0.415
## [3,] -0.299 -0.415  1.000
round (cor(z) , 3)
##        [,1]   [,2]   [,3]
## [1,]  1.000  0.910 -0.299
## [2,]  0.910  1.000 -0.415
## [3,] -0.299 -0.415  1.000

##DAYANIKLILIK TAHMİN EDICILER

#ORNEK.20: olusturacagimiz veri setinin ortalamasini, standart sapmasini ve varyansini bulunuz.

X<-c (2.2,3.25,5.48,4.17,2.87, 2.38, 4.49,2.57,2.84)
mean (X)
## [1] 3.361111
var (X)
## [1] 1.235011
sd(X)
## [1] 1.111311

Simdi son terimin yanlislikla 2.28 degil de 28.4 olarak girildigi varsayilsin ve ilgili degerler tekrar hesaplansin.

X.ayk<-c (2.2,3.25,5.48,4.17,2.87, 2.38, 4.49,2.57,28.4)
mean(X.ayk)
## [1] 6.201111
var (X.ayk)
## [1] 70.49551
sd (X.ayk)
## [1] 8.39616

Görüldügü gibi noktann bir basamak saga kaymasi ile klasik tahmin ediciler verinin konumu ve yayilimi hakkinda büyük bir yanlgiya düsmüslerdir. Veri incelendiginde konumunun (2,3) aralginda oldugu açikça görülmektedir. Ancak veri setinde aykiri deger olmasi verinin konumunu tahmin eden örnek ortalamasim basarsizliga ugratmistir. Ayn sekilde varyans ve standart sapma degeri de oldukça büyümüstür. Halbuki verinin genel yapisina bakaldiginda gözlemlerin dagiliginin cok genis olmadigi görülmektedir.

#ORNEK.21: Yukaridaki verinin sirasiyla hem orjinal hali hem de aykiri degerli hali icin MAD, MADN degerlerini hesaplayalim.

Orjinal veri icin,

x<-c (2.2,3.25,5.48,4.17,2.87, 2.38, 4.49,2.57,2.84)
 median (x)
## [1] 2.87
mad (x, constant=1)
## [1] 0.49

ya da

median (abs (x-median (x) ))
## [1] 0.49
MADN<-mad (x, constant=1) /0.6745
MADN
## [1] 0.726464

Aykiri deger iceren veri icin,

x.ayk<-c(2.2,3.25,5.48,4.17,2.87, 2.38, 4.49,2.57,2.84)
 median (x.ayk)
## [1] 2.87
mad (x.ayk, constant=1)
## [1] 0.49

ya da

median (abs (x.ayk -median (x.ayk) ))
## [1] 0.49
MADN<-mad (x.ayk, constant=1) /0.6745
 MADN
## [1] 0.726464

Görüldügü gibi veri setinde aykiri deger olmasi robust tahminleri zerinde herhangi bir degisiklige neden olmamistir.

##TAHMİN EDİCİLER

MVE (Minimum Volume Ellipsoid) ve MCD (Minimum Covariance Determinant) tahmin edicileri, istatistikte aykiri degerleri göz önünde bulundurarak dayanikli kovaryans tahmin yöntemleri olarak kullanilir. Her iki yöntem de veri setinde aykiri degerlerin etkisini azaltarak merkez ve yayilm tahminlerinin dana dogru olmasini saglar.

MVE ve MCD, dayanikli (robust) tahmin yöntemleri olup, klasik kovaryans tahmin yöntemlerine göre aykiri degerlerin etkisini azaltir. MCD, genelde hesaplama açisindan daha hizli oldugu için genis veri setlerinde tercih edilirken; MVE, daha küçük veri setlerinde kullanilabilir. Bu yöntemler, aykiri degerlerin merkezi ve yayilim tahminlerini bozmasini önleyerek veri analizinde daha guvenilir sonuçlar elde edilmesini saglar.

MVE tahmini icin,

library(MSMwRA)
#cov.rob(Veri, method="mve") # ya da cov.mve (Veri)

MCD tahmini için,

#cov.rob (Veri, method="mcd") # ya da cov.med (Veri)

#ORNEK.22:Asagdaki Cok degiskenli veri setinin konum ve yayilm parametreleri için klasik, MVE ve MCD tahminlerini elde ediniz.

library(MSMwRA)
data (Sim2)
str (Sim2)
## 'data.frame':    10 obs. of  2 variables:
##  $ X1: num  7.93 4.6 2.85 4.25 5.85 ...
##  $ X2: num  25.5 19.3 19.3 20 18.2 ...

Klasik tahminler;

colMeans (Sim2) # Klasik ortalama vektörü
##       X1       X2 
## 10.70896 31.55301
cov (Sim2) # Klasik kovaryans matrisi
##          X1        X2
## X1 403.4055  813.4525
## X2 813.4525 1658.7641

MVE Tahminleri;

library (MASS)   
cov.rob (Sim2, method="mve")
## $center
##        X1        X2 
##  5.025155 19.065380 
## 
## $cov
##          X1       X2
## X1 5.513742 1.108962
## X2 1.108962 2.242838
## 
## $msg
## [1] "0 singular samples of size 3 out of 120"
## 
## $crit
## [1] 4.253722
## 
## $best
## [1] 2 3 4 5 6 9
## 
## $n.obs
## [1] 10

Dikkat edilirse sadece konum ve yayilm parametreleri için MVE tahminlerinin hesaplanmasi istenmesine ragmen, cov. rob ya da cov.mve fonksiyonlarna ait ciktida istenmeyen ilave bilgiler de yer almaktadir.

MVE, tahmin üzerinden söz konusu degerleri yazdarmak için nesneden sonra ayni ifadelerin yazilmasi yeterli olacaktir. Bu islemler asagida gerçeklestirilmistir.

MVE Tahminleri;

MVE.tahmin <- cov.mve(Sim2)
MVE.tahmin$center # MVE ortalama vektörü
##        X1        X2 
##  5.025155 19.065380
MVE.tahmin$cov
##          X1       X2
## X1 5.513742 1.108962
## X2 1.108962 2.242838

Benzer sekilde MCD tahminleri de elde edilebilir. MCD Tahminleri;

MCD.tahmin <- cov.mcd(Sim2)
MCD.tahmin$center # MCD ortalama vektörü
##        X1        X2 
##  5.025155 19.065380
MCD.tahmin$cov  # MCD kovaryans matrisi
##          X1       X2
## X1 5.513742 1.108962
## X2 1.108962 2.242838

Konum ve yayilm tahminlerine bakildiginda verinin geldigi dagilima ait ortalama vektörü ve kovaryans matrisi parametrelerine MVE ve MCD’nin yakin oldugu, ancak klasik tahminlerin oldukça basarisiz oldugu görülmektedir. Klasik tahmin edicilerin basarisiz olma nedeni verideki tüm gözlemlere uyma egilimine sahip olmalarindandir. Bu durum tolerans elipsi cizilerek rahathikla görülebilir.

#ORNEK.23: Veri seti için klasik ve MCD kovaryans matristerine dayanan tolerans elipsierini agagidaki komut yardimyla ciziniz.

library(robustbase)
## 
## Attaching package: 'robustbase'
## The following objects are masked from 'package:matrixStats':
## 
##     colMedians, rowMedians
tolEllipsePlot(Sim2, classic = TRUE)

Kirmizi Elips (Robust - MCD): Bu elips, dayanikli (robust) MCD tahmin edicisine dayanarak gizilmistir. Aykiri degerlere duyarsiz oldugu için verinin büyük çogunlugunu kapsayan ve aykiri degerlerden daha az etkilenen bir elips olusturur.

Mavi Noktall Elips (Classical): Bu elips ise klasik kovaryans tahminlerine dayanarak gizilmistir. Klasik yöntemler, aykiri degerlerin etkisinde kalir,dolayisyla elips verinin ana kitlesinden uzaklasarak daha genis bir alana yayilmistir.

Klasik yöntem, aykiri degerlerin varliginda yayilim tahminini genigletip merkezden uzaklagan bir elips gizerken, dayanikli yöntem verinin ana kismini daha iyi temsil eden bir elips gizmektedir. • Bu grafikte kirmizi elipsin daha dar ve merkezde toplandigi, mavi noktali elipsin ise daha genis bir alana yayildigi görülmektedir. • Aykiri degerler veya us noktalar, klasik tahminin bagarisiz olmasina neden olurken, robust tahminler ana veriyi daha dogru bir sekilde temsiletmektedir.

Bu komut kullanildiginda hem robust(MCD) tahminlere dayanan hem de klasik tahminlere dayanan tolerans elipsleri cizilir. Eger classic= FALSE yazilirsa sadece robust elipsi cizilir.

Zeynep Ebrar Özel 121521021