अनुमानित ढलानों को प्लॉट करना, जैसा कि प्रश्न में है, एक बड़ी बात है। महत्व से छानने के बजाय, हालांकि - या इसके साथ संयोजन के रूप में - क्यों न प्रत्येक माप डेटा को कितनी अच्छी तरह से फिट करता है, इसके बारे में कुछ माप करें? इसके लिए, प्रतिगमन की औसत चुकता त्रुटि आसानी से व्याख्या और सार्थक है।
एक उदाहरण के रूप में, R
नीचे दिया गया कोड 11 रिस्तों की एक समय श्रृंखला उत्पन्न करता है, प्रतिगमन करता है, और परिणामों को तीन तरीकों से प्रदर्शित करता है: नीचे की पंक्ति में, अनुमानित ढलानों के अलग-अलग ग्रिड और मतलब चुकता त्रुटियों के रूप में; शीर्ष पंक्ति पर, उन ग्रिडों के ओवरले के साथ-साथ सही अंतर्निहित ढलान के साथ (जो अभ्यास में आपके पास कभी नहीं होगा, लेकिन तुलना के लिए कंप्यूटर सिमुलेशन द्वारा वहन किया जाता है)। ओवरले, क्योंकि यह एक चर (अनुमानित ढलान) के लिए रंग और दूसरे (MSE) के लिए लपट का उपयोग करता है, इस विशेष उदाहरण में व्याख्या करना आसान नहीं है, लेकिन साथ में नीचे पंक्ति पर अलग-अलग नक्शे उपयोगी और दिलचस्प हो सकते हैं।
(कृपया ओवरले पर ओवरलैप की गई किंवदंतियों को नजरअंदाज करें। ध्यान दें, यह भी कि, "ट्रू स्लोप्स" मैप के लिए रंग योजना अनुमानित ढलानों के मानचित्रों के समान नहीं है: यादृच्छिक त्रुटि के कारण अनुमानित ढलानों में से कुछ का विस्तार होता है। असली ढलानों की तुलना में अधिक चरम सीमा। यह एक सामान्य घटना है जो प्रतिगमन से संबंधित है ।)
BTW, यह एक ही समय के लिए बड़ी संख्या में पंजीकरण करने का सबसे कुशल तरीका नहीं है: इसके बजाय, प्रोजेक्शन मैट्रिक्स को प्री-कॉम्प्लेक्ट किया जा सकता है और प्रत्येक " प्रतिगमन के लिए इसे पुनर्संयोजित करने की तुलना में अधिक तेज़ी से पिक्सेल के" स्टैक "पर लागू किया जा सकता है । लेकिन इस छोटे चित्रण के लिए यह कोई मायने नहीं रखता है।
# Specify the extent in space and time.
#
n.row <- 60; n.col <- 100; n.time <- 11
#
# Generate data.
#
set.seed(17)
sd.err <- outer(1:n.row, 1:n.col, function(x,y) 5 * ((1/2 - y/n.col)^2 + (1/2 - x/n.row)^2))
e <- array(rnorm(n.row * n.col * n.time, sd=sd.err), dim=c(n.row, n.col, n.time))
beta.1 <- outer(1:n.row, 1:n.col, function(x,y) sin((x/n.row)^2 - (y/n.col)^3)*5) / n.time
beta.0 <- outer(1:n.row, 1:n.col, function(x,y) atan2(y, n.col-x))
times <- 1:n.time
y <- array(outer(as.vector(beta.1), times) + as.vector(beta.0),
dim=c(n.row, n.col, n.time)) + e
#
# Perform the regressions.
#
regress <- function(y) {
fit <- lm(y ~ times)
return(c(fit$coeff[2], summary(fit)$sigma))
}
system.time(b <- apply(y, c(1,2), regress))
#
# Plot the results.
#
library(raster)
plot.raster <- function(x, ...) plot(raster(x, xmx=n.col, ymx=n.row), ...)
par(mfrow=c(2,2))
plot.raster(b[1,,], main="Slopes with errors")
plot.raster(b[2,,], add=TRUE, alpha=.5, col=gray(255:0/256))
plot.raster(beta.1, main="True slopes")
plot.raster(b[1,,], main="Estimated slopes")
plot.raster(b[2,,], main="Mean squared errors", col=gray(255:0/256))