Saya mencoba menggunakan paket pemodelan statistik untuk mengevaluasi model dan juga melihat ukuran efek:

library(caret)
library(statisticalModeling)

a_model <- train(
  Sepal.Length ~ Species + Sepal.Width,
  data = iris,
  method = "lm"
)

statisticalModeling::effect_size(a_model$finalModel, ~ Species, data = iris)

Selama pemasangan model, r secara otomatis mengubah spesies variabel kategoris menjadi variabel dummy - bagus, saya tidak perlu khawatir tentang itu.

Namun, ini menimbulkan kesalahan ketika saya mencoba mengevaluasi model. Baris terakhir di atas memberikan:

Kesalahan dalam eval(expr, envir, enclos): objek 'Speciesversicolor' tidak ditemukan

Menempatkan pertanyaan saya dengan cara lain, apakah mungkin untuk mengambil data yang diubah yang digunakan untuk membangun model? Saya dapat kemudian meneruskan ini ke parameter data dari fungsi pemodelan statistik.

Saya mencoba mengalihkan data = iris ke data = a_model$trainingData tetapi menemukan pesan yang sama.

Saya tidak menemukan masalah ini menggunakan model linier dasar r, hanya dengan yang diturunkan dari tanda sisipan.

2
Doug Fir 15 November 2017, 07:13

1 menjawab

Jawaban Terbaik

Anda dapat menghindarinya menggunakan metode S3 default train.

b_model <- train(x = iris[, c("Species", "Sepal.Width")], 
                 y = iris$Sepal.Length, 
                 method = "lm")

identical(a_model$finalModel$coefficients, b_model$finalModel$coefficients)  # TRUE

statisticalModeling::effect_size(b_model$finalModel, ~ Species, data = iris)
3
cuttlefish44 15 November 2017, 04:49