Apakah ada cara mudah dalam R untuk membuat regresi linier atas model dengan 100 parameter dalam R? Katakanlah kita memiliki vektor Y dengan 10 nilai dan kerangka data X dengan 10 kolom dan 100 baris Dalam notasi matematika saya akan menulis Y = X[[1]] + X[[2]] + ... + X[[100]]
. Bagaimana saya menulis sesuatu yang serupa dalam sintaks R?
22
Jawaban:
Coba ini
sumber
y ~ . + .^2
. Dan seterusnya.y ~ . + .:x1
akan memberi Anda interaksi dari setiap variabel (kecualix1
) denganx1
. Dan seterusnya; Anda mendapatkan idenya.Jawaban bagus!
Saya akan menambahkan bahwa secara default, memanggil
formula
padadata.frame
menciptakan formula aditif untuk mundur kolom pertama ke yang lain.Jadi, dalam hal jawaban @ danas.zuokas, Anda bahkan dapat melakukannya
yang ditafsirkan dengan benar.
sumber
R
operator :)Jika ada kolom lain yang tidak ingin Anda sertakan sebagai prediktor, Anda harus menghapusnya
X
sebelum menggunakan trik ini, atau menggunakan-
dalam rumus model untuk mengecualikannya. Misalnya, jika Anda ingin mengecualikan prediktor ke-67 (yang memiliki nama yang sesuaix67
), maka Anda dapat menulisJuga, jika Anda ingin memasukkan interaksi, dll. Anda harus menambahkannya secara manual sebagai (misalnya)
atau pastikan mereka dimasukkan sebagai kolom dari
X
.sumber
Anda juga dapat menggunakan kombinasi
formula
danpaste
fungsi.Data Setup : Mari Ini bayangkan kita memiliki data.frame yang berisi variabel prediktor
x1
untukx100
dan variabel dependen kamiy
, tapi itu ada juga variabel gangguanasdfasdf
. Juga variabel prediktor disusun dalam urutan sedemikian rupa sehingga tidak semua bersebelahan dalam data.frame.Bayangkan juga bahwa Anda memiliki string yang berisi nama-nama variabel prediktor. Dalam hal ini, ini dapat dengan mudah dibuat menggunakan
paste
fungsi, tetapi dalam situasi lain,grep
atau beberapa pendekatan lain mungkin digunakan untuk mendapatkan string ini.Terapkan pendekatan : Kami kemudian dapat membuat formula sebagai berikut:
collapse
menyisipkan argumen+
antara variabel prediktorformula
mengubah string menjadi objek formula kelas yang cocok untuklm
fungsi tersebut.Lebih umum, saya menggunakan fungsi berikut secara teratur ketika saya ingin menyediakan variabel prediktor sebagai vektor nama variabel.
Misalnya,
sumber
do.call
mengevaluasi rumus sebelum meneleponlm
.