Saya sedang melakukan penelitian di bidang respon fungsional tungau. Saya ingin melakukan regresi untuk memperkirakan parameter (tingkat serangan dan waktu penanganan) dari fungsi Rogers tipe II. Saya memiliki dataset pengukuran. Bagaimana saya bisa menentukan outlier yang terbaik?
Untuk regresi saya, saya menggunakan skrip berikut dalam R (regresi non linier): (Dateet adalah file teks 2 kolom sederhana yang disebut data.txt
file dengan N0
nilai (jumlah mangsa awal) dan FR
nilai (jumlah mangsa yang dimakan selama 24 jam):
library("nlstools")
dat <- read.delim("C:/data.txt")
#Rogers type II model
a <- c(0,50)
b <- c(0,40)
plot(FR~N0,main="Rogers II normaal",xlim=a,ylim=b,xlab="N0",ylab="FR")
rogers.predII <- function(N0,a,h,T) {N0 - lambertW(a*h*N0*exp(-a*(T-h*N0)))/(a*h)}
params1 <- list(attackR3_N=0.04,Th3_N=1.46)
RogersII_N <- nls(FR~rogers.predII(N0,attackR3_N,Th3_N,T=24),start=params1,data=dat,control=list(maxiter= 10000))
hatRIIN <- predict(RogersII_N)
lines(spline(N0,hatRIIN))
summary(RogersII_N)$parameters
Untuk memplot grafik residual calssic, saya menggunakan skrip berikut:
res <- nlsResiduals (RogersII_N)
plot (res, type = 0)
hist (res$resi1,main="histogram residuals")
qqnorm (res$resi1,main="QQ residuals")
hist (res$resi2,main="histogram normalised residuals")
qqnorm (res$resi2,main="QQ normalised residuals")
par(mfrow=c(1,1))
boxplot (res$resi1,main="boxplot residuals")
boxplot (res$resi2,main="boxplot normalised residuals")
Pertanyaan
- Bagaimana cara terbaik menentukan titik data mana yang outlier?
- Apakah ada tes yang bisa saya gunakan dalam R yang objektif dan tunjukkan poin data mana yang outlier?
sumber
Untuk pencilan univariat terdapat uji rasio Dixon dan uji Grubb dengan asumsi normalitas. Untuk menguji pencilan Anda harus mengasumsikan distribusi populasi karena Anda mencoba untuk menunjukkan bahwa nilai yang diamati adalah ekstrim atau tidak biasa yang berasal dari distribusi yang diasumsikan. Saya memiliki makalah di American Statistician pada tahun 1982 yang mungkin saya rujuk di sini sebelumnya yang menunjukkan bahwa uji rasio Dixon dapat digunakan dalam sampel kecil bahkan untuk beberapa distribusi yang tidak normal. Chernick, MR (1982) "Catatan tentang Robustness of Dixon Ratio dalam Sampel Kecil" American Statistician hal 140. Untuk pencilan multivariat dan pencilan dalam deret waktu, fungsi pengaruh untuk estimasi parameter adalah ukuran yang berguna untuk mendeteksi pencilan secara tidak resmi (saya tidak tahu tes formal dibangun untuk mereka meskipun tes semacam itu dimungkinkan)."Pencilan dalam Data Statistik" untuk perawatan terperinci dari metode deteksi pencilan.
sumber
Lihat http://www.waset.org/journals/waset/v36/v36-45.pdf , "Tentang Deteksi outlier dalam Regresi Nonlinier" [ sic ].
Abstrak
sumber
Pencilan adalah titik yang "terlalu jauh" dari "beberapa garis dasar". Caranya adalah dengan mendefinisikan kedua frasa tersebut! Dengan regresi nonlinier, orang tidak bisa hanya menggunakan metode univariat untuk melihat apakah pencilan "terlalu jauh" dari kurva paling cocok, karena pencilan dapat memiliki pengaruh besar pada kurva itu sendiri.
Ron Brown dan saya mengembangkan metode unik (yang kami sebut ROUT - Robust regression dan Outlier removal) untuk melakukan pendeteksian outlier dengan regresi nonlinear, tanpa membiarkan outlier mempengaruhi kurva terlalu banyak. Pertama-tama paskan data dengan metode regresi yang kuat di mana outlier memiliki sedikit pengaruh. Itu membentuk garis dasar. Kemudian gunakan ide-ide dari False Discovery Rate (FDR) untuk menentukan kapan suatu titik "terlalu jauh" dari garis dasar itu, dan begitu juga dengan outlier. Akhirnya, menghapus outlier yang diidentifikasi, dan sesuai dengan poin yang tersisa secara konvensional.
Metode ini diterbitkan dalam jurnal akses terbuka: Motulsky HJ dan Brown RE, Mendeteksi outlier ketika memasukkan data dengan regresi nonlinear - metode baru berdasarkan regresi nonlinear yang kuat dan tingkat penemuan palsu , BMC Bioinformatics 2006, 7: 123. Ini abstraknya:
Itu belum (sejauh yang saya tahu) diimplementasikan di R. Tapi kami menerapkannya di GraphPad Prism. dan memberikan penjelasan sederhana dalam bantuan Prism .
sumber
Pertanyaan Anda terlalu umum. Tidak ada metode tunggal terbaik untuk mengecualikan "outlier".
Anda harus mengetahui beberapa properti di "outlier". atau Anda tidak tahu metode mana yang terbaik. Setelah memutuskan metode mana yang ingin Anda gunakan, Anda perlu mengkalibrasi parameter metode dengan hati-hati.
sumber