ANOVA dan regresi linier adalah setara ketika kedua model menguji terhadap hipotesis yang sama dan menggunakan pengkodean identik. Model berbeda dalam tujuan dasar mereka: ANOVA sebagian besar bersangkutan dengan perbedaan hadir antara sarana kategori dalam data sementara regresi linier sebagian besar perhatian untuk memperkirakan respon berarti sampel dan terkait .σ2
Agaknya orang bisa menggambarkan ANOVA sebagai regresi dengan variabel dummy. Kita dapat dengan mudah melihat bahwa ini adalah kasus dalam regresi sederhana dengan variabel kategori. Variabel kategorikal akan dikodekan sebagai matriks indikator (matriks 0/1
tergantung pada apakah subjek merupakan bagian dari kelompok tertentu atau tidak) dan kemudian digunakan langsung untuk solusi sistem linear yang dijelaskan oleh regresi linier. Mari kita lihat contoh dengan 5 grup. Demi argumen, saya akan berasumsi bahwa rata-rata group1
sama dengan 1, rata-rata group2
sama dengan 2, ... dan rata-rata group5
sama dengan 5. (saya menggunakan MATLAB, tetapi hal yang persis sama adalah setara dalam R.)
rng(123); % Fix the seed
X = randi(5,100,1); % Generate 100 random integer U[1,5]
Y = X + randn(100,1); % Generate my response sample
Xcat = categorical(X); % Treat the integers are categories
% One-way ANOVA
[anovaPval,anovatab,stats] = anova1(Y,Xcat);
% Linear regression
fitObj = fitlm(Xcat,Y);
% Get the group means from the ANOVA
ANOVAgroupMeans = stats.means
% ANOVAgroupMeans =
% 1.0953 1.8421 2.7350 4.2321 5.0517
% Get the beta coefficients from the linear regression
LRbetas = [fitObj.Coefficients.Estimate']
% LRbetas =
% 1.0953 0.7468 1.6398 3.1368 3.9565
% Rescale the betas according the intercept
scaledLRbetas = [LRbetas(1) LRbetas(1)+LRbetas(2:5)]
% scaledLRbetas =
% 1.0953 1.8421 2.7350 4.2321 5.0517
% Check if the two results are numerically equivalent
abs(max( scaledLRbetas - ANOVAgroupMeans))
% ans =
% 2.6645e-15
Seperti yang bisa dilihat dalam skenario ini hasilnya di mana persis sama. Perbedaan numerik menit disebabkan oleh desain yang tidak seimbang sempurna serta prosedur estimasi yang mendasari; ANOVA mengakumulasikan kesalahan numerik sedikit lebih agresif. Untuk hal itu kita cocok intercept, LRbetas(1)
; kita bisa cocok dengan model intersep-free tapi itu tidak akan menjadi regresi linier "standar". (Namun hasilnya akan lebih dekat dengan ANOVA.)
F
abs( fitObj.anova.F(1) - anovatab{2,5} )
% ans =
% 2.9132e-13
Ini karena prosedur menguji hipotesis yang sama tetapi dengan susunan kata yang berbeda: ANOVA akan memeriksa secara kualitatif apakah " rasionya cukup tinggi untuk menunjukkan bahwa tidak ada pengelompokan yang tidak masuk akal " sementara regresi linier secara kualitatif akan memeriksa apakah " rasionya cukup tinggi untuk menyarankan penyadapan saja." model mungkin tidak memadai ".
(Ini adalah interpretasi yang agak bebas dari " kemungkinan untuk melihat nilai sama atau lebih besar daripada yang diamati di bawah hipotesis nol " dan itu tidak dimaksudkan sebagai definisi buku teks.)
Kembali ke bagian akhir dari pertanyaan Anda tentang " ANOVA memberi tahu Anda apa-apa tentang koefisien model linier (dengan asumsi berarti tidak sama ") Saya harap Anda sekarang dapat melihat bahwa ANOVA, dalam hal desain Anda sederhana / cukup seimbang , memberi tahu Anda segala sesuatu yang model linear lakukan. Interval kepercayaan untuk rata-rata grup akan sama dengan yang Anda miliki untuk Andaβ, dll. Jelas ketika seseorang mulai menambahkan beberapa kovariat dalam model regresi, ANOVA satu arah yang sederhana tidak memiliki kesetaraan langsung. Dalam hal ini seseorang menambah informasi yang digunakan untuk menghitung respon rata-rata regresi linier dengan informasi yang tidak tersedia secara langsung untuk ANOVA satu arah. Saya percaya bahwa seseorang dapat mengekspresikan kembali hal-hal dalam istilah ANOVA sekali lagi tetapi sebagian besar merupakan latihan akademis.
Makalah yang menarik tentang masalah ini adalah makalah Gelman 2005 berjudul: Analisis Varians - Mengapa itu lebih penting dari sebelumnya . Beberapa poin penting diangkat; Saya tidak sepenuhnya mendukung makalah ini (saya pikir saya secara pribadi lebih selaras dengan pandangan McCullach) tetapi ini bisa menjadi bacaan yang konstruktif.
Sebagai catatan akhir: Plot mengental ketika Anda memiliki model efek campuran . Di sana Anda memiliki konsep berbeda tentang apa yang dapat dianggap sebagai gangguan atau informasi aktual mengenai pengelompokan data Anda. Masalah-masalah ini berada di luar cakupan pertanyaan ini tetapi saya pikir mereka layak menerima anggukan.
Biarkan saya memberi warna pada gagasan bahwa OLS dengan kategori ( dummy-coded ) regressor setara dengan faktor - faktor dalam ANOVA. Dalam kedua kasus ada tingkat (atau kelompok dalam kasus ANOVA).
Dalam regresi OLS, biasanya juga memiliki variabel kontinu dalam regressor. Ini secara logis memodifikasi hubungan dalam model fit antara variabel kategori dan variabel dependen (DC). Tetapi tidak sampai membuat paralelnya tidak dapat dikenali.
Berdasarkan
mtcars
kumpulan data, pertama-tama kita dapat memvisualisasikan modellm(mpg ~ wt + as.factor(cyl), data = mtcars)
sebagai kemiringan yang ditentukan oleh variabel kontinuwt
(berat), dan berbagai intersep memproyeksikan pengaruh variabel kategorikalcylinder
(empat, enam atau delapan silinder). Bagian terakhir inilah yang membentuk paralel dengan ANOVA satu arah.Mari kita lihat secara grafis pada sub-plot ke kanan (tiga sub-plot ke kiri dimasukkan untuk perbandingan sisi-ke-sisi dengan model ANOVA yang dibahas segera sesudahnya):
Setiap mesin silinder diberi kode warna, dan jarak antara garis yang dipasang dengan intersep yang berbeda dan data cloud adalah setara dengan variasi dalam-kelompok dalam ANOVA. Perhatikan bahwa intersep dalam model OLS dengan variabel kontinu (
weight
) tidak secara matematis sama dengan nilai rata-rata dalam-kelompok berarti dalam ANOVA, karena efekweight
dan matriks model yang berbeda (lihat di bawah): rata-ratampg
untuk 4-silinder mobil, misalnya,mean(mtcars$mpg[mtcars$cyl==4]) #[1] 26.66364
, sedangkan OLS "dasar" intercept (mencerminkan oleh konvensicyl==4
(terendah ke angka tertinggi memesan di R)) sangat berbeda:summary(fit)$coef[1] #[1] 33.99079
. Kemiringan garis adalah koefisien untuk variabel kontinuweight
.Jika Anda mencoba menekan efek
weight
dengan meluruskan garis-garis ini secara mental dan mengembalikannya ke garis horizontal, Anda akan berakhir dengan plot ANOVA dari modelaov(mtcars$mpg ~ as.factor(mtcars$cyl))
pada tiga sub-plot di sebelah kiri. Theweight
regressor sekarang keluar, tapi hubungan dari titik ke penyadapan yang berbeda kira-kira diawetkan - kita hanya berputar berlawanan arah jarum jam dan menyebar plot sebelumnya tumpang tindih untuk setiap tingkat yang berbeda (sekali lagi, hanya sebagai perangkat visual untuk "melihat" koneksi; bukan sebagai persamaan matematis, karena kami membandingkan dua model yang berbeda!).cylinder
Dan melalui penjumlahan segmen vertikal inilah kita dapat menghitung residu secara manual:
Hasilnya:
SumSq = 301.2626
danTSS - SumSq = 824.7846
. Dibandingkan dengan:Hasil yang persis sama dengan pengujian dengan ANOVA model linier dengan hanya kategori
cylinder
sebagai regressor:Jadi, yang kita lihat adalah bahwa residual - bagian dari total varians yang tidak dijelaskan oleh model - serta variansnya sama apakah Anda memanggil OLS dari tipe
lm(DV ~ factors)
, atau ANOVA (aov(DV ~ factors)
): ketika kita menghapus model variabel kontinu kita berakhir dengan sistem yang identik. Demikian pula, ketika kita mengevaluasi model secara global atau sebagai ANOVA omnibus (bukan level demi level), kita secara alami mendapatkan nilai-p yang samaF-statistic: 39.7 on 2 and 29 DF, p-value: 4.979e-09
.Ini tidak berarti bahwa pengujian tingkat individu akan menghasilkan nilai p yang identik. Dalam kasus OLS, kami dapat meminta
summary(fit)
dan mendapatkan:p adjusted
Pada akhirnya, tidak ada yang lebih meyakinkan daripada mengintip mesin di bawah kap, yang tidak lain adalah matriks model, dan proyeksi di ruang kolom. Ini sebenarnya cukup sederhana untuk ANOVA:
cyl 4
cyl 6
cyl 8
Di sisi lain, model matriks untuk regresi OLS adalah:
weight
displacement
lm(mpg ~ wt + as.factor(cyl), data = mtcars)
weight
weight
cyl 4
cyl 4
cyl 6
cyl 8
sumber
Antoni Parellada dan usεr11852 memiliki jawaban yang sangat bagus. Saya akan menjawab pertanyaan Anda untuk mengkode perspektif
R
.Bahkan, kita bisa
aov
berfungsi dalamR
dapat digunakan sama sepertilm
. Berikut ini beberapa contohnya.Seperti yang Anda lihat, tidak hanya kita bisa mendapatkan koefisien dari model ANOVA, tetapi juga kita bisa menggunakannya untuk prediksi, seperti model linear.
Jika kami memeriksa file bantuan untuk
aov
fungsi yang tertulissumber
Jika kita mengambil semua entri data dan mengaturnya menjadi satu kolom tunggal Y, dengan sisa kolom menjadi variabel indikator 1 {data ith adalah elemen kolom ke-j dalam pengaturan anova asli} kemudian dengan mengambil regresi linear sederhana Y pada salah satu dari kolom lain (katakanlah kolom B), Anda harus memperoleh statistik uji DF, SS, MS dan F yang sama seperti pada masalah ANOVA Anda.
Dengan demikian ANOVA dapat 'diperlakukan sebagai' Regresi Linier dengan menulis data dengan variabel biner. Perhatikan juga bahwa koefisien regresi untuk, katakanlah, regresi Y pada B harus sama dengan rata-rata. dari kolom B, dihitung dengan data asli.
sumber