Bab 3 Parameter dan fungsi 3.1 Parameter versus variabel Variabel mewakili keadaan model, dan dapat berubah selama simulasi . Parameter biasanya digunakan untuk mendeskripsikan objek secara statis. Parameter biasanya berupa konstanta dalam satu simulasi, dan diubah hanya ketika Anda perlu menyesuaikan perilaku model Anda. 3.2 Parameter fungsi pemodelan Parameter dan logaritma – Anda dapat mengambil log apa pun yang Anda suka. Satuan muncul sebagai konstanta. 3.3 Polinomial dan parameter polinomial adalah aljabar yang memuat variabel atau biasanya disebut suku banyak. 3.4 Parameter dan makeFun() 3.5 Fungsi tanpa parameter: splines dan smooths “Smoothers” dan “splines” adalah dua jenis fungsi tujuan umum yang dapat menangkap pola dalam data, tetapi tidak ada bentuk aljabar sederhana. Membuat fungsi seperti itu sangat mudah, selama Anda dapat membebaskan diri dari gagasan bahwa fungsi harus selalu memiliki rumus.

Smoother dan splines tidak ditentukan oleh bentuk dan parameter aljabar, tetapi oleh data dan algoritma. Sebagai ilustrasi, pertimbangkan beberapa data sederhana. Kumpulan data Loblollyberisi 84 pengukuran usia dan tinggi pinus loblolly.

library(mosaicCalc)
## Loading required package: 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
## Loading required package: mosaicCore
## 
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
## 
##     count, tally
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D
gf_point(height ~ age, data=datasets::Loblolly)

Dari data diatas menjelaskan pertambahan tinggi loblolly atau pinus dari mulai 3-25 tahun.

library(mosaicCalc)
f1 <- spliner(height ~ age, data = datasets::Loblolly)
## Warning in regularize.values(x, y, ties, missing(ties)): collapsing to unique
## 'x' values
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
f1(age = 15)
## [1] 40.54357

dengan format ini f1& f2(age =(masukkan umur)) lalu run formatnya anda akan mendapatkan tinggi pohon pinus sesuai dengan umurnya.cobalah dengan mengganti (masukkan umur) sesuai yang kamu inginkan lalu run maka nanti akan muncul tinngi pinus pada umur yang kmu masukkan. dan berpatokan pada grafik diatas.

library(mosaicCalc)
f2(age = 4)
## [1] 7.221429
findZeros(f1(age) - 45 ~ age, xlim=range(0,30))
##       age
## 1 16.9566
findZeros(f2(age) - 23 ~ age, xlim=range(0,30))
##   age
## 1 8.7
## function (age) 
## {
##     x <- get(fnames[2])
##     if (connect) 
##         SF(x)
##     else SF(x, deriv = deriv)
## }
## <environment: 0x7ff1bf85ec18>
Cherry <- datasets::trees
gf_point(Volume ~ Girth, data = Cherry)

membuat spline atau konektor linier dari data diatas:

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 = 6:18)) %>%
  slice_plot(g2(x) ~ x, color ="yellow") %>%
  gf_point(Volume ~ Girth, data = Cherry) %>%
  gf_labs(x = "Girth (inches)")

contoh fungsi yang lebih halus(smoother):

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)")

fungsi smooth yang mendekati data,menggunakan 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")

g5 <- smoother(Volume ~ Girth+Height, 
               data = Cherry, span = 2.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)")

Saat Anda membuat konektor yang lebih halus atau spline atau linier, ingat aturan ini:

1.Anda memerlukan bingkai data yang berisi data. 2.Anda menggunakan rumus dengan variabel yang Anda inginkan sebagai output dari fungsi di sisi kiri tilde, dan variabel input di sisi kanan. 3.Fungsi yang dibuat akan memiliki nama input yang cocok dengan variabel yang Anda tentukan sebagai input. (Untuk saat ini, hanya smootherakan menerima lebih dari satu variabel input.) 4.Kelancaran suatu smootherfungsi dapat diatur oleh spanargumen. Rentang 1,0 biasanya cukup mulus. Kesalahannya adalah 0,5. 5.Saat membuat spline, Anda memiliki opsi untuk mendeklarasikan monotonic=TRUE. Ini akan mengatur hal-hal untuk menghindari benjolan asing dalam data yang menunjukkan pola naik yang stabil atau pola turun yang stabil.

kita dapat menemukan rentang dengan perintah range()mislanya:

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