Nama : Akbar Bimantara T

NIM : 220605110080

Kelas : C

Mata Kuliah : Kalkulus

Dosen Pengampu : Prof. Dr. Suhartono, M.kom

Jurusan : Teknik Informatika

Universitas : UIN Maulana Malik Ibrahim Malang

Jadi, rangkuman kali ini mengenai scatterplot dan fungsi grafik dari 2 variabel serta modul bab 3 “Parameter dan Fungsi”

Disini menggunakan file survei tentang kondisi perumahan untuk orang-orang di berbagai kelompok pendapatan di AS, pertama harus unduh dulu file nya di R Markdown seperti di bawah ini :

Housing = read.csv("http://www.mosaic-web.org/go/datasets/Income-Housing.csv")

Setelah itu dapat melihat data hanya dengan mengetikkan nama objek yang menyimpan data, misalnya :

Housing[1:3,1:5]
##   Income IncomePercentile CrimeProblem AbandonedBuildings IncompleteBathroom
## 1   3914                5         39.6               12.6                2.6
## 2  10817               15         32.4               10.0                3.3
## 3  21097               30         26.7                7.1                2.3

Ketika ingin mengakses salah satu variabel dengan memberikan nama seluruh kumpulan data diikuti dengan nama variabel, dua nama dipisahkan oleh tanda, seperti ini: $

Housing $IncomePercentile
## [1]  5 15 30 50 70 90

Semua variabel dalam kumpulan data akan ditampilkan.

Bisa dilihat dengan jelas nama semua variabe dalam format kompak dengan perintah: names()

names(Housing) 
##  [1] "Income"              "IncomePercentile"    "CrimeProblem"       
##  [4] "AbandonedBuildings"  "IncompleteBathroom"  "NoCentralHeat"      
##  [7] "ExposedWires"        "AirConditioning"     "TwoBathrooms"       
## [10] "MotorVehicle"        "TwoVehicles"         "ClothesWasher"      
## [13] "ClothesDryer"        "Dishwasher"          "Telephone"          
## [16] "DoctorVisitsUnder7"  "DoctorVisits7To18"   "NoDoctorVisitUnder7"
## [19] "NoDoctorVisit7To18"

Bentuk penyajian data yang paling informatif adalah grafis. Salah satu bentuk grafis yang paling sering digunakan adalah scatter-plot, formatnya setiap “kasus” atau “titik data” diplot sebagai titik di lokasi koordinat yang diberikan 2 variabel. Misal, plot sebaran dari fraksi rumah tangga yang memiliki lingkungan dengan masalah kejahatan, versus pendapatan rata-rata dalam kelompok.

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(CrimeProblem ~ Income, data = Housing )

Grafik dibangun berlapis-lapis. Jika ingin memplot fungsi matematika di atas data, yaitu harus menggunakan fungsi plotting untuk membuat layer lain. Kemudian, untuk menampilkan dua lapisan dalam plot yang sama, hubungkan dengan simbol (disebut “pipa”). Perlu Perhatikan bahwa tidak akan pernah bisa pergi di awal baris baru. %>%%>%

gf_point( 
  AbandonedBuildings ~ Income, data=Housing ) %>%
  slice_plot(
    15 - Income/2500 ~ Income, color = "purple")

Ketika membuat data, ada cara mengatur batas sumbu sesuai keinginan sendiri, seperti berikut ini:

gf_point(
  CrimeProblem ~ Income, data = Housing) %>% 
  slice_plot(
    37 - Income / 2500 ~ Income, color = "purple") %>%
  gf_lims(
    x = range(0,100000), 
    y=range(0,50))

Dari grafik di bawah ini dapat diketahui bahwa semakin tinggi suhunya atau temperaturnya maka waktu yang dibutuhkan semakin lama, jadi berbanding lurus.

h = read.csv("http://www.mosaic-web.org/go/datasets/hawaii.csv")
gf_point(water ~ time, data=h)

Untuk bisa mengambil data dari library maka harus dimasukkan dalam variabel dataup1, seperti di bawah ini:

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

Lalu, membuat file yang telah berformat xlsx dari data yang telah dimasukkan tadi dalam variabel dataup1

library("xlsx")
## Warning: package 'xlsx' was built under R version 4.2.2
write.xlsx(dataup1,"... lobolly.xls")
library("readxl")
## Warning: package 'readxl' was built under R version 4.2.2
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

#Cara Membuat Contour Plot

slice_plot(
  95 - 73*exp(-.2*t) ~ t, 
  domain(t = 0:20) )

Digunakan untuk memplot dengan dua variabel input. Perlu membuat daftar dua variabel di sebelah kanan dan perlu memberikan rentang untuk masing-masing variabel. Misalnya : contour_plot() +

contour_plot(
  sin(t) ~ t & x, 
  domain(t = range(0,2), x = range(0,3)))
## Warning in contour_plot(sin(t) ~ t & x, domain(t = range(0, 2), x = range(0, :
## No dependence of function on y variable. Contour labels may be misplaced.

contour_plot(
  sin(2*pi*t/10)*exp(-.2*x) ~ t & x, 
  domain(t = range(0,10), x = range(0,25)))

contour_plot( 
  sin(pi*t/10)*exp(-.2*x) ~ t & x, 
  domain(t=0:20, x=0:10))

Untuk membuat tampilannya jadi lebih menarik bisa dengan cara 3D atau 3 dimensi. Jadi fungsinya itu sebagai permukaan, diplot dalam 3 dimensi.

interactive_plot(
   sin(2*pi*t/10)*exp(-.5*x) ~ t & x, 
   domain(t = 0:20, x = 0:10))

Agar dapat membuat fungsi yang dievaluasi secara numerik, maka buatlah fungsi dengan: makeFun()

g <- makeFun(
  sin(2*pi*t/10)*exp(-.2*x) ~ t & x)
contour_plot(
  g(t, x) ~ t + x,  
  domain(t=0:20, x=0:10))

g(x = 4, t = 7)
## [1] -0.4273372

Telah dipastikan agar diberi nama argumen secara jelas saat memasukkan nilai.

g(4, 7)
## [1] 0.1449461

Alasan perbedaan adalah ketika argumen diberikan tanpa nama, itu adalah posisi dalam urutan argumen yang penting. Jadi, di atas, 4 digunakan untuk nilai dan 7 untuk nilai

Parameter dan Fungsi 1. Parameter Versus Variabel Contoh perbedaan Newton antara a, b, c, dan x, y, z. 2. Parameter Fungsi Pemodelan Idenya adalah untuk membuat argumen ke fungsi matematika tidak berdimensi.

Parameter dan logaritma, dapat mengambil log apa pun yang disukai. Unit muncul sebagai konstanta. 3. Polinimial dan Parameter Setiap parameter memiliki dimensinya sendiri. 4. Parameter dan makeFun() Cara Kerja makeFun() dengan parameter.

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
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: 0x000001aa2a715d40>
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: 0x000001aa2ac108b0>

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 = "purple") %>%
  slice_plot(f2(age) ~ age, color = "red")

Fungsi tanpa Parameter : Spline dan Smoother

Hyper-parameter adalah angka yang mengatur bentuk fungsi tapi tidak diatur oleh data.

“Smoothers” dan “splines” adalah dua jenis fungsi tujuan umum yang dapat menangkap pola dalam data, tetapi tidak ada bentuk aljabar sederhana.

Smoother dan spline didefinisikan bukan oleh bentuk dan parameter aljabar, tetapi oleh data dan algoritma. Ilustrasinya berupa kumpulan data berisi Seed dan usia pinus loblolly. Loblolly

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

Spline dan konektor tidak selalu seperti yang diinginkan, terutama ketika data tidak dibagi menjadi kelompok-kelompok diskrit, seperti halnya data pinus loblolly. Misalnya, kumpulan data adalah pengukuran volume, ketebalan, dan tinggi pohon. Pohon-pohon ditebang untuk kayu, dan dalam melakukan pengukuran adalah untuk membantu memperkirakan berapa banyak volume kayu yang dapat digunakan dan dapat diperoleh dari pohon, berdasarkan ketebalan yaitu, keliling dan ketinggian. Ini akan berguna, misalnya, dalam memperkirakan berapa nilai sebuah pohon.

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

Cara untuk membuat spline atau konektor linier :

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

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 untuk membangun fungsi dengan halus yang mendekati data.

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

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

Diperlukan bingkai data yang berisi data. 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 input yang cocok dengan variabel yang ditentukan sebagai input. (Untuk saat ini, hanya akan menerima lebih dari satu variabel input.)smoother Kelancaran suatu fungsi dapat diatur oleh argumen. Rentang 1.0 biasanya cukup mulus. Kesalahan de adalah 0, 5.smoother span Saat membuat spline, memiliki opsi untuk mendeklarasikan . Ini akan mengatur hal-hal untuk menghindari benjolan asing dalam data yang menunjukkan pola ke atas yang stabil atau pola ke bawah yang stabil. monotonic=TRUE Saat memplot fungsi harus memilih rentang untuk nilai input. Misalnya range()

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