كيفية رسم فاصل الثقة في r
فاصل الثقة هو نطاق من القيم التي من المحتمل أن تحتوي على معلمة سكانية بمستوى معين من الثقة.
يشرح هذا البرنامج التعليمي كيفية رسم فاصل الثقة لمجموعة بيانات في R.
مثال: رسم فاصل الثقة في R
لنفترض أن لدينا مجموعة البيانات التالية في R مع 100 صف وعمودين:
#make this example reproducible set.seed(0) #create dataset x <- rnorm(100) y <- x*2 + rnorm(100) df <- data.frame(x = x, y = y) #view first six rows of dataset head(df) xy 1 1.2629543 3.3077678 2 -0.3262334 -1.4292433 3 1.3297993 2.0436086 4 1.2724293 2.5914389 5 0.4146414 -0.3011029 6 -1.5399500 -2.5031813
لإنشاء رسم بياني للعلاقة بين x وy، يمكننا أولاً أن نلائم نموذج الانحدار الخطي:
model <- lm(y ~ x, data = df)
بعد ذلك، يمكننا إنشاء مخطط لخط الانحدار الخطي المقدر باستخدام الدالة abline() والدالةlines() لإنشاء نطاقات الثقة الفعلية:
#get predicted y values using regression equation newx <- seq(min(df$x), max(df$x), length.out=100) preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence') #create plot of x vs. y, but don't display individual points (type='n') plot(y ~ x, data = df, type = 'n') #add fitted regression line abline(model) #add dashed lines for confidence bands lines(newx, preds[,3], lty = 'dashed', col = 'blue') lines(newx, preds[,2], lty = 'dashed', col = 'blue')
يُظهر الخط الأسود خط الانحدار الخطي المجهز بينما يُظهر الخطان الأزرقان المتقطعان فترات الثقة.
بشكل اختياري، يمكنك أيضًا ملء المنطقة الواقعة بين خطوط فاصل الثقة وخط الانحدار الخطي المقدر باستخدام الكود التالي:
#create plot of x vs. y plot(y ~ x, data = df, type = 'n') #fill in area between regression line and confidence interval polygon(c(rev(newx), newx), c(rev(preds[,3]), preds[,2]), col = 'grey', border = NA) #add fitted regression line abline(model) #add dashed lines for confidence bands lines(newx, preds[,3], lty = 'dashed', col = 'blue') lines(newx, preds[,2], lty = 'dashed', col = 'blue')
إليك الكود الكامل من البداية إلى النهاية:
#make this example reproducible set.seed(0) #create dataset x <- rnorm(100) y <- x*2 + rnorm(100) df <- data.frame(x = x, y = y) #fit linear regression model model <- lm(y ~ x, data = df) #get predicted y values using regression equation newx <- seq(min(df$x), max(df$x), length.out=100) preds <- predict(model, newdata = data.frame(x=newx), interval = 'confidence') #create plot of x vs. y plot(y ~ x, data = df, type = 'n') #fill in area between regression line and confidence interval polygon(c(rev(newx), newx), c(rev(preds[,3]), preds[,2]), col = 'grey', border = NA) #add fitted regression line abline(model) #add dashed lines for confidence bands lines(newx, preds[,3], lty = 'dashed', col = 'blue') lines(newx, preds[,2], lty = 'dashed', col = 'blue')
مصادر إضافية
ما هي فترات الثقة؟
كيفية استخدام الدالة abline() في R لإضافة خطوط مستقيمة إلى المخططات