Bab 3 Parameter dan fungsi 3.1 Parameter versus variabel Mengapa sebenarnya tidak ada perbedaan.

Perbedaan Newton antara a, b, c, dan x, y, z.

3.2 Parameter fungsi pemodelan Berikan parameterisasi eksponensial, sinus, hukum pangkat …

Idenya adalah membuat argumen pada fungsi matematika tidak berdimensi.

Parameter dan logaritma – Anda dapat mengambil log apa pun yang Anda suka. Unit ditampilkan sebagai konstanta

3.3 Polinomial dan parameter Setiap parameter memiliki dimensinya sendiri

3.4 Parameter danmakeFun() Jelaskan cara makeFun()kerjanya di sini.

3.5 Fungsi tanpa parameter: splines dan smoother hyper-parameter. Ini adalah angka yang mengatur bentuk fungsi, tetapi dapat diatur secara sewenang-wenang dan tetap cocok dengan datanya. Hyper-parameter tidak diatur langsung oleh data.

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)

  1. Sebuah “spline kubik”, yang mengikuti kelompok titik data dan kurva dengan halus dan anggun.
library(mosaicCalc)
f1 <- spliner(height ~ age, data = datasets::Loblolly)
## Warning in regularize.values(x, y, ties, missing(ties)): collapsing to unique
## 'x' values
  1. “Interpolasi linier”, yang menghubungkan kelompok titik data dengan garis lurus.
library(mosaicCalc)
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

Anda bahkan dapat “menyelesaikannya”, misalnya menemukan usia di mana tingginya 35 kaki:

library(mosaicCalc)
findZeros(f1(age) - 35 ~ age, xlim=range(0,30))
##       age
## 1 12.6905
findZeros(f2(age) - 35 ~ age, xlim=range(0,30))
##    age
## 1 12.9

misalnya, dalam memperkirakan berapa nilai uang sebuah pohon. Namun, tidak seperti data pinus loblolly, data ceri hitam tidak melibatkan pohon yang jatuh dengan baik ke dalam kelompok yang ditentukan.

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

Cukup mudah untuk membuat spline atau konektor linier:

library(mosaicCalc)
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)")

Goyangan naik-turun adalah salah satu fungsinya yang sulit dipercaya. Untuk situasi seperti itu, di mana Anda memiliki alasan untuk percaya bahwa fungsi yang halus lebih sesuai daripada fungsi dengan banyak pasang surut, jenis fungsi yang berbeda sesuai: fungsi yang lebih halus

library(mosaicCalc)
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)")

Penghalus dinamai dengan baik: mereka membangun fungsi halus yang mendekati data. Anda memiliki kendali atas seberapa halus fungsinya seharusnya. Hyper-parameter spanmengatur ini:

library(mosaicCalc)
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")

Tentu saja, sering kali Anda ingin menangkap hubungan di mana terdapat lebih dari satu variabel sebagai input. Penghalus melakukan ini dengan sangat baik; cukup tentukan variabel mana yang akan menjadi input.

library(mosaicCalc)
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)")

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

Anda memerlukan bingkai data yang berisi data. Anda menggunakan rumus dengan variabel yang Anda inginkan sebagai output fungsi di sisi kiri tilde, dan variabel input di sisi kanan. Fungsi yang dibuat akan memiliki nama masukan yang cocok dengan variabel yang Anda tentukan sebagai masukan. (Untuk saat ini, hanya smootherakan menerima lebih dari satu variabel masukan.) Kelancaran suatu smootherfungsi dapat diatur oleh spanargumen. Rentang 1,0 biasanya cukup mulus. Kesalahannya adalah 0,5. Saat membuat spline, Anda memiliki opsi untuk mendeklarasikan monotonic=TRUE. Ini akan mengatur hal-hal untuk menghindari benjolan asing pada data yang menunjukkan pola naik yang stabil atau pola turun yang stabil. Saat Anda ingin memplot suatu fungsi, tentu saja Anda perlu memilih rentang untuk nilai input. Seringkali masuk akal untuk memilih rentang yang sesuai dengan data yang menjadi dasar fungsi. Anda dapat menemukan ini dengan range()perintah, misalnya

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