حاسبة المتوسط الوينزوري
يلخّص المتوسط الوينزوري البيانات العددية مع الحد من تأثير المشاهدات الصغيرة أو الكبيرة على نحو غير معتاد.
شغّل الأداة مجانًا
أدخلوا مصفوفة وكسرًا حديًا لكل طرف. ترتب الحاسبة المشاهدات، وتحدد الحدين الأدنى والأعلى وفق الرتبة، وتستبدل القيم التي تتجاوزهما، ثم تحسب متوسط العينة المعدلة. كما تعيد الحدين وعدد العناصر في كل طرف والقيم بعد الوينزرة، ليكون الناتج واضحًا وقابلًا لإعادة الإنتاج بدل أن يكون إحصاءً متينًا غير مفسر.
اختاروا كسرًا للطرفين يلائم تحليلكم
يحدد الكسر الحدي مقدار العينة الذي يعامل بوصفه كل طرف متطرف. يعني الكسر 0.10 أن أدنى عشرة في المئة وأعلى عشرة في المئة مرشحة للتقييد. ولأن المشاهدات منفصلة، تضرب الحاسبة حجم العينة في الكسر وتأخذ الجزء الصحيح لتحديد عدد العناصر في كل طرف. عند وجود 23 مشاهدة واستخدام الكسر 0.10، تُقيد مشاهدتان في كل جانب. أما الكسر صفر فيترك جميع القيم بلا تغيير، ومن ثم يعيد المتوسط الحسابي العادي. تجعل الكسور الأكبر الملخص أقل حساسية للقيم المتطرفة تدريجيًا، لكنها تزيل أيضًا مزيدًا من المعلومات عن التباين الحقيقي. اختاروا الكسر، ما أمكن، قبل الاطلاع على النتيجة المرغوبة، ووثقوا هذا الاختيار مع المخرجات. استخدموا في الأعمال الرسمية الكسر الذي تحدده طريقتكم أو بروتوكولكم أو أعراف مجالكم. وإذا لم يوجد عرف محدد، فقارنوا مجموعة صغيرة من الكسور المعقولة، واذكروا ما إذا كانت الخلاصة الموضوعية تتغير، بدل اختيار الإعداد الذي ينتج الرقم الأنسب فحسب.
افهموا بدقة كيف يغير التقييد العينة
تُرتب المشاهدات من الأصغر إلى الأكبر. إذا كان عدد عناصر الطرف k، أصبحت القيمة في الموضع المرتب k الحد الأدنى، وأصبحت القيمة الواقعة على بعد k مواضع من الطرف الأعلى الحد الأعلى. تُستبدل كل مشاهدة دون الحد الأدنى بذلك الحد، وتُستبدل كل مشاهدة فوق الحد الأعلى بالحد الأعلى، بينما تبقى القيم الواقعة بينهما بلا تغيير. ثم يُحسب متوسط المشاهدات المعدلة. يختلف هذا عن المتوسط المبتور؛ فالبتر يحذف مشاهدات الطرفين ويقلل عدد القيم الداخلة في المتوسط، في حين تحافظ الوينزرة على حجم العينة الأصلي وتستبدل القيم المتطرفة بقيم الحدود. تعرض الاستجابة المصفوفة المرتبة والمعدلة باسم winsorized_values، إلى جانب lower_limit وupper_limit وtail_count، حتى تتمكنوا من تدقيق كل استبدال. عندما يساوي الكسر النصف تمامًا، يتقاطع حدا الرتبة في العينة ذات العدد الزوجي. تعرّف الحاسبة هذه الحالة الحدية بأنها وسيط العينة وتقيد كل مشاهدة عنده؛ وإذا كان عدد المشاهدات زوجيًا، كان الوسيط متوسط القيمتين المركزيتين.
فسروا النتيجة من دون إخفاء القيم المتطرفة المهمة
يفيد المتوسط الوينزوري عندما تكون المشاهدات المتطرفة معقولة إلى درجة يصعب معها تبرير حذفها، لكنها مؤثرة بما يكفي لتشويه المتوسط العادي. وهو ليس إصلاحًا آليًا للبيانات الخاطئة. تحققوا أولًا من أخطاء الوحدات والسجلات المكررة وأعطال المستشعرات والقياسات المستحيلة وأخطاء النسخ؛ وصححوا الأخطاء المثبتة أو استبعدوها وفق قاعدة موثقة لتنظيف البيانات. طبقوا الوينزرة على عينة التحليل المتبقية عندما يجيب تقدير متين للموقع عن السؤال الفعلي. احتفظوا دائمًا في ملاحظات العمل بالمتوسط العادي وحجم العينة والكسر والحدود. يمثل الفرق الكبير بين المتوسط العادي والمتوسط الوينزوري معلومة تشخيصية؛ فهو يدل على أن الطرفين يؤثران جوهريًا في المتوسط ويستحق تفسيرًا. تذكروا أيضًا أن الوينزرة تغير التوزيع التجريبي وقد تؤثر في تقديرات التباين وفترات الثقة والنماذج اللاحقة. إذا احتجتم إلى إحصاء استدلالي، فاستخدموا طريقة تراعي أخطاؤها المعيارية الوينزرة صراحة، بدل معاملة القيم المعدلة كأنها قياسات خام لم تتغير. تقدم الحاسبة ملخصًا حتميًا، ولا تدعي أن كسرًا بعينه ملائم علميًا.
حالات الاستخدام
تلخيص القياسات التشغيلية
قللوا تأثير القيم المتطرفة العرضية في زمن الاستجابة أو المدة أو قراءات المستشعرات مع الحفاظ على عدد المشاهدات الأصلي.
فحص الحساسية للقيم الشاذة
قارنوا المتوسط العادي بالمتوسط الوينزوري لمعرفة ما إذا كان عدد قليل من قيم الطرفين يحدد النتيجة الرئيسية.
إعادة إنتاج قاعدة إبلاغ متينة
طبقوا كسرًا موثقًا للطرفين بصورة متسقة، واحتفظوا بالحدود والقيم المعدلة المعادة بوصفها مسارًا للتدقيق.
الأسئلة الشائعة
ما تكلفة الحساب؟
يمكن تشغيل حاسبة المتصفح مجانًا في هذه الصفحة. تستخدم طلبات API السعر الأساسي المنشور وقدره $0.002.
هل المتوسط الوينزوري هو نفسه المتوسط المبتور؟
لا. يحذف المتوسط المبتور مشاهدات من الطرفين، أما المتوسط الوينزوري فيحافظ على عدد المشاهدات ويستبدل القيم المتطرفة بأقرب حدين محتفظ بهما.
كيف يُحدد عدد المشاهدات المقيدة؟
تستخدم الحاسبة لكل طرف الجزء الصحيح من حاصل ضرب حجم العينة في الكسر الحدي. ويعرض الحقل tail_count هذا العدد.
ماذا يحدث عندما يكون الكسر الحدي صفرًا؟
لا تُقيد أي مشاهدة، ولذلك تساوي النتيجة المتوسط الحسابي العادي.
هل يمكن أن يساوي الكسر الحدي النصف؟
نعم. عندما يساوي النصف تمامًا، تُقيد جميع القيم عند وسيط العينة. وإذا كان عدد المشاهدات زوجيًا، كان الوسيط نقطة المنتصف بين القيمتين المركزيتين.
هل تقبل الحاسبة قيمًا مفقودة أو غير عددية؟
لا. يجب أن تحتوي مصفوفة values على عدد محدود واحد على الأقل، وأن تكون جميع العناصر عددية. نظفوا القيم المفقودة أو عوضوها صراحة قبل الحساب.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/stat/winsorized-mean \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"values":[1,2,3,4,100],"limit_fraction":0.2}'const res = await fetch("https://api.kit.forhosting.com/stat/winsorized-mean", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"values": [
1,
2,
3,
4,
100
],
"limit_fraction": 0.2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/stat/winsorized-mean",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"values": [
1,
2,
3,
4,
100
],
"limit_fraction": 0.2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/stat/winsorized-mean", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"values":[1,2,3,4,100],"limit_fraction":0.2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"values":[1,2,3,4,100],"limit_fraction":0.2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/stat/winsorized-mean", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"values": [
1,
2,
3,
4,
100
],
"limit_fraction": 0.2
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "stat.winsorized_mean",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |