الأنحدار الخطي (linear regression) هو أسلوب إحصائي يهدف لإيجاد علاقة خطية بين المتغير التابع (dependent variable) والمتغيرات المستقلة (independent variables)، كذلك يهدف الى التنبؤ (prediction) بقيم المتغير التابع. ويمكن تعريف الإنحدار الخطي رياضياً كما يلي:
\[
y=\alpha+\beta_1 x_1+\beta_2 x_2+…+\beta_p x_p+\epsilon
\]
حيث يسمى $y$ المتغير التابع (dependent variable) او متغير الإستجابة (response variable) او متغير الناتج (outcome variable)، كذلك تسمى $x_1, x_2,…, x_p$ المتغيرات المستقلة (independent variables) او المتغيرات التفسيرية (explanatory variables) او متغيرات التنبؤ (predictor variables).
تُعرف البواقي (Residuals) بأنها الفرق بين القيمة الملاحظة (الفعلية) للمتغير التابع وقيمة المتغير التابع التي يتم التنبؤ بها بإستخدام خط الانحدار.
تعطى فروض الإنحدار الخطي (assumptions of linear regression) كما في الشكل ادناه:
الآن سوف نوضح طريقة حساب الإنحدار الخطي (linear regression) بإستخدام الدالة (lm) الموجودة في البرنامج آر R. في البداية، سوف نقوم بتوليد بيانات محكاه (simulated data) من النموذج الخطي التالي:
\[y=\alpha+\beta x +\epsilon\]
كما يلي:
In:
x=runif(100,10,20)
Epsilon=rnorm(100)
Alpha=2
Beta=1
y=Alpha+Beta*x+Epsilon
بإستخدام الأمر التالي:
In:
plot(y~x)
نجد أن العلاقة بين المتغيرين $x$ و $y$ تعطى بالشكل التالي:
الأن، لتلخيص نتائج التحليل الإحصائي يمكن أن نستخدم الدالة lm كما يلي:
In: fit=lm(y~x) Out: Call: lm(formula = y ~ x) Coefficients: (Intercept) x 1.917 1.008
يمكن رسم خط الأنحدار كما يلي:
In:
plot(y~x)
abline(fit,col=2)
كما يمكن إستخدام الأمر summary لتلخيص نتائج التحليل الإحصائي كما يلي:
In: summary(fit) Out: Call: lm(formula = y ~ x) Residuals: Min 1Q Median 3Q Max -2.75873 -0.50077 -0.03808 0.54745 2.23504 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.9167 0.5261 3.643 0.000433 *** x 1.0079 0.0333 30.271 < 2e-16 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.9731 on 98 degrees of freedom Multiple R-squared: 0.9034, Adjusted R-squared: 0.9024 F-statistic: 916.4 on 1 and 98 DF, p-value: < 2.2e-16
كذلك، يمكن تشخيص (diagnosis) النموذج والتأكد من تحقق جميع الفروض بإستخدام الأمر التالي:
In:
par(mfrow=c(2,2))
plot(fit)
حيث يعطي هذا الشكل:
كما يمكن التنبو (prediction) بقيم المتغير التابع $y$ لاي قيمة حديدة لـ $x$، كما يلي:
In: newdata = data.frame(x = c(11,15,18)) Prediction = predict(fit,newdata) Prediction Out: 1 2 3 13.00412 17.03592 20.05977
يمكن تحليل التباين (analysis of variance) بإستخدام الأمر:
In: anova(fit) Out: Analysis of Variance Table Response: y Df Sum Sq Mean Sq F value Pr(>F) x 1 867.63 867.63 916.36 < 2.2e-16 *** Residuals 98 92.79 0.95 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
كما يمكن حساب AIC , BIC لنموذج الإنحدار الخطي بإستخدام الدوال التالية:
In: AIC(fit) Out: [1] 282.3041 In: BIC(fit) Out: [1] 290.1196
يعطيك العافيه ، شرح وافي ومفيد ، نفع الله بك
اخوي ممكن سؤال.. انا مطلوب مني مشروع يمثل هذه العلاقة الخطية بين متغيرين.. وين يمكن القى بيانات خام حقيقية بينها علاقة خطية