Angles and Orthogonality (sudut dan ortogonalitas) merujuk pada konsep hubungan antara sudut dan keberadaan sudut yang tegak lurus satu sama lain.

Sudut: Sudut adalah ukuran rotasi antara dua garis atau bidang yang berpotongan di titik tertentu. Sudut diukur dalam derajat atau radian. Sudut yang lebih kecil akan menghasilkan rotasi yang lebih kecil, sedangkan sudut yang lebih besar akan menghasilkan rotasi yang lebih besar. Sudut yang paling umum adalah sudut 90 derajat, yang juga dikenal sebagai sudut tegak lurus.

Ortogonalitas: Dalam matematika, dua objek dikatakan ortogonal jika mereka saling tegak lurus satu sama lain. Dua vektor atau dua garis dianggap ortogonal jika sudut antara mereka adalah 90 derajat. Dalam tiga dimensi, dua bidang dianggap ortogonal jika mereka saling tegak lurus.

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
library(ggfortify)
## Warning: package 'ggfortify' was built under R version 4.2.3
library(gridExtra)
## Warning: package 'gridExtra' was built under R version 4.2.3
df <- USArrests
df <- na.omit(df)
df <- scale(df)
pc <- prcomp(df, scale=TRUE)
autoplot(pc, data=df)

perhatikan bahwa karena kita memiliki empat variabel, set data tersebut berada dalam ruang vektor V = R4. Untuk menghitung komponen utama, yang membentuk basis ortonormal untuk ruang vektor V = R4, kita akan menggunakan fungsi princomp() di R. “loadings” adalah keluaran dari fungsi princomp() dan merupakan sekumpulan komponen utama, yang merupakan basis ortonormal untuk V = R4:

pca<- princomp(data.frame(scale(df)))
pca$loadings
## 
## Loadings:
##          Comp.1 Comp.2 Comp.3 Comp.4
## Murder    0.536  0.418  0.341  0.649
## Assault   0.583  0.188  0.268 -0.743
## UrbanPop  0.278 -0.873  0.378  0.134
## Rape      0.543 -0.167 -0.818       
## 
##                Comp.1 Comp.2 Comp.3 Comp.4
## SS loadings      1.00   1.00   1.00   1.00
## Proportion Var   0.25   0.25   0.25   0.25
## Cumulative Var   0.25   0.50   0.75   1.00

ODR adalah analisis regresi untuk kumpulan data di Rd yang mencoba menemukan bidang linier sedemikian rupa sehingga jumlah kuadrat jarak antara setiap titik data dan proyeksinya pada bidang linier diminimalkan pada semua bidang linier yang mungkin di Rd. Pertama, kami mengunggah paket ISLR dan kumpulan data.

Kemudian, karena ada beberapa nilai yang hilang, kita menggunakan fungsi na/omit() untuk menghapus semua nilai yang hilang:

library(ISLR) 
data(Hitters) 
D <- na.omit(Hitters)
library(pracma)
## Warning: package 'pracma' was built under R version 4.2.3

Fungsi as.matrix() membuat kumpulan data menjadi sebuah matriks numerik. Argumen pertama dari fungsi odregress() adalah sekumpulan variabel independen. Dalam hal ini adalah “AtBat” (kolom pertama dari data) dan “Hits” (kolom kedua dari data).

Argumen kedua dari fungsi ini adalah variabel dependen. Dalam hal ini adalah “Gaji”. Kemudian jika Anda mengetikkan “res$coeff” yang menghasilkan koefisien dari bidang linier:

res <- odregress(as.matrix(D[,1:2]), as.matrix(D$Salary))
res$coeff
## [1]  -43.53176  150.65796 1861.91571