MulaiMulai sekarang secara gratis

Transformasi input: "hockey stick"

Dalam latihan ini, Anda akan membangun model untuk memprediksi harga dari ukuran rumah (luas permukaan). Himpunan data houseprice, yang sudah dimuat untuk Anda, memiliki kolom:

  • price: harga rumah dalam satuan $1000
  • size: luas permukaan

Sebuah scatterplot dari data menunjukkan pola yang cukup nonlinier: semacam "hockey-stick" di mana harga relatif datar untuk rumah yang lebih kecil, tetapi naik tajam seiring ukuran rumah bertambah. Bentuk fungsi kuadratik dan kubik sering cocok untuk mengekspresikan hubungan seperti hockey-stick. Perhatikan bahwa mungkin tidak ada alasan "fisik" bahwa price berhubungan dengan kuadrat size; kuadratik hanyalah pendekatan bentuk tertutup atas hubungan yang diamati.

scatterplot

Anda akan menyesuaikan model untuk memprediksi harga sebagai fungsi dari kuadrat ukuran, dan melihat kecocokannya pada data latih.

Karena ^ juga merupakan simbol untuk mengekspresikan interaksi, gunakan fungsi I() (docs) untuk memperlakukan ekspresi x^2 “apa adanya”: yaitu sebagai kuadrat dari x, bukan interaksi x dengan dirinya sendiri.

exampleFormula = y ~ I(x^2)

Latihan ini adalah bagian dari kursus

Supervised Learning di R: Regresi

Lihat Kursus

Petunjuk latihan

  • Tulis sebuah rumus, fmla_sqr, untuk mengekspresikan price sebagai fungsi dari size kuadrat. Cetak rumus tersebut.
  • Sesuaikan model model_sqr ke data menggunakan fmla_sqr
  • Sebagai pembanding, sesuaikan model linear model_lin ke data menggunakan rumus price ~ size.
  • Lengkapi bagian kosong untuk
    • membuat prediksi pada data latih dari kedua model
    • memutar prediksi menjadi satu kolom pred menggunakan pivot_longer().
    • membandingkan secara grafis prediksi kedua model terhadap data. Model mana yang lebih sesuai?

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# houseprice is available
summary(houseprice)

# Create the formula for price as a function of squared size
(fmla_sqr <- ___)

# Fit a model of price as a function of squared size (use fmla_sqr)
model_sqr <- ___

# Fit a model of price as a linear function of size
model_lin <- ___

# Make predictions and compare
houseprice %>% 
    mutate(pred_lin = ___(___),       # predictions from linear model
           pred_sqr = ___(___)) %>%   # predictions from quadratic model
    pivot_longer(cols = c('pred_lin', 'pred_sqr'), names_to = 'modeltype', values_to = 'pred') %>% # pivot the predictions
    ggplot(aes(x = size)) + 
       geom_point(aes(y = ___)) +                   # actual prices
       geom_line(aes(y = ___, color = modeltype)) + # the predictions
       scale_color_brewer(palette = "Dark2")
Edit dan Jalankan Kode