मेरे पास सबसे अच्छा फिट की एक पंक्ति है। मुझे ऐसे डेटा पॉइंट चाहिए, जो मेरी सबसे अच्छी फिट की लाइन को नहीं बदलेंगे


15

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

मैं इस तकनीक को R या Excel में सीखना पसंद करूंगा - जो भी आसान हो।


1
इस उत्तर के आइटम (2) में गुणकों के किसी भी सेट (जिसमें आपका एक विशेष मामला है) के साथ कई प्रतिगमन मामले पर चर्चा की गई है । वहाँ के चरणों का पालन करना सरल प्रतिगमन मामले को हल करता है। दृष्टिकोण बस किसी भी पैकेज के बारे में काम करता है जहां आप वांछित वितरण के यादृच्छिक मूल्यों और फिट प्रतिगमन मॉडल का अनुकरण कर सकते हैं।
Glen_b -Reinstate मोनिका

autodeskresearch.com/publications/samestats इस का एक अच्छा सामान्यीकरण प्रस्तुत करता है: सिम्युलेटेड एनेलिंग को स्कैप्लेट्स बनाने के लिए उपयोग किया जाता है, जिसमें न केवल सारांश आँकड़े के वांछित मूल्य होते हैं, बल्कि उनका एक निर्धारित आकार भी होता है (जैसे कि "डेटासॉरस")। यह जस्टिन मेटजेका और जॉर्ज फिट्जमौरिस द्वारा सेम स्टैट्स, डिफरेंट ग्राफ्स: जनरेटिंग डेटासेट्स विद वियर अपीयरेंस और आइडियल स्टैटिस्टिक्स विद सिमीड एनालिंग के जरिए काम किया गया है ।
whuber

जवाबों:


28

इनमें से कम से कम दो अलग-अलग दिए गए किसी भी (xi) चुनें । एक अवरोधन सेट β0 और ढलान β1 और परिभाषित

y0i=β0+β1xi.

यह फिट एकदम सही है। फिट बदल रहा बिना, आप संशोधित कर सकते हैं y0 करने के लिए y=y0+ε किसी भी त्रुटि वेक्टर जोड़कर ε=(εमैं) के लिए यह प्रदान की यह दोनों वेक्टर के लिए ओर्थोगोनल है एक्स=(एक्समैं) और निरंतर वेक्टर (1,1,...,1) । एक आसान तरीका है इस तरह के एक त्रुटि प्राप्त करने के लिए लेने के लिए है किसी भी वेक्टर और जाने ε regressing पर बच गया हो एक्स खिलाफ । नीचे दिए गए कोड में, मतलब 0 और सामान्य मानक विचलन के साथ स्वतंत्र यादृच्छिक सामान्य मूल्यों के एक सेट के रूप में उत्पन्न होता है ।

इसके अलावा, आप तितर-बितर की मात्रा को भी कम कर सकते हैं, शायद यह निर्धारित करके कि आर2 क्या होना चाहिए। दे τ2=वर(yमैं)=β12वर(एक्समैं) , उन बच rescale के विचरण के लिए

σ2=τ2(1/आर2-1)

यह विधि पूरी तरह से सामान्य है: सभी संभावित उदाहरण ( एक्समैं दिए गए सेट के लिए ) इस तरह से बनाए जा सकते हैं।


उदाहरण

Anscombe की चौकड़ी

हम आसानी से एक ही वर्णनात्मक आंकड़ों (दूसरे क्रम के माध्यम से) वाले चार गुणात्मक रूप से अलग-अलग द्विभाजित डेटासेट के Anscombe की चौकड़ी को पुन: पेश कर सकते हैं ।

आकृति

कोड उल्लेखनीय रूप से सरल और लचीला है।

set.seed(17)
rho <- 0.816                                             # Common correlation coefficient
x.0 <- 4:14
peak <- 10
n <- length(x.0)

# -- Describe a collection of datasets.
x <- list(x.0, x.0, x.0, c(rep(8, n-1), 19))             # x-values
e <- list(rnorm(n), -(x.0-peak)^2, 1:n==peak, rnorm(n))  # residual patterns
f <- function(x) 3 + x/2                                 # Common regression line

par(mfrow=c(2,2))
xlim <- range(as.vector(x))
ylim <- f(xlim + c(-2,2))
s <- sapply(1:4, function(i) {
  # -- Create data.
  y <- f(x[[i]])                                         # Model values
  sigma <- sqrt(var(y) * (1 / rho^2 - 1))                # Conditional S.D.
  y <- y + sigma * scale(residuals(lm(e[[i]] ~ x[[i]]))) # Observed values

  # -- Plot them and their OLS fit.
  plot(x[[i]], y, xlim=xlim, ylim=ylim, pch=16, col="Orange", xlab="x")
  abline(lm(y ~ x[[i]]), col="Blue")

  # -- Return some regression statistics.
  c(mean(x[[i]]), var(x[[i]]), mean(y), var(y), cor(x[[i]], y), coef(lm(y ~ x[[i]])))
})
# -- Tabulate the regression statistics from all the datasets.
rownames(s) <- c("Mean x", "Var x", "Mean y", "Var y", "Cor(x,y)", "Intercept", "Slope")
t(s)

आउटपुट प्रत्येक डेटासेट के लिए (एक्स,y) डेटा के लिए दूसरे क्रम का वर्णनात्मक आँकड़े देता है । सभी चार लाइनें समान हैं। आप आसानी से x(x- निर्देशांक) और e(त्रुटि पैटर्न) बदलकर ( शुरुआत में) पैटर्न को और अधिक उदाहरण बना सकते हैं ।

सिमुलेशन

Ryβ=(β0,β1)आर20आर21एक्स

simulate <- function(x, beta, r.2) {
  sigma <- sqrt(var(x) * beta[2]^2 * (1/r.2 - 1))
  e <- residuals(lm(rnorm(length(x)) ~ x))
  return (y.0 <- beta[1] + beta[2]*x + sigma * scale(e))
}

(इसे एक्सेल में पोर्ट करना मुश्किल नहीं होगा - लेकिन यह थोड़ा दर्दनाक है।)

(एक्स,y)60 एक्सβ=(1,-1/2)1-1/2आर2=0.5

आकृति

n <- 60
beta <- c(1,-1/2)
r.2 <- 0.5   # Between 0 and 1

set.seed(17)
x <- rnorm(n)

par(mfrow=c(1,4))
invisible(replicate(4, {
  y <- simulate(x, beta, r.2)
  fit <- lm(y ~ x)
  plot(x, y)
  abline(fit, lwd=2, col="Red")
}))

summary(fit)आर2एक्समैं


1
बहुत अच्छा धन्यवाद! दुर्भाग्य से, आपका दृष्टिकोण इस प्रश्न पर तत्काल लागू नहीं होता है: एक ही बॉक्स और व्हिस्कीर्स प्लॉट (माध्य / एसटीडी / माध्य / एमएडी / मिनट / अधिकतम) के साथ एंस्कॉम्ब-जैसे डेटासेट , क्या यह है?
Stephan Kolassa

@ स्टेफ़न आप सही हैं कि यह नहीं है, क्योंकि यह एक अत्यधिक गैर-रैखिक समस्या है। यह एक समान तरीके से हल किया जा सकता है - अनिवार्य रूप से एक विवश अनुकूलन समस्या के लिए संभव समाधान खोजने से - लेकिन एक अलग अनुकूलन दिनचर्या की आवश्यकता होती है और समाधान की गारंटी नहीं होती है।
whuber
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.