membuat grafik gf point menggunakan library mosaicCalc
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
Setiap parameter memiliki dimensinya sendiri.
Smother dan splines tidak ditentukam oleh bentuk dan paramteter aljabar, tetapi oleh data dan algoritma.
gf_point(height ~ age, data = datasets::Loblolly)
mengambil data dari library lalu dimasukkan dalam variabel dataup1
dataup1 = datasets::Loblolly
dataup1
## height age Seed
## 1 4.51 3 301
## 15 10.89 5 301
## 29 28.72 10 301
## 43 41.74 15 301
## 57 52.70 20 301
## 71 60.92 25 301
## 2 4.55 3 303
## 16 10.92 5 303
## 30 29.07 10 303
## 44 42.83 15 303
## 58 53.88 20 303
## 72 63.39 25 303
## 3 4.79 3 305
## 17 11.37 5 305
## 31 30.21 10 305
## 45 44.40 15 305
## 59 55.82 20 305
## 73 64.10 25 305
## 4 3.91 3 307
## 18 9.48 5 307
## 32 25.66 10 307
## 46 39.07 15 307
## 60 50.78 20 307
## 74 59.07 25 307
## 5 4.81 3 309
## 19 11.20 5 309
## 33 28.66 10 309
## 47 41.66 15 309
## 61 53.31 20 309
## 75 63.05 25 309
## 6 3.88 3 311
## 20 9.40 5 311
## 34 25.99 10 311
## 48 39.55 15 311
## 62 51.46 20 311
## 76 59.64 25 311
## 7 4.32 3 315
## 21 10.43 5 315
## 35 27.16 10 315
## 49 40.85 15 315
## 63 51.33 20 315
## 77 60.07 25 315
## 8 4.57 3 319
## 22 10.57 5 319
## 36 27.90 10 319
## 50 41.13 15 319
## 64 52.43 20 319
## 78 60.69 25 319
## 9 3.77 3 321
## 23 9.03 5 321
## 37 25.45 10 321
## 51 38.98 15 321
## 65 49.76 20 321
## 79 60.28 25 321
## 10 4.33 3 323
## 24 10.79 5 323
## 38 28.97 10 323
## 52 42.44 15 323
## 66 53.17 20 323
## 80 61.62 25 323
## 11 4.38 3 325
## 25 10.48 5 325
## 39 27.93 10 325
## 53 40.20 15 325
## 67 50.06 20 325
## 81 58.49 25 325
## 12 4.12 3 327
## 26 9.92 5 327
## 40 26.54 10 327
## 54 37.82 15 327
## 68 48.43 20 327
## 82 56.81 25 327
## 13 3.93 3 329
## 27 9.34 5 329
## 41 26.08 10 329
## 55 37.79 15 329
## 69 48.31 20 329
## 83 56.43 25 329
## 14 3.46 3 331
## 28 9.05 5 331
## 42 25.85 10 331
## 56 39.15 15 331
## 70 49.12 20 331
## 84 59.49 25 331
membuat file berformat xls dari data yang telah dimasukkan dalam variabel dataup1
library("xlsx")
write.xlsx(dataup1,"... lobolly.xls")
membaca data yang telah dibuat tadi
library("readxl")
baca_xls = read_excel("... lobolly.xls")
## New names:
## • `` -> `...1`
baca_xls
## # A tibble: 84 × 4
## ...1 height age Seed
## <chr> <dbl> <dbl> <chr>
## 1 1 4.51 3 301
## 2 15 10.9 5 301
## 3 29 28.7 10 301
## 4 43 41.7 15 301
## 5 57 52.7 20 301
## 6 71 60.9 25 301
## 7 2 4.55 3 303
## 8 16 10.9 5 303
## 9 30 29.1 10 303
## 10 44 42.8 15 303
## # … with 74 more rows
Sebuah “spline kubik”, yang mengikuti kelompok titik data dan kurva dengan mulus dan anggun. Sebuah “interpolant linier”, yang menghubungkan kelompok titik data dengan garis lurus.
f1 <- spliner(height ~ age, data = datasets::Loblolly)
## Warning in regularize.values(x, y, ties, missing(ties)): collapsing to unique
## 'x' values
f1
## function (age, deriv = 0)
## {
## x <- get(fnames[2])
## if (connect)
## SF(x)
## else SF(x, deriv = deriv)
## }
## <environment: 0x000002601aa596d8>
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
f2
## function (age)
## {
## x <- get(fnames[2])
## if (connect)
## SF(x)
## else SF(x, deriv = deriv)
## }
## <environment: 0x000002601add74d8>
membuat grafik gf_point dan digabungkan dengan slice_plot
library(dplyr)
library(mosaicCalc)
gf_point(height ~ age, data = datasets::Loblolly) %>%
slice_plot(f1(age) ~ age, color = "blue") %>%
slice_plot(f2(age) ~ age, color = "red")
library(mosaicCalc)
gf_point(Seed ~ age, data=datasets::Loblolly)
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
penyebab error kita bisa telaaah satu persatu programnnya dengan memecah kita cari tau dimana permasalahannya dalu di pecahkan.
fungsi konektor spline dan linier sangat mirip, kecuali untuk rentang input di luar rentang data. Namun, dalam rentang data tersebut, kedua jenis fungsi tersebut tepat berada di tengah setiap kelompok usia.
Cherry <- datasets::trees
gf_point(Volume ~ Girth, data = Cherry)
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 ="pink") %>%
gf_point(Volume ~ Girth, data = Cherry) %>%
gf_labs(x = "Girth (inches)")
kedua fungsi diatas sama sama mengikuti data. masing masing data bersikeras melewati setiap titik data. berikut ini ada fungsi 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)")
Smoother diberi nama yang baik: mereka membangun fungsi smooth yang mendekati data. Anda memiliki kendali atas seberapa mulus fungsi tersebut. Parameter hiper spanmengatur ini:
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 = 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)")
aturan saat membuat konektor yang lebih halus atau spline atau linier:
Anda memerlukan bingkai data yang berisi data.
Anda menggunakan rumus dengan variabel yang Anda inginkan sebagai output dari fungsi di sisi kiri tilde, dan variabel input di sisi kanan.
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.)
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 dalam 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
range(Cherry$Height)
## [1] 63 87
Daftar Pustaka: Kaplan, Daniel. 2020. Computer-age Calculus with R.