##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
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
#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.
Ç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.
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