دليل إلى dnorm، pnorm، qnorm وrnorm في r
التوزيع الطبيعي هو التوزيع الأكثر استخدامًا في الإحصاء. يشرح هذا البرنامج التعليمي كيفية استخدام التوزيع الطبيعي في R باستخدام وظائف dnorm و pnorm و rnorm و qnorm .
com.dnormous
ترجع الدالة dnorm قيمة دالة الكثافة الاحتمالية (pdf) للتوزيع الطبيعي بالنظر إلى بعض المتغيرات العشوائية x ومتوسط السكان μ والانحراف المعياري للسكان σ . بناء الجملة لاستخدام dnorm هو كما يلي:
dnorm (x، يعني، sd)
يوضح التعليمة البرمجية التالية بعض الأمثلة على dnorm أثناء العمل:
#find the value of the standard normal distribution pdf at x=0 dnorm(x=0, mean=0, sd=1) #[1]0.3989423 #by default, R uses mean=0 and sd=1 dnorm(x=0) #[1]0.3989423 #find the value of the normal distribution pdf at x=10 with mean=20 and sd=5 dnorm(x=10, mean=20, sd=5) #[1]0.01079819
عادةً، عند محاولة حل أسئلة حول الاحتمالية باستخدام التوزيع الطبيعي، غالبًا ما تستخدم pnorm بدلاً من dnorm . أحد التطبيقات المفيدة لـ dnorm هو إنشاء مخطط توزيع عادي في R. يوضح الكود التالي كيفية القيام بذلك:
#Create a sequence of 100 equally spaced numbers between -4 and 4 x <- seq(-4, 4, length=100) #create a vector of values that shows the height of the probability distribution #for each value in x y <- dnorm(x) #plot x and y as a scatterplot with connected lines (type = "l") and add #an x-axis with custom labels plot(x,y, type = "l", lwd = 2, axes = FALSE, xlab = "", ylab = "") axis(1, at = -3:3, labels = c("-3s", "-2s", "-1s", "mean", "1s", "2s", "3s"))
يؤدي هذا إلى إنشاء المؤامرة التالية:
com.pnorm
ترجع الدالة pnorm قيمة دالة الكثافة التراكمية (cdf) للتوزيع الطبيعي بالنظر إلى بعض المتغيرات العشوائية q ومتوسط السكان μ والانحراف المعياري للسكان σ . بناء الجملة لاستخدام pnorm هو كما يلي:
بنورم (ف، يعني، التنمية المستدامة)
بعبارات بسيطة، تقوم pnorm بإرجاع المساحة الموجودة على يسار قيمة معينة x في التوزيع الطبيعي. إذا كنت مهتمًا بالمنطقة الموجودة على يمين قيمة q معينة، فيمكنك ببساطة إضافة الوسيطة Lower.tail = FALSE
pnorm(q، متوسط، sd، Lower.tail = FALSE)
توضح الأمثلة التالية كيفية حل بعض الأسئلة الاحتمالية باستخدام pnorm.
مثال 1: لنفترض أن طول الرجال في مدرسة معينة يتم توزيعه بشكل طبيعي بمتوسط معياري قدره
#find percentage of males that are taller than 74 inches in a population with #mean = 70 and sd = 2 pnorm(74, mean=70, sd=2, lower.tail=FALSE) # [1]0.02275013
في هذه المدرسة، يبلغ طول 2,275% من الرجال أكثر من 74 بوصة.
مثال 2: لنفترض أن وزن نوع معين من ثعالب الماء يتم توزيعه بشكل طبيعي بمتوسط معياري قدره
#find percentage of otters that weight less than 22 lbs in a population with #mean = 30 and sd = 5 pnorm(22, mean=30, sd=5) # [1]0.05479929
حوالي 5.4799% من هذه الأنواع من القضاعات تزن أقل من 22 رطلاً.
مثال 3: لنفترض أن ارتفاع النباتات في منطقة معينة يتم توزيعه بشكل طبيعي بمتوسط معياري قدره
#find percentage of plants that are less than 14 inches tall, then subtract the #percentage of plants that are less than 10 inches tall, based on a population #with mean = 13 and sd = 2 pnorm(14, mean=13, sd=2) - pnorm(10, mean=13, sd=2) # [1]0.6246553
يتراوح طول حوالي 62.4655% من النباتات في هذه المنطقة بين 10 و14 بوصة.
com.qnorm
ترجع الدالة qnorm قيمة دالة الكثافة التراكمية العكسية (cdf) للتوزيع الطبيعي بالنظر إلى بعض المتغيرات العشوائية p ومتوسط السكان μ والانحراف المعياري للسكان σ . بناء الجملة لاستخدام qnorm هو كما يلي:
qnorm (ع، يعني، sd)
بعبارات بسيطة، يمكنك استخدام qnorm لمعرفة درجة Z لكمية pth للتوزيع الطبيعي.
يوضح التعليمة البرمجية التالية بعض الأمثلة على qnorm في العمل:
#find the Z-score of the 99th quantile of the standard normal distribution qnorm(.99, mean=0, sd=1) #[1]2.326348 #by default, R uses mean=0 and sd=1 qnorm(.99) #[1]2.326348 #find the Z-score of the 95th quantile of the standard normal distribution qnorm(.95) #[1]1.644854 #find the Z-score of the 10th quantile of the standard normal distribution qnorm(.10) #[1]-1.281552
rnorm
تولد الدالة rnorm متجهًا للمتغيرات العشوائية الموزعة بشكل طبيعي بالنظر إلى طول المتجه n ومتوسط السكان μ والانحراف المعياري للسكان σ . بناء الجملة لاستخدام rnorm هو كما يلي:
رنورم (ن، يعني، سد)
يوضح التعليمة البرمجية التالية بعض الأمثلة على rnorm في العمل:
#generate a vector of 5 normally distributed random variables with mean=10 and sd=2 five <- rnorm(5, mean = 10, sd = 2) five # [1] 10.658117 8.613495 10.561760 11.123492 10.802768 #generate a vector of 1000 normally distributed random variables with mean=50 and sd=5 narrowDistribution <- rnorm(1000, mean = 50, sd = 15) #generate a vector of 1000 normally distributed random variables with mean=50 and sd=25 wideDistribution <- rnorm(1000, mean = 50, sd = 25) #generate two histograms to view these two distributions side by side, specify #50 bars in histogram and x-axis limits of -50 to 150 par(mfrow=c(1, 2)) #one row, two columns hist(narrowDistribution, breaks=50, xlim=c(-50, 150)) hist(wideDistribution, breaks=50, xlim=c(-50, 150))
يؤدي هذا إلى إنشاء الرسوم البيانية التالية:
لاحظ كيف أن التوزيع الواسع أوسع بكثير من التوزيع الضيق. وبالفعل فقد حددنا أن الانحراف المعياري في التوزيع الواسع كان 25، مقارنة بـ 15 فقط في التوزيع الضيق. لاحظ أيضًا أن كلا الرسمين البيانيين يتمركزان حول متوسط 50.