তাদের মধ্যে কমপক্ষে দুটি পৃথক হওয়া প্রদত্ত যে কোনও (xi) চয়ন করুন। একটি ইন্টারসেপ্ট β0 এবং ope β1 সেট করুন এবং সংজ্ঞা দিন
y0i=β0+β1xi.
এই ফিট পুরোপুরি। ফিট পরিবর্তন না করে আপনি y0 থেকে y=y0+ε কোনও ত্রুটি ভেক্টর ε=(εi) করে এটি সংশোধন করতে পারবেন তবে শর্ত দেওয়া যে এটি ভেক্টর x=(xi) এবং ধ্রুবক ভেক্টর (1,1,…,1) । একটি সহজ উপায় যেমন একটি ত্রুটি প্রাপ্ত বাছাই হয় কোনো ভেক্টর e দিন ε regressing উপর অবশিষ্টাংশ হতে eবিরুদ্ধে x । নীচের কোডে, e0 এবং সাধারণ স্ট্যান্ডার্ড বিচ্যুতি সহ স্বতন্ত্র এলোমেলো স্বাভাবিক মানগুলির সেট হিসাবে উত্পন্ন হয় ।
তদ্ব্যতীত, আপনি এমনকি স্ক্রটারের পরিমাণও বেছে নিতে পারেন, সম্ভবত R2 হবে তা নির্ধারণ করে। লেটিং τ2=var(yi)=β21var(xi) , যারা অবশিষ্টাংশ rescale একটি ভ্যারিয়েন্স আছে
σ2=τ2(1/R2−1).
xi
উদাহরণ
আনসকম্বের চতুর্মুখী
আমরা খুব সহজেই প্রজনন করতে পারে Anscombe এর চতুষ্টয় চার গুণগতভাবে স্বতন্ত্র bivariate একই বর্ণনামূলক পরিসংখ্যান (দ্বিতীয় অর্ডার মাধ্যমে) থাকার ডেটাসেট করুন।
কোডটি উল্লেখযোগ্যভাবে সহজ এবং নমনীয়।
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)
(x,y)x
e
সিমিউলেশন
R
yβ=(β0,β1)R20≤R2≤1x
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))
}
(এটি এক্সেলের কাছে বন্দর করা কঠিন হবে না - তবে এটি কিছুটা বেদনাদায়ক))
(x,y)60 xβ=(1,−1/2)1−1/2R2=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)
R2xi