Apa visualisasi yang baik untuk regresi Poisson?


11

Saya ingin mengaitkan cacat kode dengan metrik kompleksitas kode seperti kedekatan. Salah satu model umum adalah untuk melihat ini sebagai proses Poisson, di mana durasinya adalah berapa banyak waktu yang dihabiskan pengkodean dan kepadatan adalah fungsi dari kompleksitas kode. Saya dapat melakukan regresi dan mendapatkan nilai signifikansi dll.

Namun, sulit bagi saya untuk memvisualisasikan hasil (dan bahkan lebih sulit untuk rekan saya yang kurang matematis). Apakah ada cara yang baik untuk melihat ini untuk melihat hal-hal seperti outlier, apakah itu tren linear dll? (Tautan ke paket R dihargai.)

Sebagai contoh, saya hanya bisa merencanakan Defects / Time ~ Complexitytetapi ini cukup berisik dan karena Defectstidak jelas dan sangat kecil, sulit untuk melihat tren. Satu hal yang saya pikirkan adalah saya bisa mengiris data menjadi kuantil dan kemudian melakukan regresi per kuantil dan memplot kerapatan yang dihasilkan - saya tidak yakin seberapa valid ini, terutama karena data saya tidak terdistribusi secara normal sehingga mungkin menyesatkan orang tentang apa itu kuantil.

Jawaban:


6

Setelah Anda cocok dengan model, mengapa tidak menggunakan cacat yang diprediksi sebagai variabel untuk dibandingkan dengan yang lain menggunakan teknik standar apa pun yang berarti bagi mereka? Ini memiliki keuntungan menjadi variabel kontinu sehingga Anda dapat melihat bahkan perbedaan kecil. Misalnya, orang akan memahami perbedaan antara jumlah cacat yang diharapkan dari 1,4 dan 0,6 meskipun keduanya membulat menjadi satu.

Sebagai contoh bagaimana nilai prediksi tergantung pada dua variabel Anda bisa melakukan plot kontur waktu v. Kompleksitas sebagai dua sumbu dan warna dan kontur untuk menunjukkan cacat yang diprediksi; dan menempatkan titik data aktual di atas.

Plot di bawah ini membutuhkan beberapa pemolesan dan legenda tetapi mungkin merupakan titik awal.

masukkan deskripsi gambar di sini

Alternatifnya adalah plot variabel ditambahkan atau plot regresi parsial, lebih akrab dari regresi respon Gaussian tradisional. Ini diterapkan di perpustakaan mobil. Secara efektif menunjukkan hubungan antara apa yang tersisa dari respon dan apa yang tersisa dari salah satu variabel penjelas, setelah sisa variabel penjelas memiliki kontribusi mereka terhadap respon dan variabel penjelas dihapus. Dalam pengalaman saya, sebagian besar pemirsa non-statistik menemukan ini agak sulit untuk dihargai (bisa dengan penjelasan saya yang buruk, tentu saja).

masukkan deskripsi gambar di sini

#--------------------------------------------------------------------
# Simulate some data
n<-200
time <- rexp(n,.01)
complexity <- sample(1:5, n, prob=c(.1,.25,.35,.2,.1), replace=TRUE)
trueMod <- exp(-1 + time*.005 + complexity*.1 + complexity^2*.05)
defects <- rpois(n, trueMod)
cbind(trueMod, defects)


#----------------------------------------------------------------------
# Fit model
model <- glm(defects~time + poly(complexity,2), family=poisson)
# all sorts of diagnostic checks should be done here - not shown


#---------------------------------------------------------------------
# Two variables at once in a contour plot

# create grid
gridded <- data.frame(
    time=seq(from=0, to=max(time)*1.1, length.out=100),
    complexity=seq(from=0, to=max(complexity)*1.1, length.out=100))

# create predicted values (on the original scale)
yhat <- predict(model, newdata=expand.grid(gridded), type="response")

# draw plot
image(gridded$time, gridded$complexity, matrix(yhat,nrow=100, byrow=FALSE),
    xlab="Time", ylab="Complexity", main="Predicted average number of defects shown as colour and contours\n(actual data shown as circles)")
contour(gridded$time, gridded$complexity, matrix(yhat,nrow=100, byrow=FALSE), add=TRUE, levels=c(1,2,4,8,15,20,30,40,50,60,70,80,100))

# Add the original data
symbols(time, complexity, circles=sqrt(defects), add=T, inches=.5)

#--------------------------------------------------------------------
# added variable plots

library(car)
avPlots(model, layout=c(1,3))

2

E[ysaya|xsaya]ysayaxsaya

xsayaysaya=0,ysaya=1

xsayaxsaya

xsayaxsaya

Btw: apakah Anda juga menjalankan regresi binomial negatif pada data Anda? Apakah hasilnya sangat berbeda? Jika demikian, asumsi Poisson Anda (mean bersyarat sama dengan varian bersyarat) mungkin terlalu ketat (lihat "penyebaran berlebihan"). Itu bisa menjadi kasus, misalnya, jika variabel Anda "cacat" memiliki banyak nol.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.