Saya melihat dalam tutorial tentang pemodelan regresi perintah berikut:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
Apa sebenarnya yang dilakukan perintah ini, dan apa peran ~
(tilde) dalam perintah?
Saya melihat dalam tutorial tentang pemodelan regresi perintah berikut:
myFormula <- Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width
Apa sebenarnya yang dilakukan perintah ini, dan apa peran ~
(tilde) dalam perintah?
Jawaban:
Benda di sebelah kanan <-
adalah formula
objek. Ini sering digunakan untuk menunjukkan model statistik, di mana hal di sebelah kiri ~
adalah respon dan hal-hal di sebelah kanan ~
adalah variabel penjelas. Jadi dalam bahasa Inggris Anda akan mengatakan sesuatu seperti "Spesies tergantung pada Panjang Sepal, Lebar Sepal, Panjang Petal dan Lebar Petal" .
Bagian myFormula <-
dari baris itu menyimpan rumus dalam objek yang disebut myFormula
sehingga Anda dapat menggunakannya di bagian lain dari kode R.
Penggunaan umum lainnya dari objek rumus di R
The lattice
paket menggunakan mereka untuk menentukan variabel plot .
The ggplot2
paket menggunakan mereka untuk menentukan panel untuk merencanakan .
The dplyr
paket menggunakan mereka untuk non-standar evaulation .
lazyeval
sketsa memberikan pengantar yang bagus untuk apa formula itu
R mendefinisikan ~
operator (tilde) untuk digunakan dalam formula. Rumus memiliki semua jenis kegunaan, tetapi mungkin yang paling umum adalah untuk regresi:
library(datasets)
lm( myFormula, data=iris)
help("~")
atau help("formula")
akan mengajarkan Anda lebih banyak.
@Spacedman telah membahas dasar-dasarnya. Mari kita bahas cara kerjanya.
Pertama, sebagai operator, perhatikan bahwa ini pada dasarnya adalah jalan pintas ke suatu fungsi (dengan dua argumen):
> `~`(lhs,rhs)
lhs ~ rhs
> lhs ~ rhs
lhs ~ rhs
Itu bisa bermanfaat untuk diketahui untuk digunakan dalam mis apply
. Perintah keluarga.
Kedua, Anda dapat memanipulasi rumus sebagai teks :
oldform <- as.character(myFormula) # Get components
myFormula <- as.formula( paste( oldform[2], "Sepal.Length", sep="~" ) )
Ketiga, Anda dapat memanipulasinya sebagai daftar :
myFormula[[2]]
myFormula[[3]]
Akhirnya, ada beberapa trik yang membantu dengan formula (lihat help("formula")
lebih lanjut):
myFormula <- Species ~ .
Misalnya, versi di atas sama dengan versi asli, karena titik berarti "semua variabel belum digunakan." Ini terlihat pada data.frame yang Anda gunakan dalam panggilan model akhirnya, melihat variabel mana yang ada di data.frame tetapi tidak secara eksplisit disebutkan dalam rumus Anda, dan mengganti titik dengan variabel-variabel yang hilang.
Species~.
, spesies adalah satu-satunya variabel yang telah digunakan. Oleh karena itu, ini tergantung pada setiap variabel lain dalam data.frame.
myFormula <- Species ~ .
. Kapan dot masih bisa diganti dengan variabel dari data.frame? Bisakah Anda memberikan contoh