הבנת מרווחי סמך עם Python

צומת המקור: 1883080

מאמר זה פורסם כחלק מה- בלוגאת מדע הנתונים.

תוכן העניינים

  1. מבוא
  2. רווחי סמך עם סטטיסטיקת Z
  3. פירוש מרווחי סמך
  4. הנחות ל-CI באמצעות z-statistic
  5. רווחי סמך עם סטטיסטיקת t
  6. הנחות ל-CI באמצעות סטטיסטיקת t
  7. יצירת מרווח t עם נתונים מזווגים
  8. z-value לעומת t-value: מתי להשתמש במה?
  9. רווחי סמך עם פיתון
  10. הערת קצה

מבוא

בכל פעם שאנו פותרים בעיה סטטיסטית אנו מודאגים מהערכת פרמטרים של אוכלוסיה, אך לרוב זה כמעט בלתי אפשרי לחשב פרמטרים של אוכלוסיה. מה שאנחנו עושים במקום זה הוא לקחת דגימות אקראיות מהאוכלוסייה ולחשב סטטיסטיקות מדגם בציפייה להעריך את פרמטרי האוכלוסייה. אבל איך נדע אם המדגמים הם מייצגים אמיתיים של האוכלוסייה או עד כמה סטטיסטיקת המדגם הזו חורגת מפרמטרי אוכלוסייה? כאן נכנסים לתמונה רווחי סמך. אז מה הם המרווחים האלה? רווח הסמך הוא טווח של ערכים הנעים מעל ומתחת לסטטיסטיקה של המדגם או שנוכל גם להגדיר אותו כהסתברות שטווח ערכים סביב נתון המדגם מכיל את פרמטר האוכלוסייה האמיתי.

רווחי סמך עם סטטיסטיקת Z

לפני שנעמיק בנושא, בואו נכיר כמה מינוחים סטטיסטיים.

אוכלוסייה: זה הסט של כל הפרטים הדומים. למשל אוכלוסיית עיר, סטודנטים של מכללה וכו'.

לִטעוֹם: זוהי קבוצה קטנה של פרטים דומים שנלקחו מהאוכלוסייה. באופן דומה, מדגם אקראי הוא מדגם שנלקח באקראי מהאוכלוסייה.

פרמטרים: ממוצע(מו), סטיות תקן(סיגמה), פרופורציה(p) הנגזרת מהאוכלוסייה.

נתון: ממוצע(x bar), סטיית תקן(S), פרופורציות(p^) הנוגעות לדגימות.

ציון Z: זהו המרחק של כל נקודת נתונים גולמיים בהתפלגות נורמלית מהממוצע המנורמל על ידי סטיית std. ניתנו על ידי: x-mu/sigma

בסדר עכשיו אנחנו מוכנים לצלול עמוק לתוך הרעיון של רווחי סמך. מסיבה כלשהי, אני מאמין שהרבה יותר טוב להבין מושגים באמצעות דוגמאות ניתנות לקשר במקום הגדרות מתמטיות גולמיות. אז בואו נתחיל.

נניח שאתה גר בעיר של 100,000 תושבים ובחירות בפתח. בתור סוקר, עליך לחזות מי עומד לנצח בבחירות, מפלגה כחולה או צהובה. אז אתה רואה שזה כמעט בלתי אפשרי לאסוף מידע מכל האוכלוסייה אז אתה בוחר באקראי 100 אנשים. בסוף הסקר גילית ש-62% מהאנשים הולכים להצביע לצהוב. עכשיו השאלה היא האם עלינו להסיק שצהוב הולך לנצח עם הסתברות ניצחון של 62% או 62% מכלל האוכלוסייה יצביעו לצהוב? ובכן, התשובה היא לא. אנחנו לא יודעים בוודאות כמה רחוקה ההערכה שלנו מהפרמטר האמיתי, אם ניקח דגימה נוספת התוצאה עלולה להתברר כ-58% או 65%. לכן, מה שנעשה במקום זה הוא למצוא מגוון ערכים סביב הנתון המדגם שלנו, שככל הנראה יתפוס את שיעור האוכלוסייה האמיתי. כאן, היחס מתייחס לאחוז של

מרווחי סמך עם Python

                                                                   התמונה שייכת למחבר

כעת, אם ניקח מאה מדגמים כאלה ונשרטט את שיעור המדגם של כל מדגם נקבל התפלגות נורמלית של פרופורציות דגימה וממוצע ההתפלגות יהיה הערך המשוער ביותר של חלק האוכלוסייה. וההערכה שלנו יכולה להיות בכל מקום על עקומת ההתפלגות. לפי כלל 3 סיגמא, אנו יודעים שכ-95% מהמשתנים האקראיים נמצאים בטווח של 2 סטיות רגילות מממוצע ההתפלגות. אז, אנו יכולים להסיק כי ההסתברות כי p^ נמצא בטווח של 2 סטיות סטד מ p הוא 95%. או שנוכל גם לקבוע שההסתברות ש-p נמצא בטווח של 2 סטיות רגילות מתחת ומעל p^ היא גם 95%. שתי ההצהרות הללו שקולות למעשה. שתי הנקודות הללו מתחת ומעל ה-p^ הן רווחי הסמך שלנו.

מרווחי סמך עם Python

                                                           התמונה שייכת למחבר

אם נוכל איכשהו למצוא את הסיגמה נוכל לחשב את המרווח הנדרש שלנו. אבל סיגמה כאן היא פרמטר האוכלוסייה ואנו יודעים שלעתים קרובות כמעט בלתי אפשרי לחישוב, אז במקום זאת נשתמש בסטטיסטיקה לדוגמה, כלומר שגיאה סטנדרטית. זה ניתן בתור

כאשר p^= פרופורציית דגימה, n=מספר דגימות

SE =√(0.62 . 0.38/100) = 0.05

אז, 2xSE = 0.1

רווח סמך לנתונים שלנו הוא (0.62-0.1,0.62+0.1) או (0.52,0.72). כפי שלקחנו 2xSE, זה מתורגם לרווח סמך של 95%.

עכשיו, השאלה היא מה אם אנחנו רוצים ליצור רווח סמך של 92%? בדוגמה הקודמת, הכפלנו 2 עם SE כדי לבנות רווח סמך של 95%, 2 זה הוא ציון ה-z עבור רווח סמך של 95% (הערך המדויק הוא 1.96) וניתן למצוא את הערך הזה מטבלת z. הערך הקריטי של z עבור רווח סמך של 92% הוא 1.75. מתייחס זֶה מאמר להבנה טובה יותר של z-score ו-z-table.

המרווח ניתן על ידי: (p^ + z*.SE , p^-z*.SE).

אם במקום ממוצע מדגם יינתן פרופורציית מדגם, השגיאה הסטנדרטית תהיה sigma/sqrt(n). הנה סיגמה היא סטיית התקן של האוכלוסייה, מכיוון שלעתים קרובות אין לנו, אנו משתמשים במקום זאת בסטיית תקן מדגם. אבל לעתים קרובות נצפה שסוג זה של אומדן שבו ניתן הממוצע, התוצאה נוטה להיות מעט מוטה. אז במקרים כאלה, עדיף להשתמש ב-t-statistic במקום ב-z-statistics.

הנוסחה הכללית לרווח סמך עם סטטיסטיקות z ניתנת על ידי

כאן, הנתון מתייחס לממוצע המדגם או לשיעור המדגם. סיגמאs הם סטיית התקן של האוכלוסייה.

פירוש מרווחי סמך

זה באמת חשוב לפרש נכון את מרווחי הסמך. שקול את הדוגמה הקודמת של הסוקרים שבה חישבנו את רווח הסמך של 95% שלנו להיות (0.52,0.62). מה זה אומר? ובכן, רווח בר סמך של 95% אומר שאם נצייר n מדגמים מהאוכלוסייה אז 95% מהזמן הרווח הנגזר יכיל את שיעור האוכלוסייה האמיתי. זכור שרווח סמך של 95% אינו אומר שיש סבירות של 95% שהמרווח מכיל את שיעור האוכלוסייה האמיתי. לדוגמה, עבור רווח סמך של 90% אם נצייר 10 מדגמים מאוכלוסיה אז 9 מתוך 10 פעמים הרווח האמור יכיל פרמטר אוכלוסייה אמיתי. תסתכל על התמונה למטה להבנה טובה יותר.

פירוש רווח הסמך

                                                            התמונה שייכת למחבר

הנחות לרווחי סמך באמצעות סטטיסטיקת Z

ישנן הנחות מסוימות שעלינו לחפש כדי לבנות רווח סמך תקף באמצעות z-statistic.

  1. דגימה אקראית: הדגימות צריכות להיות אקראיות. ישנן שיטות דגימה שונות כמו דגימה מרובדת, דגימה אקראית פשוטה, דגימת אשכולות כדי לקבל דגימות אקראיות.
  2. מצב תקין: הנתונים חייבים לעמוד בתנאי זה np^>=10 ו-n.(1-p^)>=10. זה בעצם אומר שהתפלגות הדגימה שלנו של ממוצעי המדגם צריכה להיות נורמלית, לא מוטה משני הצדדים.
  3. בלתי תלויים: הדגימות צריכות להיות עצמאיות. מספר הדגימות צריך להיות קטן או שווה ל-10% מכלל האוכלוסייה או אם הדגימה מתבצעת עם החלפה.

רווחי סמך עם סטטיסטיקת T

מה אם גודל המדגם קטן יחסית וסטיית התקן של האוכלוסייה לא ניתנת או שלא ניתן להניח אותה? כיצד אנו בונים רווח סמך? ובכן, זה המקום שבו סטטיסטיקת t נכנסת לתמונה. הנוסחה הבסיסית למציאת רווח בר-סמך כאן נשארת זהה עם רק z* מוחלף ב-t*. הנוסחה הכללית ניתנת על ידי

כאשר S = סטיית תקן מדגם, n = מספר דגימות

נניח, אירחת מסיבה ואתה רוצה להעריך את צריכת הבירה הממוצעת של האורחים שלך. אז אתה מקבל מדגם אקראי של 20 אנשים ומדידת צריכת הבירה. נתוני המדגם הם סימטריים עם ממוצע של 0f 1200 מ"ל וסטיית סטד של 120 מ"ל. אז עכשיו אתה רוצה לבנות רווח סמך של 95%.

אז יש לנו סטיית תקן מדגם, מספר הדגימות וממוצע מדגם. כל מה שאנחנו צריכים זה t*. אז, t* עבור רווח בר-סמך של 95% עם דרגת חופש של 19(n-1 = 20-1) הוא 2.093. אז, המרווח הנדרש שלנו הוא לאחר החישוב הוא (1256.16, 1143.83) עם מרווח טעות של 56.16. מתייחס זֶה סרטון כדי לדעת איך לקרוא את ה-t-table.

הנחות ל-CI באמצעות סטטיסטיקת T

בדומה למקרה של z-statistic גם כאן במקרה של t-סטטיסטיקה יש כמה תנאים שעלינו לשים לב אליהם בנתונים נתונים.

  1. המדגם צריך להיות אקראי
  2. הדגימה צריכה להיות תקינה. כדי להיות נורמלי, גודל המדגם צריך להיות גדול או שווה ל-30 או אם מערך הנתונים האב, כלומר האוכלוסייה נורמלית בערך. או אם גודל המדגם נמוך מ-30, ההתפלגות צריכה להיות בערך סימטרית.
  3. תצפיות בודדות צריכות להיות עצמאיות. זה אומר שהוא פועל לפי כלל 10% או שהדגימה מתבצעת עם החלפה.

יצירת מרווח T עבור נתונים מזווגים

עד כה השתמשנו רק בנתונים מדגם אחד. כעת נראה כיצד נוכל לבנות מרווח t עבור נתונים מזווגים. בנתונים זוגיים, אנו מבצעים שתי תצפיות על אותו פרט. לדוגמה, השוואת ציוני תלמידים לפני מבחן ואחרי מבחן או נתונים על השפעת תרופה ופלסבו על קבוצת אנשים. בנתונים זוגיים מצאנו את ההבדל בין שתי התצפיות בעמודה השלישית. כרגיל, נעבור על דוגמה כדי להבין גם את המושג הזה,

ש. מורה ניסה להעריך את ההשפעה של תכנית לימודים חדשה על תוצאת המבחן. להלן תוצאות התצפיות.

מרווח T עבור נתונים מזווגים

                                                      התמונה שייכת למחבר

מכיוון שאנו מתכוונים למצוא מרווחים עבור ההבדל הממוצע, אנו זקוקים רק לסטטיסטיקה עבור ההבדלים. נשתמש באותה נוסחה שהשתמשנו בה בעבר

סטטיסטיקה +- (ערך קריטי או t-value) (סטיית תקן של סטטיסטיקה)

xd = ממוצע ההבדל, Sd = סטיית תקן מדגם, עבור 95% CI עם דרגת חופש 5 t* ניתן על ידי 2.57. מרווח הטעות = 0.97 ורווח הסמך (4.18,6.13).

פרשנות: מההערכות לעיל כפי שאנו יכולים לראות, רווח הסמך אינו מכיל ערכים אפס או שלילי. לכן, אנו יכולים להסיק כי לתכנית הלימודים החדשה הייתה השפעה חיובית על ביצועי המבחנים של התלמידים. אם היו לה רק ערכים שליליים אז היינו יכולים לומר שלתוכנית הלימודים הייתה השפעה שלילית. או אם זה הכיל אפס אז יכולה להיות אפשרות שההבדל היה אפס או ללא השפעה של תוכנית הלימודים על תוצאות המבחנים.

ערך Z מול ערך T

יש הרבה בלבול בהתחלה לגבי מתי להשתמש במה. כלל האצבע הוא כאשר גודל המדגם הוא >= 30 וידוע שסטיית התקן של האוכלוסייה משתמשת בסטטיסטיקה z. במקרה שגודל המדגם הוא < 30 השתמש ב-t-statistics. בחיים האמיתיים, אין לנו פרמטרים של אוכלוסייה אז נלך עם z או t על סמך גודל המדגם.

עם דגימות קטנות יותר (n<30) משפט ה-LImit המרכזי אינו חל, ומשתמשים בהתפלגות אחרת הנקראת Student's t-distribution. התפלגות t דומה להתפלגות נורמלית אך לובשת צורות שונות בהתאם לגודל המדגם. במקום ערכי z, נעשה שימוש בערכי t שהם גדולים יותר עבור דגימות קטנות יותר, ומייצרים מרווח שגיאה גדול יותר. מכיוון שגודל מדגם קטן יהיה פחות מדויק.

מרווחי סמך עם Python

לפייתון יש ספרייה עצומה התומכת בכל מיני חישובים סטטיסטיים מה שהופך את החיים שלנו לקלים יותר. בחלק זה נבחן את הנתונים על הרגלי השינה של פעוטות. 20 המשתתפים בתצפיות אלו היו בריאים, התנהגו בצורה תקינה, ללא הפרעת שינה. המטרה שלנו היא לנתח את שעת השינה של פעוטות מנמנמים ולא מנמנמים.

התייחסות: Akacem LD, Simpkin CT, Carskadon MA, Wright KP Jr, Jenni OG, Achermann P, et al. (2015) העיתוי של השעון הצירקדי והשינה שונים בין פעוטות מנמנמים לפעוטות שאינם מנמנמים. PLoS ONE 10(4): e0125181. https://doi.org/10.1371/journal.pone.0125181

אנו נייבא ספריות שנצטרך

ייבוא ​​numpy כ-np ייבוא ​​פנדות כ-pd מ-scipy.stats import t pd.set_option('display.max_columns', 30) # מוגדר כך שניתן לראות את כל העמודות של מתמטיקה של ייבוא ​​DataFrame
df = pd.read_csv(nap_no_nap.csv) #קריאת נתונים
df.head ()
מרווחי סמך עם Python

צור שני מרווחי סמך של 95% לשעת השינה הממוצעת, אחד לפעוטות שנמנמים ואחד לפעוטות שלא. ראשית, נבודד את העמודה 'שעת לילה' עבור אלו שנמנמו למשתנה חדש, ואלו שלא נמנמו למשתנה חדש אחר. שעת השינה כאן היא עשרונית.

bedtime_nap = df['night bedtime'].loc[df['napping'] == 1] bedtime_no_nap = df['night bedtime'].loc[df['napping'] == 0]

print(len(נמנום_שינה))

print(len(time_no_nap))

פלט: 15 n 5


כעת, נמצא את מדגם שעת השינה הממוצעת עבור תנומה ו-no_nap.

nap_mean_bedtime = bedtime_nap.mean() #20.304 no_nap_mean_bedtime = bedtime_no_nap.mean() #19.59

כעת, נמצא את סטיית התקן לדוגמה עבור Xתנומה ו- Xללא תנומה 

nap_s_bedtime = np.std(bedtime_nap,ddof=1) no_nap_s_bedtime = np.std(bedtime_no_nap,ddof=1)

הערה: הפרמטר ddof מוגדר ל-1 עבור מדגם std dev, אחרת הוא יהפוך ל-population std dev.

כעת, נמצא את השגיאה הסטנדרטית לדוגמה עבור Xתנומה ו- Xללא תנומה 

nap_se_mean_bedtime = nap_s_bedtime/math.sqrt(len(bedtime_nap)) #0.1526 no_nap_se_mean_bedtime = no_nap_s_bedtime/math.sqrt(len(bedtime_no_nap)) #0.2270

עד כאן הכל טוב, כעת מכיוון שגודל המדגם קטן ואין לנו סטיית תקן של שיעור האוכלוסייה, נשתמש בערך t*. דרך אחת למצוא את הערך t* היא באמצעות scipy.stats t.ppf פוּנקצִיָה. הארגומנטים עבור t.ppf() הם q = אחוז, df = דרגת חופש, scale = std dev, loc = ממוצע. מכיוון שהתפלגות t היא סימטרית עבור רווח סמך של 95% q יהיה 0.975. עיין זֶה למידע נוסף על t.ppf().

nap_t_star = t.ppf(0.975,df=14) #2.14 no_nap_t_star = t.ppf(0.975,df=5) #2.57

כעת, נוסיף את החלקים כדי לבנות סוף סוף את מרווח הסמך שלנו.

nap_ci_plus = nap_mean_time_ + nap_t_star*nap_se_time

nap_ci_minus = nap_mean_time – nap_t_star*nap_se_time

print(nap_ci_minus,nap_ci_plus)

no_nap_ci_plus = no_nap_mean_time + no_nap_t_star*nap_se_time

no_nap_ci_minus = no_nap_mean_time – no_nap_t_star*nap_se_time

print(no_nap_ci_minus,no_nap_ci_plus)


פלט: 19.976680775477412 20.631319224522585 18.95974084563192 20.220259154368087

פרשנות: 

מהתוצאות לעיל, אנו מסיקים כי אנו בטוחים ב-95% שזמן השינה הממוצע לפעוטות מנמנמים הוא בין השעה 19.98 – 20.63 (בצהריים) ואילו עבור פעוטות שאינם מנמנמים הוא בין 18.96 – 20.22 (בצהריים). התוצאות הללו הן בהתאם לציפיות שלנו שאם תנמנם במהלך היום תישן מאוחר בלילה.

EndNotes

אז, הכל היה על רווחי סמך פשוטים באמצעות ערכי z ו-t. זה אכן מושג שחשוב לדעת במקרה של כל מחקר סטטיסטי. שיטה סטטיסטית מסקנת מצוינת להערכת פרמטרי אוכלוסייה מנתוני מדגם. רווחי סמך קשורים גם לבדיקת השערות שלפיהן עבור 95% CI משאירים 5% מקום לאנומליות. אם השערת האפס נופלת בתוך רווח הסמך אז ערך ה-p יהיה גדול ולא נוכל לדחות את האפס. לעומת זאת, אם זה נופל מעבר, תהיה לנו הוכחה מספקת כדי לדחות אפס ולקבל השערות חלופיות.

מקווה שאהבתם את המאמר ושנה טובה (:

המדיה המוצגת במאמר זה אינה בבעלות Analytics Vidhya ונעשה בהם שימוש לפי שיקול דעתו של המחבר.

מקור: https://www.analyticsvidhya.com/blog/2022/01/understanding-confidence-intervals-with-python/

בול זמן:

עוד מ אנליטיקה וידיה