Rangkuman BAB 3

Nama : Fairuz Ardhan Haunan

NIM : 220605110038

Kelas : B

Parameter dan Fungsi

1. Parameter Versus Variabel

Sebenarnya tidak ada perbedaan Newton antara a, b, c, dan x, y, z.

2. Parameter Fungsi Pemodelan

Kita dapat mengambil log apapun yang kita suka untuk parameter dan logaritma. Ide memberikan parameterisasi eksponensial, sinus, hukum pangkat adalah untuk membuat argumen ke fungsi matematika berdimensi.

3. Polinomial dan Parameter

Setiap parameter memiliki dimensinya sendiri.

4. Parameter dan makeFun()

5. Fungsi tanpa Parameter : Splines dan Smooths

Hiper-parameter adalah angka yang mengatur bentuk fungsi namun dapat diatur secara bebas dan masih cocok dengan data. Parameter hiper tidak disetel langsung oleh data.

Model matematika berusaha menangkap pola di dunia nyata karena model dapat lebih mudah dipelajari dan dimanipulasi daripada dunia itu sendiri. Salah satu fungsi penting fungsi adalah untuk mereproduksi atau menangkap dan juga memodelkan pola yang muncul didalam data.

Pemilihan fungsi tertentu seperti eksponensial atau hukum pangkat dimotivasi oleh pemahaman tentang proses yang terlibat dalam pola yang digunakan fungsi untuk dimodelkan.

“Smoothers” dan “Splines” adalah dua jenis fungsi tujuan umum yang dapat menangkap pola dari dalam data. Fungsi tidak harus selalu mewakili rumus. Smoother dan splines tidak ditentukan oleh bentuk dan parameter aljabar, tetapi oleh data dan algoritma.

Berikut ini adalah contoh dari mempertimbangkan beberapa data sederhana.

library(mosaic)
## Registered S3 method overwritten by 'mosaic':
##   method                           from   
##   fortify.SpatialPolygonsDataFrame ggplot2
## 
## The 'mosaic' package masks several functions from core packages in order to add 
## additional features.  The original behavior of these functions should not be affected by this.
## 
## Attaching package: 'mosaic'
## The following objects are masked from 'package:dplyr':
## 
##     count, do, tally
## The following object is masked from 'package:Matrix':
## 
##     mean
## The following object is masked from 'package:ggplot2':
## 
##     stat
## The following objects are masked from 'package:stats':
## 
##     binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
##     quantile, sd, t.test, var
## The following objects are masked from 'package:base':
## 
##     max, mean, min, prod, range, sample, sum
gf_point(height ~ age, data=datasets::Loblolly)

Berikut adalah analisis dari data tersebut.

Beberapa pinus berusia tiga tahun dengan tinggi yang sangat mirip diukur dan dilacak dari waktu ke waktu, mulai dari usia lima tahun, sepuluh tahun, dan seterusnya. Walaupun pohonnya berbeda, namun semuanya sangat mirip dan menunjukkan pola sederhana. Pertumbuhan linier tampak menurun seiring waktu.

Kita coba mempertimbangkan dua hal ini,

  1. f1 <- spliner(height ~ age, data = datasets::Loblolly)

    f1 <- spliner(height ~ age, data = datasets::Loblolly)
    ## Warning in regularize.values(x, y, ties, missing(ties)): collapsing to unique
    ## 'x' values
  2. Sebuah spline kubik yang mengikuti kelompok titik data dan kuva dengan mulus dan anggun.

    f2 <- connector(height ~ age, data = datasets::Loblolly)
    ## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
    ## collapsing to unique 'x' values

Kita dapat memasukkan input dan mendapatkan outputnya.

f1(age = 8)
## [1] 20.68193
f2(age = 13)
## [1] 35.303

Lalu kita dapat membuat grafiknya

library(mosaic)
library(mosaicCalc)
## Loading required package: mosaicCore
## 
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
## 
##     count, tally
## Loading required package: Deriv
## Loading required package: Ryacas
## 
## Attaching package: 'Ryacas'
## The following objects are masked from 'package:Matrix':
## 
##     diag, diag<-
## The following object is masked from 'package:stats':
## 
##     integrate
## The following objects are masked from 'package:base':
## 
##     %*%, diag, diag<-, lower.tri, upper.tri
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D
gf_point(height ~ age, data = datasets::Loblolly) %>%
  slice_plot(f1(age) ~ age) %>%
  slice_plot(f2(age) ~ age, color="blue", ) 

Kemudian kita dapat menyelesaikannya dengan menemukan usia dimana ketinggian akan menjadi 50 kaki.

findZeros(f1(age) - 50 ~ age, xlim=range(0,30))
##       age
## 1 19.2778
findZeros(f2(age) - 50 ~ age, xlim=range(0,30))
##       age
## 1 19.3279

Program ini seakan tidak memberi tahu pembaca apa yang dilakukan oleh tubuh fungsi. Hal ini terjadi dikarenakan definisi ini sudah mengacu pada data yang telah tersimpan didalam library.

Fungsi konektor spine dan linier sangat mirip bila dilihat dari data tersebut, kecuali untuk rentang input diluar rentang data.

Berikut ini kode untuk melihat ceri hitam yang tidak melibatkan pohon yang jatuh ke dalam kelompok yang ditentukan.

Cherry <- datasets::trees
gf_point(Volume ~ Girth, data = Cherry)

Cara mudah membuat spline atau konektor linier.

g1 = spliner(Volume ~ Girth, data = Cherry)
## Warning in regularize.values(x, y, ties, missing(ties)): collapsing to unique
## 'x' values
g2 = connector(Volume ~ Girth, data = Cherry)
## Warning in regularize.values(x, y, ties, missing(ties), na.rm = na.rm):
## collapsing to unique 'x' values
slice_plot(g1(x) ~ x, domain(x = 8:18)) %>%
  slice_plot(g2(x) ~ x, color ="red") %>%
  gf_point(Volume ~ Girth, data = Cherry) %>%
  gf_labs(x = "Girth (inches)")

fungsi smoother dapat digunakan untuk percaya bahwa fungsi mulus lebih tepat daripada fungsi dengan banyak pasang surut.

g3 <- smoother(Volume ~ Girth, data = Cherry, span=1.5)
gf_point(Volume~Girth, data=Cherry) %>%
  slice_plot(g3(Girth) ~ Girth) %>%
  gf_labs(x = "Girth (inches)")

Kita coba bangun fungsi smooth agar mendekati data dengan kendali melalui fungsi parameter hiper span.

g4 <- smoother(Volume ~ Girth, data=Cherry, span=1.0)
gf_point(Volume~Girth, data = Cherry) %>%
  slice_plot(g4(Girth) ~ Girth) %>%
  gf_labs(x = "Girth (inches)", y = "Wood volume")

Smoother dapat menangkap hubungan lebih dari satu variabel sebagai input. Kita cukup menentukan variabel mana yang akan menjadi input.

g5 <- smoother(Volume ~ Girth+Height, 
               data = Cherry, span = 1.0)
gf_point(Height ~ Girth, data = Cherry) %>%
  contour_plot(g5(Girth, Height) ~ Girth + Height) %>%
  gf_labs(x = "Girth (inches)", 
          y = "Height (ft)", 
          title = "Volume (ft^3)")

Ingat beberapa aturan saat membuat konektor smoother, spline, atau liner.

  1. Diperlukan bingkai data yang berisi data.
  2. Menggunakan rumus dengan variabel yang kita inginkan sebagi output dari fungsi di sisi kiri tilde, dan variasi di sisi kanan.
  3. Fungsi yang dibuat akan memiliki input yang cocok dengan variabel yang ditentukan sebagai input.
  4. Kelancaran suatu fungsi smoother dapat diatur oleh argumen span. Rentang 1,0 biasanya mulus dan rentang 0,5 adalah kesalahannya.
  5. Saat membuat spline, kita memiliki opsi untuk mendeklarasikan monotonic = True. Hal ini akan mengatur hal-hal untuk menunjukkan pola naik yang stabil atau pola turun yang stabil.

Kita perlu memilih rentang untuk nilai input. Memilih rentang sesuai data yang menjadi dasar fungsi lebih masuk akal. Misalnya kita dapat menemukannya dengan perintah range(). Contoh :

range(Cherry$Height)
## [1] 63 87