Berikut adalah beberapa contoh implementasi linear aljabar pada R menggunakan paket tidyverse dan tidyquant:
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidyquant)
## Loading required package: PerformanceAnalytics
## Loading required package: xts
## Loading required package: zoo
##
## Attaching package: 'zoo'
##
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
##
##
## ######################### Warning from 'xts' package ##########################
## # #
## # The dplyr lag() function breaks how base R's lag() function is supposed to #
## # work, which breaks lag(my_xts). Calls to lag(my_xts) that you type or #
## # source() into this session won't work correctly. #
## # #
## # Use stats::lag() to make sure you're not using dplyr::lag(), or you can add #
## # conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop #
## # dplyr from breaking base R's lag() function. #
## # #
## # Code in packages is not affected. It's protected by R's namespace mechanism #
## # Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning. #
## # #
## ###############################################################################
##
## Attaching package: 'xts'
##
## The following objects are masked from 'package:dplyr':
##
## first, last
##
##
## Attaching package: 'PerformanceAnalytics'
##
## The following object is masked from 'package:graphics':
##
## legend
##
## Loading required package: quantmod
## Loading required package: TTR
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(datasets)
Matriks: Membuat matriks pada R dapat dilakukan dengan menggunakan fungsi matrix(). Berikut adalah contoh cara membuat matriks pada R:
# Membuat matriks
matriks <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3)
# Menampilkan matriks
matriks
## [,1] [,2] [,3]
## [1,] 1 3 5
## [2,] 2 4 6
Vektor: Membuat vektor pada R dapat dilakukan dengan menggunakan fungsi c(). Berikut adalah contoh cara membuat vektor pada R:
# Membuat vektor
x <- c(1, 2, 3)
y <- c(4, 5, 6)
# Menampilkan vektor (Outpur)
x
## [1] 1 2 3
y
## [1] 4 5 6
Operasi matematika: Perhitungan operasi matematika matriks dan vektor pada R dapat dilakukan dengan menggunakan operator -, +, *, dan /. Berikut adalah contoh cara melakukan operasi matematika pada matriks dan vektor:
# Melakukan operasi matematika pada matriks
matriks1 <- matrix(c(1, 2, 3, 4, 5, 6), nrow = 2, ncol = 3)
matriks2 <- matrix(c(7, 8, 9, 10, 11, 12), nrow = 2, ncol = 3)
matriks1 + matriks2 # Menjumlahkan kedua matriks
## [,1] [,2] [,3]
## [1,] 8 12 16
## [2,] 10 14 18
matriks1 - matriks2 # Mengurangkan kedua matriks
## [,1] [,2] [,3]
## [1,] -6 -6 -6
## [2,] -6 -6 -6
matriks1 * matriks2 # Mengali kedua matriks
## [,1] [,2] [,3]
## [1,] 7 27 55
## [2,] 16 40 72
matriks1 / matriks2 # Membagi kedua matriks
## [,1] [,2] [,3]
## [1,] 0.1428571 0.3333333 0.4545455
## [2,] 0.2500000 0.4000000 0.5000000
# Melakukan operasi matematika pada vektor
x <- c(1, 2, 3)
y <- c(4, 5, 6)
x + y # Menjumlahkan kedua vektor
## [1] 5 7 9
x - y # Mengurangkan kedua vektor
## [1] -3 -3 -3
x * y # Mengali kedua vektor
## [1] 4 10 18
x / y # Membagi kedua vektor
## [1] 0.25 0.40 0.50
Regresi linier: Regresi linier dapat dilakukan pada R dengan menggunakan paket tidyverse dan tidyquant. Berikut adalah contoh cara melakukan regresi linier pada R:
# Memuat data iris
data(iris)
# Melakukan regresi linier sederhana
reg1 <- lm(Sepal.Length ~ Petal.Length, data = iris)
# Menampilkan hasil regresi
summary(reg1)
##
## Call:
## lm(formula = Sepal.Length ~ Petal.Length, data = iris)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.24675 -0.29657 -0.01515 0.27676 1.00269
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.30660 0.07839 54.94 <2e-16 ***
## Petal.Length 0.40892 0.01889 21.65 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4071 on 148 degrees of freedom
## Multiple R-squared: 0.76, Adjusted R-squared: 0.7583
## F-statistic: 468.6 on 1 and 148 DF, p-value: < 2.2e-16
Dekomposisi matriks dan PCA: Dekomposisi matriks dan analisis komponen utama (PCA) dapat dilakukan pada R dengan menggunakan paket tidyverse. Berikut adalah contoh cara melakukan dekomposisi matriks dan PCA pada R:
# Membuat matriks
m <- matrix(c(1, 2, 3, 4), nrow = 2, ncol = 2)
# Melakukan dekomposisi matriks
eigen(m)
## eigen() decomposition
## $values
## [1] 5.3722813 -0.3722813
##
## $vectors
## [,1] [,2]
## [1,] -0.5657675 -0.9093767
## [2,] -0.8245648 0.4159736
# Melakukan PCA pada iris dataset
data(iris)
iris_pca <- select(iris, -Species) %>%
scale() %>%
prcomp()
# Menampilkan hasil PCA
summary(iris_pca)
## Importance of components:
## PC1 PC2 PC3 PC4
## Standard deviation 1.7084 0.9560 0.38309 0.14393
## Proportion of Variance 0.7296 0.2285 0.03669 0.00518
## Cumulative Proportion 0.7296 0.9581 0.99482 1.00000