Memahami pita kepercayaan dari regresi polinomial

14

Saya mencoba memahami hasil yang saya lihat pada grafik saya di bawah ini. Biasanya, saya cenderung menggunakan Excel dan mendapatkan garis regresi linier tetapi dalam kasus di bawah ini saya menggunakan R dan saya mendapatkan regresi polinomial dengan perintah:

ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth()

Jadi pertanyaan saya sampai pada ini:

  1. Berapakah area abu-abu (panah # 1) di sekitar garis regresi biru? Apakah ini standar deviasi dari regresi polinomial?

  2. Dapatkah saya mengatakan bahwa apa pun yang berada di luar area abu-abu (panah # 2) adalah 'outlier' dan apa pun yang berada di dalam wilayah abu-abu (panah # 3) berada dalam standar deviasi?

masukkan deskripsi gambar di sini

adhg
sumber

Jawaban:

14

Pita abu-abu adalah pita kepercayaan untuk garis regresi. Saya tidak cukup akrab dengan ggplot2 untuk mengetahui dengan pasti apakah itu adalah band kepercayaan 1 SE atau band kepercayaan 95%, tapi saya percaya itu adalah yang pertama ( Edit: jelas itu adalah CI 95% ). Pita kepercayaan memberikan representasi ketidakpastian tentang garis regresi Anda. Dalam arti tertentu, Anda dapat berpikir bahwa garis regresi yang sebenarnya adalah setinggi bagian atas pita itu, serendah bagian bawahnya, atau bergoyang secara berbeda di dalam pita tersebut. (Perhatikan bahwa penjelasan ini dimaksudkan untuk bersifat intuitif, dan secara teknis tidak benar, tetapi penjelasan yang sepenuhnya benar sulit bagi kebanyakan orang untuk mengikuti.)

Anda harus menggunakan pita kepercayaan diri untuk membantu Anda memahami / memikirkan garis regresi. Anda tidak boleh menggunakannya untuk memikirkan poin data mentah. Ingat bahwa garis regresi mewakili rata-rata pada setiap titik dalam X (jika Anda perlu memahami ini lebih lengkap, ini dapat membantu Anda membaca jawaban saya di sini: Apa intuisi di balik distribusi Gaussian bersyarat? ). Di sisi lain, Anda tentu tidak mengharapkan setiap titik data yang diamati sama dengan rata-rata bersyarat. Dengan kata lain, Anda tidak boleh menggunakan pita kepercayaan untuk menilai apakah suatu titik data merupakan outlier. YX


( Sunting: catatan ini adalah periferal untuk pertanyaan utama, tetapi berusaha mengklarifikasi poin untuk OP. )

Regresi polinomial bukanlah regresi non-linear, meskipun yang Anda dapatkan tidak terlihat seperti garis lurus. Istilah 'linier' memiliki makna yang sangat spesifik dalam konteks matematika, khususnya, bahwa parameter yang Anda perkirakan - beta - semuanya adalah koefisien. Regresi polinomial hanya berarti bahwa kovariat Anda adalah , X 2 , X 3 , dll. Yaitu, mereka memiliki hubungan non-linear satu sama lain, tetapi beta Anda masih koefisien, sehingga masih merupakan model linier. Jika beta Anda, katakanlah, eksponen, maka Anda akan memiliki model non-linear. XX2X3

XX2X2X1X2X(X, Y)


Y=β0+β1X+ε
dalam(π(Y)1-π(Y))=β0+β1X
π(Y)=exp(β0+β1X)1+exp(β0+β1X)
βββPerbedaan antara model logit dan probit .)
gung - Pasang kembali Monica
sumber
+1 Contoh-contoh dalam dokumentasi menunjukkan kepada saya kepercayaan diri cukup tinggi, mungkin 95%.
Whuber
@ung terima kasih atas jawaban terinci (Anda juga mendapat cek!). Saya membaca pernyataan pertama Anda dan saya agak bingung. Bisakah Anda menjelaskan lebih lanjut tentang hal ini? Jika garis yang dihasilkan bukan garis lurus (y = mx + b) lalu apa yang membuatnya linier? Sekali lagi terima kasih atas jawabannya.
adhg
Docs di docs.ggplot2.org/0.9.3.1/stat_smooth.html menyatakan itu adalah pita kepercayaan 95% untuk kurva regresi.
Whuber
2
Saya pikir Loess lebih lancar digunakan di sini, daripada regresi polinomial?
xan
@ Ahg, saya pikir saya telah membahas linear vs non-linear di tempat lain, tetapi saya tidak dapat menemukannya. Jadi saya menambahkan beberapa materi tambahan di sini. HTH
gung - Kembalikan Monica
11

Untuk menambah jawaban yang sudah ada, pita mewakili interval kepercayaan rata-rata, tetapi dari pertanyaan Anda, Anda jelas mencari interval prediksi . Interval prediksi adalah rentang yang jika Anda menggambar satu titik baru titik itu secara teoritis akan terkandung dalam kisaran X% dari waktu (di mana Anda dapat mengatur tingkat X).

library(ggplot2)
set.seed(5)
x <- rnorm(100)
y <- 0.5*x + rt(100,1)
MyD <- data.frame(cbind(x,y))

Kami dapat menghasilkan jenis plot yang sama dengan yang Anda tunjukkan dalam pertanyaan awal Anda dengan interval kepercayaan di sekitar rata-rata garis regresi loess yang dihaluskan (standarnya adalah interval kepercayaan 95%).

ConfiMean <- ggplot(data = MyD, aes(x,y)) + geom_point() + geom_smooth()
ConfiMean

masukkan deskripsi gambar di sini

Untuk contoh interval prediksi yang cepat dan kotor, di sini saya membuat interval prediksi menggunakan regresi linier dengan smoothing splines (sehingga tidak harus berupa garis lurus). Dengan data sampel tidak cukup baik, untuk 100 poin hanya 4 yang berada di luar kisaran (dan saya menentukan interval 90% pada fungsi prediksi).

#Now getting prediction intervals from lm using smoothing splines
library(splines)
MyMod <- lm(y ~ ns(x,4), MyD)
MyPreds <- data.frame(predict(MyMod, interval="predict", level = 0.90))
PredInt <- ggplot(data = MyD, aes(x,y)) + geom_point() + 
           geom_ribbon(data=MyPreds, aes(x=fit,ymin=lwr, ymax=upr), alpha=0.5)
PredInt

masukkan deskripsi gambar di sini

Sekarang beberapa catatan lagi. Saya setuju dengan Ladislav bahwa Anda harus mempertimbangkan metode peramalan deret waktu karena Anda memiliki deret berkala sejak tahun 2007 dan jelas dari plot Anda jika Anda melihat keras ada musim (menghubungkan titik-titik akan membuatnya lebih jelas). Untuk ini saya akan menyarankan memeriksa fungsi forecast.stl dalam paket perkiraan di mana Anda dapat memilih jendela musiman dan menyediakan dekomposisi yang kuat dari musiman dan tren menggunakan Loess. Saya menyebutkan metode yang kuat karena data Anda memiliki beberapa lonjakan yang terlihat.

Lebih umum untuk data seri non-waktu saya akan mempertimbangkan metode kuat lainnya jika Anda memiliki data dengan outlier sesekali. Saya tidak tahu cara membuat interval prediksi menggunakan Loess secara langsung, tetapi Anda dapat mempertimbangkan regresi kuantil (tergantung pada seberapa ekstrim interval prediksi yang diperlukan). Kalau tidak, jika Anda hanya ingin menjadi non-linear, Anda dapat mempertimbangkan splines untuk memungkinkan fungsi bervariasi lebih dari x.

Andy W
sumber
4

Ya, garis biru adalah regresi lokal yang mulus . Anda dapat mengontrol kegoyahan garis dengan spanparameter (dari 0 hingga 1). Tetapi contoh Anda adalah "rangkaian waktu" jadi cobalah mencari beberapa metode analisis yang lebih tepat daripada hanya cocok dengan kurva yang halus (yang seharusnya hanya berfungsi untuk mengungkapkan tren yang mungkin).

Menurut dokumentasi untuk ggplot2(dan pesan di komentar di bawah): stat_smooth adalah interval kepercayaan dari kelancaran yang ditunjukkan dengan warna abu-abu. Jika Anda ingin mematikan interval kepercayaan, gunakan se = FALSE.

Ladislav Naďo
sumber
1
(1) Saya tidak melihat dalam referensi Anda di mana ia mengklaim area abu-abu adalah interval kepercayaan searah. Tampaknya cukup jelas dari contoh bahwa area abu-abu bukan interval kepercayaan untuk kurva . (2) Tidak ada yang akan secara wajar menyatakan sebagian besar poin di luar wilayah abu-abu sebagai "pencilan"; jumlahnya terlalu banyak.
whuber
(1) kesalahan saya, di sini saya menambahkan buku yang mengacu pada "interval kepercayaan titik-bijaksana": Wickham H (2009) ggplot2 Elegant Graphics for Data Analysis. Media 212. (halaman 14). (2) Saya setuju.
Ladislav Naďo
Apakah ada referensi Anda yang menyatakan tingkat kepercayaan default ditetapkan?
Whuber
Tidak, saya tidak dapat menemukan referensi tentang pengaturan default.
Ladislav Naďo
Saya menemukan default di halaman pertama referensi Anda: "(default 0.95)." Itu berarti bahwa baik halus ini memiliki bug serius atau penafsiran anda dari referensi yang salah: karena sebagian besar seperti titik data biasanya berada di luar area abu-abu dan asumsi kode sudah benar, area abu-abu memiliki menjadi wilayah keyakinan untuk prediksi (kurva pas) dan bukan wilayah kepercayaan untuk poin.
Whuber