অনুরোধ হিসাবে, আমি mtcars
ডেটা ব্যবহার করে একটি সাধারণ রিগ্রেশন ব্যবহার করে চিত্রিত করেছি :
fit <- lm(mpg~hp, data=mtcars)
summary(fit)
Call:
lm(formula = mpg ~ hp, data = mtcars)
Residuals:
Min 1Q Median 3Q Max
-5.7121 -2.1122 -0.8854 1.5819 8.2360
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.09886 1.63392 18.421 < 2e-16 ***
hp -0.06823 0.01012 -6.742 1.79e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.863 on 30 degrees of freedom
Multiple R-squared: 0.6024, Adjusted R-squared: 0.5892
F-statistic: 45.46 on 1 and 30 DF, p-value: 1.788e-07
গড় স্কোয়ারড ত্রুটি (MSE) অবশিষ্টাংশ বর্গ গড় হল:
# Mean squared error
mse <- mean(residuals(fit)^2)
mse
[1] 13.98982
রুট গড় স্কোয়ার্ড ত্রুটি (আরএমএসই) এর পরে এমএসইয়ের বর্গমূল:
# Root mean squared error
rmse <- sqrt(mse)
rmse
[1] 3.740297
স্কোয়ারের অবশিষ্টাংশ (আরএসএস) হল বর্গাকার অবশিষ্টাংশের যোগফল :
# Residual sum of squares
rss <- sum(residuals(fit)^2)
rss
[1] 447.6743
অবশিষ্ট স্ট্যান্ডার্ড ত্রুটি (আরএসই) হল (আরএসএস / স্বাধীনতার ডিগ্রি) এর বর্গমূল:
# Residual standard error
rse <- sqrt( sum(residuals(fit)^2) / fit$df.residual )
rse
[1] 3.862962
একই গণনা, সরলীকৃত কারণ আমরা পূর্বে গণনা করেছি rss
:
sqrt(rss / fit$df.residual)
[1] 3.862962
রিগ্রেশন (এবং অন্যান্য ভবিষ্যদ্বাণীমূলক বিশ্লেষণ কৌশল) এর প্রসঙ্গে পরীক্ষার ত্রুটি শব্দটি সাধারণত পরীক্ষার ডেটাগুলিতে একটি পরীক্ষার পরিসংখ্যান গণনা করে যা আপনার প্রশিক্ষণের ডেটা থেকে আলাদা।
অন্য কথায়, আপনি আপনার ডেটার একটি অংশ (প্রায়শই একটি 80% নমুনা) ব্যবহার করে কোনও মডেল অনুমান করেন এবং তারপরে হোল্ড-আউট নমুনাটি ব্যবহার করে ত্রুটিটি গণনা করছেন। আবার, আমি mtcars
80% নমুনা ব্যবহার করে চিত্রিত করছি
set.seed(42)
train <- sample.int(nrow(mtcars), 26)
train
[1] 30 32 9 25 18 15 20 4 16 17 11 24 19 5 31 21 23 2 7 8 22 27 10 28 1 29
মডেলটি অনুমান করুন, তারপরে হোল্ড-আউট ডেটা দিয়ে ভবিষ্যদ্বাণী করুন:
fit <- lm(mpg~hp, data=mtcars[train, ])
pred <- predict(fit, newdata=mtcars[-train, ])
pred
Datsun 710 Valiant Merc 450SE Merc 450SL Merc 450SLC Fiat X1-9
24.08103 23.26331 18.15257 18.15257 18.15257 25.92090
একটি ডেটা ফ্রেমে আসল ডেটা এবং ভবিষ্যদ্বাণী একত্রিত করুন
test <- data.frame(actual=mtcars$mpg[-train], pred)
test$error <- with(test, pred-actual)
test
actual pred error
Datsun 710 22.8 24.08103 1.2810309
Valiant 18.1 23.26331 5.1633124
Merc 450SE 16.4 18.15257 1.7525717
Merc 450SL 17.3 18.15257 0.8525717
Merc 450SLC 15.2 18.15257 2.9525717
Fiat X1-9 27.3 25.92090 -1.3791024
এখন আপনার পরীক্ষার পরিসংখ্যানকে স্বাভাবিক উপায়ে গণনা করুন। আমি এমএসই এবং আরএমএসই বর্ণনা করি:
test.mse <- with(test, mean(error^2))
test.mse
[1] 7.119804
test.rmse <- sqrt(test.mse)
test.rmse
[1] 2.668296
মনে রাখবেন যে এই উত্তরটি পর্যবেক্ষণগুলির ওজনকে উপেক্ষা করে।