יום שבת, 19 באוקטובר 2013

שלום סמסטר א'

שלום,

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

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

במחקר של CNN Money משנת 2012 "תכניתן SAS" הגיע למקום 81 ברשימת התפקידים הטובים ביותר (בארה"ב) מתוך יותר מ – 9,000 תפקידים שנבחנו. בחינה של הרשימה כולה מראה ששליטה ב – SAS יכולה לעזור מאוד גם בתפקידים אחרים כגון "אנליסט שיווקי" שהגיע למקום השביעי, "אקטואר" שנמצא במקום 25 ועוד.

מחקר נוסף שבוצע (בארה"ב) ע"י Monster.com (אתר השמה עולמי מוביל) מצא ששליטה ב – SAS היא היכולת שיכולה להוביל לגידול המשמעותי ביותר בשכר – עד 17% - עבור מועסקים בתפקידים הרלוונטים.

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

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

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

בהצלחה,

חגי

יום שלישי, 15 באוקטובר 2013

פיתוח פונקציות מתקדמות ושילובן בקוד SAS קיים

שלום לכולם,

כתיבת פונקציות חדשות בשפת SAS אפשרית זה מכבר תוך שימוש ב- PROC FCMP. כתיבת פונקציות מאפשרת שימוש חוזר בקוד וגם מאפשרת פיתוח קוד שפותר בעיות שה- Data Step המסורתי אינו מאפשר על ידי כתיבת קוד רקורסיבי.

ל- PROC FCMP ישנה יכולת מעניינת ביותר המאפשרת לכתוב פונקציה אשר בתורה מפעילה קוד SAS שלם המורכב ממספר step-ים. מה זה אומר? ובכן, המשמעות היא שבעת הקריאה לפונקציה מופעל קוד SAS שלם ובסיום הריצה מוחזרת תשובה לקורא. דמיינו מצב בו אתם מפעילים פרוצדורה של SAS באמצע ריצה של Data Step. נשמע לא אפשרי אבל זה כן.

בגרסה SAS 9.4 ישנן פונקציות חדשות של SAS שנקראות dosub ו- dosubl. פונקציות אלו מאפשרות הפעלת קוד SAS ישירות בתוך Data Step ללא צורך בכתיבת פונקציית "מעטפת" של PROC FCMP.
יכולת זו הוגדרה ניסיונית ב- SAS 9.3M2

להלן מספר קישורים על דוגמאות ומידע נרחב נוסף:

http://support.sas.com/resources/papers/proceedings12/227-2012.pdf
http://support.sas.com/documentation/cdl/en/lefunctionsref/64814/HTML/default/viewer.htm#p09dcftd1xxg1kn1brnjyc0q93yk.htm

שלכם,
אייל גונן



יום שבת, 5 באוקטובר 2013

תיקון פורמט ה- NLDATE ב- SAS 9.4 כך שיתאים לפלטים משמאל לימין

שלום,

האם ניסיתם אי פעם להשתמש בפורמט NLDATE בתוכניות שלכם?

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

להלן פלט של תוכנית פשוטה:
 
 
 
 
 
 
 
 
 
 
 
פלט הפורמט  מתאים לפלט שהוא מימין לשמאל ולא לפלט משמאל לימין (חלון ה- LOG הוא דוגמה לחלון שמציג פלט משמאל לימין)
 
למזלנו בגרסה SAS 9.4 ישנה פרוצדורה חדשה המאפשרת לשלוט במרכיבי ה- Locale ובכך לשנות את ההתנהגות של כל פורמטי ה- NLS כאשר NLDATE הינו אחד מהם. רשימת הפורמטים הללו המלאה נמצאת בכתובת: http://support.sas.com/documentation/cdl/en/nlsref/64811/HTML/default/viewer.htm#n048w7u0r1sjiyn170pweodtgno7.htm
 
הפרוצדורה החדשה נקראת PROC LOCALEDATA והיא מתועדת בכתובת: http://support.sas.com/documentation/cdl/en/nlsref/64811/HTML/default/viewer.htm#p1acx19u1i322en17hnkz72x6xhf.htm
 
להלן הקוד שמשנה את ההתנהגות של NLDATE והפלט החדש:
 











להלן הפלט החדש שמתקבל:













שימו לב שיש לסגור ולפתוח את ה- SAS מחדש לאחר כל הפעלה של Proc Localedata. כמו כן יש להוסיף את האופציה -localedata registry להפעלה של SAS


אייל גונן

יום ראשון, 1 בספטמבר 2013

יהיה מחשמל

שלום,

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

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

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

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

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

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

תודה,

חגי

יום חמישי, 11 ביולי 2013

9.4

שלום,

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

בפוסטים עתידיים נתעמק בחלק (קטן) מהשינויים בגירסא החדשה אבל במבט מלמעלה ניתן להבחין במספר תחומים בהם נעשתה עבודה רבה במיוחד:

·         שיפור יכולות הניהול (Administration) של סביבת ה -  SAS ככלל ושל רכיבי SAS השונים המותקנים בארגון.

·         שיפור יכולות הזמינות (Availability) מתוך הבנה שניתוחים אנליטים משתלבים יותר ויותר בתהליכי העבודה השוטפים של הארגון ולכן גם המערכות האנליטיות צריכות להיות בעלות זמינות גבוהה בדומה למערכות התפעוליות.

·         שיפור והרחבה של האנליטיקה העל-ביצועית (High-Performance) להתמודדות עם כמויות המידע ההולכות וגדלות.

·         מגוון רחב יותר של אפשרויות התקנה (Deployment) כולל סוגים שונים של עננים למתן מענה לצרכים והמאפיינים השונים של כל לקוח.

·         שיפור יכולות האבטחה והבקרה.

·         הוספת דרכים נוספות להצגה והפצה של תוצרי הניתוחים ומגוון שיפורים בדרכים הקיימות.

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

תודה,
חגי

יום שני, 13 במאי 2013

בינה ציבורית


שלום,

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

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

רק בתקופה האחרונה פורסמו מספר נתונים שכאלו (נתוני המיצ"ב לכל מוסד לימוד ורשות מקומית וספרי תקציב מפורטים) שעוררו רעש רב וויכוח האם בכלל נכון לחשוף נתונים שכאלו לציבור. ארצות הברית, לדוגמא, כבר פועלת בכיוון זה עם אתרים כגון data.gov הזוכה לתמיכתו של הנשיא אובמה וגם האתר הישראלי המקביל – data.gov.il - מכיל בתוכו מגוון מכובד של נתונים.

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

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

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

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

חגי

יום שני, 6 במאי 2013

איש הברזל


שלום,

ביום חמישי האחרון יצא בארץ סרט הקולנוע "איירון מן 3". אם אתם תמהים מה הקשר בין הבלוג הזה שאינו עוסק בקולנוע (כמעט), בקומיקס או בגיבורי-על (שאינם SAS-ניקים) לבין סרט המבוסס על גיבור-על בקומיקס של חברת מארוול אז המשיכו לקרוא.

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

לאחר בדיקת מספר אתרים, הקמפוס העולמי של חברת SAS בעיר קארי שבצפון קרולינה ובמיוחד בנין C המכיל את מרכז הכנסים של החברה, נמצא כבעל המראה העתידני המדיוק הנדרש לשם הצילומים. הסמלילים של SAS הוחלפו למספר שעות לאלו של תאגיד סטארק הבדיוני לחלוטין (אך בעל ערך Wikipedia משלו) ולרשימת האורחים הנכבדים בקמפוס של SAS התווסף גם רוברט דאוני ג'ונייר המגלם את גיבור הסרט - איירון מן.

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

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

"כי אני חושב שהעובדים יאהבו את זה".

ניתן לקרוא פרטים נוספים על הנגיעה בחלום ההוליוודי בבלוגים של עובדי חברת SAS פה וגם פה.

חגי

יום שבת, 27 באפריל 2013

SGF2013


שלום,

מחר יפתח כנס SAS העולמי השנתי – SAS Global Forum 2013, והפעם בסן פרנסיסקו. כבכול שנה, מגוון ערוצים וירטואלים מאפשר גם לאלו שלא יכולים לפקוד את האירוע באופן פיזי להנות מהכנס. לדוגמא, כל מאות המאמרים שיוצגו בכנס ע"י משתמשי SAS מרחבי העולם כבר זמינים כאן, שידורים חיים מהכנס וגם הרצאות מוקלטות של חלק מהמאמרים ע"י הכותבים עצמם. כמובן שאי אפשר בלי Twitter, Facebook, LinkedIn ויתר ערוצי הרשת החברתית.
חגי



יום רביעי, 20 במרץ 2013

למה לי פוליטיקה עכשיו

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

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

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

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

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

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

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

נקודה בולטת בשני המאמרים הללו (אני בטוח שחיפוש מהיר בגוגל ימצוא עוד עשרות מאמרים דומים) הוא תהליך הפקת הלקחים של אנשי אובמה מקמפיין הבחירות של 2008 וביצוע השינויים וההתאמות כדי שהקמפיין של 2012 יהיה טוב אף יותר.

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

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

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

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

בעזרת טכניקה הנקראית "ניתוח רכיבים ראשיים", בכלי ה – JMP, חושב המתאם בין שיעורי הצבעה של הקולות הכשרים לכל אחת מהמפלגות שעברו את אחוז החסימה בכל אחד מהישובים בארץ. סה"כ נותחו שיעורי ההצבעה של 3.6 מיליון קולות ב – 1,184 ישובים.

הניתוח מייצר הרבה מאוד תוצרים אבל הגרף הזה מספק סיכום ויזואלי של התוצאות:

התרשים מציג את המתאם בין הצבעות למפלגות מסויימות. אם בישובים רבים יש שיעור הצבעה גבוה גם ל - 'עבודה' וגם ל - 'יש עתיד' הרי שהחיצים של שתי מפלגות אלו יהיו קרובים. מנגד, אם בישובים רבים שיעור ההצבעה ל – 'ש"ס' גבוה ושיעור ההצבעה ל - 'עבודה' נמוך החיצים המתארים מפלגות אלו יפנו לכיוונים מנוגדים.

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

ניתן לבלות שעות רבות בניתוח המשמעויות העולות מהגרף. להלן מספר תובנות שיעזרו לכם להתחיל: בניגוד לגישה המקובלת המחלקת את המפה הפוליטית לשני גושים של ימין ושמאל, ניתוח דפוסי ההצבעה מגלה כי בפועל יש 4 גושי הצבעה מובחנים. מלבד הימין והשמאל הידועים ראוי להתייחס למפלגת 'ש"ס' ולמפלגות הערביות כשני גושים נוספים. המיקום של מפלגת ש"ס המנוגדת מצד אחד לגוש שאותו מובילה 'העבודה' ונמצאת בין הגוש הימני לגוש הערבי של מאגר המצביעים בישראל נובע מכך שישובים בהם היתה הצבעה מובהקת למפלגות הערביות היה גם שיעור הצבעה לא מבוטל ל – 'ש"ס'.

"כוכבי" הבחירות האחרונות מוצגים בגרף עם החץ הארוך ביותר בגוש שלהם, אלו מפלגות הציר הקובעות את הייחוס. לא במקרה אנו רואים את הבולטות של שלי יחימוביץ ו – 'העבודה' עם יאיר לפיד ו – 'יש עתיד' בגוש השמאל-מרכז ואת 'הבית היהודי' עם נפתלי בנט שהפך למפלגה הבולטת בגוש הימין.

חג שמח וכשר,

חגי

יום חמישי, 27 בדצמבר 2012

אימות ודאי

במסענו הנמשך בין הפונקציות הנסתרות של SAS הגענו הפעם לפונקציה של SAS עם השם הכי פחות קשור למה שהיא מבצעת - verify.

פונקציה זו מקבלת שני פרמטרים (או יותר, אבל נגיע לזה בהמשך) ומחזירה לנו את המקום של התו הראשון במחרוזת המועברת כפרמטר הראשון שאיננו התו או המחרוזת שהועברו כפרמטר השני.
למעשה, הרבה יותר מסובך להסביר מה הפונקציה הזו עושה מאשר להראות:
data examples;
     length str_before $20;
     input str_before;
datalines;
00000000000000456709
00000000097654090000
97654362000000000000
;
run;

data examples1;
     set examples;
     first_no_0_position=verify(str_before,'0');
first_no_976_position=verify(str_before,'976');
run;

proc print data=examples1;
run;

התוצאה המתקבלת היא:


שימו לב לרשומה השניה. התו הראשון שאיננו אפס הוא תו מספר עשר וזה אכן מה שקיבלנו בעמודה first_no_0_position. קצת מוזר הוא הערך 1 שקיבלנו בעמודה first_no_976_position אבל קריאה חוזרת של פעולת הפונקציה verify תסביר תוצאה משונה זו. התו הראשון במחרוזת שבעמודה str_before שבו לא מתחילה המחרוזת ‘976’ הוא אכן התו הראשון ולכן קיבלנו 1 כתשובה.

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

data examples2;
     set examples;
     substr_result=substr(str_before, verify(str_before,'0'));
run;

proc print data=examples2;
run;


 שימוש נפוץ בפונקציה זו הוא להוריד אפסים מובילים שמערכות ERP מאוד אוהבות להוסיף לערכים שונים כגון מק"טים, סעיפים חשבונאים וכו'. היתרון בפונקציה זו היא שאנחנו יכולים להיות בטוחים שרק האפסים המובילים יעלמו וכל יתר האפסים ישארו ללא פגע (תנסו לעשות שימוש בפונקציה compress כדי להוריד את האפסים המובילים בדוגמא לעיל ותקבלו תוכנית עם באג לוגי קשה במיוחד לגילוי...)

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

data examples3;
     set examples;
     first_no_0_4_9_position=verify(str_before,'0','4','9');
run;

proc print data=examples3;
run;


verify החזירה לנו את המקום של התו הראשון שהוא לא ‘0’ וגם לא ‘4’ וגם לא ‘9’.

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

חגי


יום שבת, 27 באוקטובר 2012

לאנליטיקה התחל כאן

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

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

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

השאלה היא, כמובן, מאיפה מתחילים? איך גורמים לארגון להתחיל לנוע ולעשות את הצעד הראשון בכיוון שילוב מקיף יותר של אנליטיקה בארגון. אחת האפשרויות עולה מפוסט מעניין ומומלץ של ליאו סאדובי העוסק בתהליך קבלת ההחלטות העיסקיות בארגון. הוא מונה חמש קטגוריות של אינפורמציה הנדרשות לתמיכה בקבלת החלטות:
1.       המצב הנוכחי של הארגון.
2.       יכולות הארגון.
3.       תחזית.
4.       מידת השונות או אי הוודאות במידע בשלושת הנקודות הקודמות.
5.       בקרה ומעקב.

לדעתו של ליאו הנקודה הרביעית - כימות של השונות ושל אי הודאות - היא החשובה ביותר למנהל בעת קבלת ההחלטות. האם תחזית המכירות לשנה הקרובה היא בין 105 מיליון ש"ח לבין 95 מיליון ש"ח או בין 50 מיליון ש"ח לבין 150 מיליון? האם כאשר אנחנו מציגים בכלי ה – BI שלנו שמשך שיחה ממוצעת למוקד שירות הלקוחות שלנו הוא 300 שניות הכוונה היא שמשך השיחות הוא בין 290 ל – 310 שניות או בין 100 ל – 500 שניות? האם משך השבתה עקב תקלה של קו הייצור שלנו הוא בין 60 ל – 80 דקות או בין 10 ו – 130 דקות. האם ב - 95% מהפעמים קו הייצור חזר לעבוד לאחר 70 דקות, לאחר 100 דקות או לאחר 30 דקות?

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

מערכת ה – SAS כוללת בתוכה מגוון עצום של יכולות שכאלו. רק לשם ההמחשה נזכיר את proc rank, את proc univariate ואת proc means המסוגלים, בצורה קלה ופשוטה, להפיק מגוון עצום של מידע על אי הוודאות והשונות המובנים בכל עולם נתונים. האינטגרציה של מערכת ה – SAS מבטיחה גישה פשוטה וקלה ליכולות אלו בעזרת כלי ניתוח גרפיים כגון Enterprise Guide ורכיבי ה – BI  של SAS כך שהעלות להתחיל לעשות בהם שימוש, הן מבחינת הזמן והן מבחינת המשאבים, היא נמוכה מאוד והתועלת - מיידית.

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

אפשרות נוספת לשילוב אנליטיקה בארגון היא לשם מתן הקשר – Context – לנתונים אבל על כך בפוסט עתידי.

חגי.

יום שבת, 15 בספטמבר 2012

שנה טובה

שלום,

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

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

מפתחי מערכת ה – SAS החליטו על שלוש דרכים לייצג נקודה בזמן – תאריך (date), שעה (time) ותאריך-שעה (datetime). תאריך מיוצג ע"י מספר הימים שעברו מה – 1/1/1960, זמן מיוצג ע"י מספר השניות שעברו מחצות הלילה ואילו תאריך-שעה מיוצג ע"י מספר השניות שעברו מה – 1/1/1960 בחצות הלילה. הטבלה הבאה מסכמת את הנושא:
סוג
יחידות
נקודת האפס
ערך לדוגמא
הזמן אותו הוא מייצג
תאריך
ימים
1/1/1960
19251
15/09/2012
שעה
שניות
00:00:00
74889
20:48:09
תאריך-שעה
שניות
1/1/1960:00:00:00
1663361341
15/09/2012 20:49:01

כמובן שאם אנחנו רוצים לכתוב בתוכנית ה – SAS שלנו תאריך מסוים לא נרוץ ללוח השנה ונתחיל לספור כמה ימים עברו מאז ה – 1/1/1960 ועד לתאריך אותו אנחנו רוצים להזין. SAS מאפשרת לנו לכתוב תאריך או שעה בצורה נוחה לבני אדם אבל כדי ש – SAS תצליח להבין לבד למה אנחנו מתכוונים אנחנו צריכים לכתוב אותו בצורה מסוימת:
סוג
פורמט כתיבה
לדוגמא
תאריך
"ddmmmyy"d
"15SEP2012"d (*), (**)
שעה
"hh:mm:ss"t
"21:12:54"t
תאריך-שעה
"ddmmmyy:hh:mm:ss"dt
"15SEP2012:21:12:54"dt
(*) מבחינת SAS אין הבדל בין אותיות גדולות לקטנות כך שגם "15sep2012"d יתקבל בברכה.
(**) במקרה של תאריכים אין הבדל בין מרכאות כפולות לבודדות ולכן גם '15sep2012'd הוא תקין לחלוטין.

כאמור, ההחלטה שערך מסוים מייצג יחידת זמן מסוימת היא שלנו בלבד. שום דבר לא מונע מאיתנו להחליט ש – 19251 מהטבלה שלמעלה דווקא מייצג שעה ביום ולא תאריך. במקרה שכזה מספר זה ייצג את השעה 05:20:51 (חמש, עשרים דקות וחמישים ואחת שניות לפנות בוקר).

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

SAS מאפשרת לנו גם להמיר בין שלושת דרכי ייצוג אלו בעזרת פונקציות ייעודיות:
מ -
ל -
נשתמש בפונקציה
לדוגמא
תאריך
תאריך-שעה
mydttm=dhms(mydt,0,0,0)
תאריך-שעה
תאריך
mydt=datepart(mydttm)
תאריך-שעה
שעה
mytm=timepart(mydttm)

מבחינת המחשב הכל פשוט מאוד. תאריכים הם מספרים ומחשבים טובים מאוד בעבודה עם מספרים. הבעיות נוצרות בחיבור שבין המחשב לבני האדם. מרבית האנשים יעדיפו לקבל 15/09/2012 על פני 19251 כתשובה לשאלה מה התאריך היום. למעשה, אנשים בארה"ב דווקא יעדיפו לקבל כתשובה 9/15/2012 ואילו אנשים ביפן יצפו ל - 2012/09/15.

בעיה נוספת נובעת מהמורכבות של לוח השנה עצמו. לדוגמא, אם יש לנו תאריך ביד ונרצה להוסיף לו שבוע פשוט נוסיף למספר המייצג את התאריך את הערך 7. אבל, מה אם נרצה להמיר את התאריך שלנו לאותו יום בחודש הקודם? מספר הימים שנצטרך להחסיר יכול להיות 31, 30, 29 או 28 תלוי בחודש ובשנה הספציפים.

כדי לפתור את הבעיה הראשונה SAS מכילה מגוון רחב מאוד של format-ים ו – informat-ים המאפשרים לנו להציג תאריך בצורה הנוחה ביותר. לכל אחד משלושת סוגי הייצוג של יחידות הזמן יש את ה – format-ים וה – informat-ים המתאימים לו.

הקטע הטריקי הוא שאנחנו בתור המשתמשים צריכים לוודא שבחרנו את ה – format המתאים ליחידת הזמן שלנו. כאמור, מבחינת SAS כל תאריך מכל סוג שהוא הוא רק מספר ואין לה שום דרך לדעת מה מספר זה מייצג בפועל. לדוגמא, אם החלטנו שהמספר 19251 מייצג תאריך אזי נציג אותו באחד מה – format-ים של התאריכים – למשל ddmmyy10. – ונקבל 15/09/2012. אנחנו יכולים באותה מידה להחליט שמספר זה מייצג שעה ביום ואם נפעיל עליו אחד מה – format-ים של שעה – למשל time. – נקבל 5:20:51:
data _null_;
      x=19251;
      put x ddmmyy10.;
      put x time.;
      put x datetime.;
run;

15/09/2012
 5:20:51
01JAN60:05:20:51
NOTE: DATA statement used (Total process time):
      real time           0.01 seconds
      cpu time            0.01 seconds


כדי לפתור את הבעיה השניה SAS מכילה גם מספר פונקציות שכל ייעודן הוא טיפול בתאריכים. שתי פונקציות שימושיות במיוחד הן intnx המשמשת להוספה או החסרה של יחידות זמן מתאריך ו – intck המאפשרת לחשב כמה יחידות זמן יש בין שני תאריכים. לפונקציות אלו מגוון רחב של פרמטרים ואפשרויות שימוש והטבלה הבאה מציגה רק מספר שימושים נפוצים. הקטע החשוב בפונקציות אלו הוא לבחור את יחידת הזמן המתאימה למה שאנחנו רוצים להשיג ולסוג התאריך שלנו (תאריך, שעה או תאריך-שעה).
מה רוצים לעשות
מה כותבים
מה מקבלים
להוסיף 15 ימים לתאריך
intnx('day', "15sep2012"d, 15)
"30sep2012"d
להוסיף 15 ימים לתאריך-שעה
intnx('dtday', "15sep2012:00:00:00"dt, 15) (*)
"30sep2012:00:00:00"dt
להוריד שבוע מתאריך
intnx('week', "15sep2012"d, -1)
"08sep2012"d
להוסיף 50 דקות לשעה
intnx('minute',"13:45:12"t, 50, 's')
"14:35"12"t
מה היום האחרון בחודש של תאריך
intnx('month', "15sep2012"d, 0, 'e')
"30sep2012"d
למצוא כמה ימים יש בין שני תאריכים
intck('day', "22aug2012"d, "15sep2012"d)
24
למצוא כמה שעות יש בין שני תאריך-שעה
intck('hour', "22aug2012:00:45:12"dt, "15sep2012:13:34:00"dt)
589
למצוא כמה רבעונים יש בין שני תאריך-שעה
intck('dtqtr', "22aug2012:00:45:12"dt, "15sep2010:13:34:00"dt) (*)
8- (**)
(*) שימו לב שאם מטפלים בתאריך-שעה יש להוסיף "dt" לפני יחידת הזמן ("dtday" או "dtqtr").
(**) קיבלנו ערך שלילי מכיוון שהתאריך-שעה הראשון הוא מאוחר יותר מתאריך-השעה השני.

מקווה שפוסט זה סייע מעט להסביר את נושא התאריכים ב – SAS ושנה טובה לכל בית ישראל מאנשי מיה מחשבים וממני.

חגי