এখানে শसानের কোডের একটি সংক্ষিপ্ত সংস্করণ, অ্যারের গড়ের 95% আত্মবিশ্বাসের ব্যবধান গণনা করে a
:
import numpy as np, scipy.stats as st
st.t.interval(0.95, len(a)-1, loc=np.mean(a), scale=st.sem(a))
তবে স্ট্যাটাসমোডেলস ব্যবহার করা তর্কাত্মকভাবে tconfint_mean
এমনকি আরও সুন্দর:
import statsmodels.stats.api as sms
sms.DescrStatsW(a).tconfint_mean()
উভয়ের জন্য অন্তর্নিহিত অনুমানগুলি a
হ'ল অজানা স্ট্যান্ডার্ড বিচ্যুতি ( ম্যাথওয়ার্ড বা উইকিপিডিয়া দেখুন ) সহ একটি সাধারণ বিতরণ থেকে নমুনা (অ্যারে ) স্বাধীনভাবে আঁকা হয়েছিল ।
বৃহত নমুনা আকার এন এর জন্য, নমুনা গড়টি সাধারণত বিতরণ করা হয় এবং কেউ এর ব্যবহার করে এর আত্মবিশ্বাসের ব্যবধান গণনা করতে পারে st.norm.interval()
(যায়েমের মন্তব্যে প্রস্তাবিত)। তবে উপরের সমাধানগুলি ছোট এন এর জন্যও সঠিক, যেখানে st.norm.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)
In [12]: sms.DescrStatsW(a).tconfint_mean()
Out[12]: (9.4457397432391197, 13.55426025676088)
এবং অবশেষে, ব্যবহার করে ভুল ফলাফল st.norm.interval()
:
In [13]: st.norm.interval(0.95, loc=np.mean(a), scale=st.sem(a))
Out[13]: (10.23484868811834, 12.76515131188166)