LOESS के लिए पूर्वानुमान अंतराल की गणना कैसे करें?


17

मेरे पास कुछ डेटा है जो मैंने R में LOESS मॉडल का उपयोग करके फिट किया है, मुझे यह दे रहा है:

यहाँ छवि विवरण दर्ज करें

डेटा में एक भविष्यवक्ता और एक प्रतिक्रिया है, और यह विषमलैंगिक है।

मैंने विश्वास अंतराल भी जोड़ा। समस्या यह है कि अंतराल लाइन के लिए विश्वास अंतराल हैं, जबकि मुझे भविष्यवाणी अंतराल में दिलचस्पी है। उदाहरण के लिए, निचला पैनल अधिक परिवर्तनशील है फिर शीर्ष पैनल, लेकिन यह अंतराल में कैप्चर नहीं किया गया है।

यह प्रश्न थोड़ा संबंधित है: एक बहुपद प्रतिगमन से विश्वास बैंड को समझना , विशेष रूप से @AndyW द्वारा उत्तर, हालांकि उनके उदाहरण में वह अपेक्षाकृत सीधा उपयोग करता हैinterval="predict" तर्क है जो इसमें मौजूद है predict.lm, लेकिन यह अनुपस्थित है predict.loess

इसलिए मेरे पास दो संबंधित प्रश्न हैं:

  1. LOESS के लिए मुझे पॉइंटवाइज भविष्यवाणी अंतराल कैसे मिलता है?
  2. मैं उन मूल्यों की भविष्यवाणी कैसे कर सकता हूं जो उस अंतराल पर कब्जा कर लेंगे, अर्थात यादृच्छिक संख्याओं का एक समूह उत्पन्न करेंगे जो अंततः मूल डेटा की तरह दिखाई देंगे?

यह संभव है कि मुझे LOESS की आवश्यकता नहीं है और मुझे कुछ और उपयोग करना चाहिए, लेकिन मैं अपने विकल्पों से अपरिचित हूं। मूल रूप से यह स्थानीय प्रतिगमन या एकाधिक रैखिक प्रतिगमन का उपयोग करते हुए रेखा को फिट करना चाहिए, मुझे लाइनों के लिए त्रुटि अनुमान दे रहा है, और इसके अलावा विभिन्न व्याख्यात्मक चर के लिए अलग-अलग संस्करण भी हैं, इसलिए मैं निश्चित x मानों पर प्रतिक्रिया चर (y) के वितरण की भविष्यवाणी कर सकता हूं ।


क्या यह एक बिंदुवार भविष्यवाणी अंतराल है?
Glen_b -Reinstate मोनिका

इससे तुम्हारा क्या मतलब"? और मुझे यकीन नहीं है कि यह पॉइंटवाइज़ है या नहीं। मेरा प्रश्न 2 वह है जो मैं देख रहा हूँ - दुर्भाग्य से मैं नामकरण से परिचित नहीं हूँ।
जिमेलिस्ट

'इस' से मेरा मतलब है कि शीर्षक में जिस चीज़ के बारे में सवाल पूछा जा रहा है, वह है
Glen_b -Reinstate Monica

इसलिए मुझे यकीन नहीं है - मेरी पिछली टिप्पणी देखें। मूल रूप से मैं एक अंतराल की तलाश कर रहा हूं, जो मेरे प्रश्नों में वर्णित डेटा बिंदुओं में वास्तविक विचरण को पकड़ लेगा।
जिमेलिस्ट

1
प्रसार परिवर्तनशील हो सकता है (इसीलिए मैंने पहली बार स्थानीय प्रतिगमन का विकल्प चुना है)। एकल भविष्यवक्ता।
गिमेलिस्ट

जवाबों:


12

मुझे पता नहीं है कि मूल loessफ़ंक्शन के साथ भविष्यवाणी बैंड कैसे करें लेकिन पैकेजloess.sd में एक फ़ंक्शन है जो बस ऐसा करता है! प्रलेखन से लगभग शब्दशः :msirmsir

library(msir)
data(cars)
# Calculates and plots a 1.96 * SD prediction band, that is,
# a 95% prediction band
l <- loess.sd(cars, nsigma = 1.96)
plot(cars, main = "loess.sd(cars)", col="red", pch=19)
lines(l$x, l$y)
lines(l$x, l$upper, lty=2)
lines(l$x, l$lower, lty=2)

यहाँ छवि विवरण दर्ज करें

आपका दूसरा सवाल थोड़ा पेचीदा है क्योंकि loess.sdयह एक भविष्यवाणी फ़ंक्शन के साथ नहीं आता है, लेकिन आप इसे पूर्वानुमानित साधनों और एसडीएस के द्वारा एक साथ हैक करके इसे हैक कर सकते हैं loess.sd( एसडी) जो आप उपयोग करते हैं approx। बदले में, पूर्वानुमानित साधनों और एसडी के साथ सामान्य वितरण का उपयोग करके डेटा का अनुकरण करने के लिए इसका उपयोग किया जा सकता है:

# Simulate x data uniformly and y data acording to the loess fit
sim_x <- runif(100, min(cars[,1]), max(cars[,1]))
pred_mean <- approx(l$x, l$y, xout = sim_x)$y
pred_sd <- approx(l$x, l$sd, xout = sim_x)$y
sim_y <- rnorm(100, pred_mean, pred_sd) 

# Plots 95% prediction bands with simulated data 
plot(cars, main = "loess.sd(cars)", col="red", pch=19)
points(sim_x, sim_y, col="blue")
lines(l$x, l$y)
lines(l$x, l$upper, lty=2)
lines(l$x, l$lower, lty=2)

यहाँ छवि विवरण दर्ज करें


ठीक वही जो मेरे द्वारा खोजा जा रहा था। जब वह विधि को कोड के साथ देखकर उपयोग करता है loess.sd, तो यह उस बात से बहुत अलग नहीं है, जो @rnso ने मेरे एक अन्य प्रश्न के लिए टिप्पणी में सुझाई है । धन्यवाद!
Gimelist

अंतराल उत्पन्न करने के लिए बूटस्ट्रैप?
HelloWorld
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.