Amer Abdallah نشر 12 أغسطس 2021 أرسل تقرير نشر 12 أغسطس 2021 لدي عينة من البيانات التي أود حساب مجال الثقة لها Confidence Interval، بافتراض التوزيع الطبيعي. لقد وجدت حزمتي numpy و scipy وقمت بتثبيتها واستخدمت numpy لإرجاع الانحراف المتوسط mean deviation والمعياري standard deviation من خلال الكود التالي: numpy.mean(data) لكن لا أعرف كيفية الحصول على مجال الثقة Confidence Interval للبيانات التي لدي. كيف أستخدم مكتبة Numpy و scipy للحصول على مجال الثقة Confidence Interval؟ اقتباس
1 Ali Haidar Ahmad نشر 12 أغسطس 2021 أرسل تقرير نشر 12 أغسطس 2021 (معدل) كما نعلم فأن مجال الثقة هو مجال عددي يُتوقع أن يحتوي على القيمة الحقيقية لمَعلَمة (كمية عددية تميّز و"تلخص" التوزع الاحتمالي لمجموعة من الأحداث المتشابهة) إحصائية يراد معرفتها لمجموعة من العناصر أو الأحداث المتشابهة (تسمى في عالم الإحصاء مجتمع إحصائي) التي تكون (بجميع عناصرها) موضوعا لدراسة علمية ما.في أغلب الأبحاث أن يتم استخدام مجالات ثقة بمستوى ثقة قدره 95% ولكن يمكن أن يتم أيضا حسابها بمستويات ثقة أخرى مثل 99% و90%. في بايثون يمكنك استخدام scipy.stats.t.interval للحصول على مجال الثقة لعينة إحصائية ما. في بايثون يمكنك حسابه كالتالي: import scipy import scipy.stats as s import numpy as np sample=np.array([1,2,3,4,5,6]) confidence_level = 0.95 degrees_freedom = sample.size - 1 mean = np.mean(sample) standard_error = scipy.stats.sem(sample) confidenceinterval = s.t.interval(confidence_level, degrees_freedom, mean, standard_error) confidenceinterval # (1.5366856922723917, 5.463314307727608) استخدم numpy.ndarray.size - 1 مع numpy.array كمصفوفة من بيانات العينة للعثور على درجة الحرية. ثم استدعي numpy.mean(arr) لحساب المتوسط الحسابي لبيانات العينة arr، ثم استدعي scipy.stats.sem(arr) لحساب الخطأ المعياري لها "standard error" (طريقة قياس أو تقدير الانحراف المعياري) ثم استدعي scipy.stats.t.interval(confidence_level, degrees_freedom, mean, std) لحساب مجال الثقة. يمكنك أيضاً حسابها بالشكل التالي من خلال استخدام الدالة NormalDist : from statistics import NormalDist import scipy import numpy as np sample=np.array([1,2,3,4,5,6]) def confidenceinterval(s, confidence=0.95): #NormalDist.stdev& NormalDist.mean ترجع لنا كائن يحتوي معلومات أهمها المتوسط والانحراف المعياري من خلال استدعاء الواصفتين dist = NormalDist.from_samples(s) z = NormalDist().inv_cdf((1 + confidence) / 2.) h = dist.stdev * z / ((len(s) - 1) ** .5) return dist.mean - h, dist.mean + h تم التعديل في 12 أغسطس 2021 بواسطة Ali Haidar Ahmad 1 اقتباس
0 Ahmed Sharshar نشر 12 أغسطس 2021 أرسل تقرير نشر 12 أغسطس 2021 (معدل) يمكنك حلها بالدالة التالية ببساطة: import numpy as np import scipy.stats def mean_confidence_interval(data, confidence=0.95): a = 1.0 * np.array(data) n = len(a) m, se = np.mean(a), scipy.stats.sem(a) h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1) return m, m-h, m+h كذلك هناك دالة داخلية يمكنك استعمالها كالتالي: import numpy as np, scipy.stats as st st.t.interval(0.95, len(a)-1, loc=np.mean(a), scale=st.sem(a)) حيث ان 0.95 تمثل نسبة ال Confidence Interval التى تريدها. هنا بعض الامثلة التي قد توضح تبين الفكرة: In [9]: a = range(10,14) In [10]: mean_confidence_interval(a) Out[10]: (11.5, 9.4457397432391215, 13.554260256760879) In [11]: st.t.interval(0.95, len(a)-1, loc=np.mean(a), scale=st.sem(a)) Out[11]: (9.4457397432391215, 13.554260256760879) لاحظ ان قيم ال Confidence Interval في كلتا الطريقتين واحدة تم التعديل في 12 أغسطس 2021 بواسطة Ahmed Sharshar 1 اقتباس
السؤال
Amer Abdallah
لدي عينة من البيانات التي أود حساب مجال الثقة لها Confidence Interval، بافتراض التوزيع الطبيعي.
لقد وجدت حزمتي numpy و scipy وقمت بتثبيتها واستخدمت numpy لإرجاع الانحراف المتوسط mean deviation والمعياري standard deviation من خلال الكود التالي:
لكن لا أعرف كيفية الحصول على مجال الثقة Confidence Interval للبيانات التي لدي.
كيف أستخدم مكتبة Numpy و scipy للحصول على مجال الثقة Confidence Interval؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.