יום רביעי, 23 במאי 2012

תמונות מכנס האיגוד הישראלי לסטטיסטיקה

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

בתמונה: מימין לשמאל פרופ' לארי בראון מאוניברסיטת פנסילבניה, פרופ'  יואב בנימיני מאונ' תל אביב ואבישי ט' מן הטכניון.

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

"חושבים אחרת - מבוא ידידותי לסטטיסטיקה"

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

בתמונה: פרופ' משה פולק מעניק עותק מספרו "חושבים אחרת" לזוכה ניר שרון.

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


.

יום חמישי, 17 במאי 2012

הגדרת פרמטר דינמי לפי הרשאות משתמש

שלום לכולם,

לאחרונה נשאלתי שאלה מעניינת... כיצד ניתן לבנות פרמטר ל- stored process שמציג ערכים דינמיים אבל בכפוף להרשאות של המשתמש. לדוגמה: משתמש א' יראה ברשימת הערכים של הפרמטר ערכים מסויימים ומשתמש ב' יראה באותה הרשימה ערכים אחרים.

ראשית, חשוב לציין שהבלוג הזה מתייחס אך ורק לערכים דינמיים עבור פרמטר של Stored Process. עבור Row Level Permissions באופן כללי יש לפעול לפי ההוראות באתר של SAS בכתובת: http://support.sas.com/documentation/cdl/en/birlpug/64020/HTML/default/viewer.htm#titlepage.htm

ובכן... לגבי השאלה. הפתרון הוא למעשה די פשוט. להלן הרעיון:

1. בנה טבלה עם ערכים חוקיים לכל משתמש
2. בנה view מעלה הטבלה שמציג לכל משתמש רק את הערכים החוקיים עבורו
3. רשום את ה- view או את הטבלה ב- SAS Metadata Server
4. הגדר Stored Process עם פרמטר דינמי שהערכים הדינמיים מגיעים מה- view של שלב 2
5. קשר את ה- Stored Process ל- Information Map
וזהו!

כל החוכמה היא לבנות את ה- view כך שיציג את הערכים החוקיים של המשתמש. להלן קוד לדוגמה:


כעת, יש לבנות Stored Process ולהגדיר לו פרמטר חדש מסוג מלל דינמי ולהפנות ל- VW_USERTREE

כאשר מוסיפים את ה- STP ל- Information Map ומפעילים ניתן לראות שהמשתמש isreyg רואה רק את הערך north ברשימת הערכים לפרמטר:



אייל גונן
מיה מחשבים

הכנס השנתי של האיגוד הישראלי לסטטיסטיקה



אוניברסיטת תל אביב 22.5.2012





בחסות מיה מחשבים


עלות הכנס: 220 ש"ח. המחיר כולל ארוחת צהריים.
לחברי האיגוד: 180 ש"ח
לסטודנטים: 100 ש"ח בהצגת תעודת סטודנט

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

מיקום המליאה: אולם דן-דויד 003 (מס' 17 במפה)
חדר שני: אולם הולצבלט במסדרון מדעים מדויקים (מס' 24 במפה)

ועדת הכנס: סהרון רוסט (יו"ר), משה פולק, אמיל בשקנסקי
כל ההרצאות מלבד הרצאתו של פרופ' לארי בראון יהיו בעברית
תכנית הכנס- כאן.

יום ראשון, 6 במאי 2012

שלום לכולם,


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


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


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


hdate
hebdate


הראשון מציג את התאריך הלועזי בעברית ואילו השני מציג את התאריך הלועזי לפי לוח השנה העברי.


דוגמה:



הרעיון המרכזי של הבלוג הזה עלה בראשי לאחר שקראתי את המאמר הבא מכנס SAS האחרון שנערך באולרנדו ארה"ב: http://support.sas.com/resources/papers/proceedings12/040-2012.pdf

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

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



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



















רעיונות נוספים לשימוש ולהרחבה יתקבלו בשמחה!




אייל גונן
מיה מחשבים




הקוד
אזהרה: הקוד לא נבדק בצורה יסודית ולכן אין להשתמש בו כפי שהוא בסביבת ייצור ללא בדיקות נוספות



/* first run code from http://www.sascommunity.org/mwiki/images/d/da/Hebrew_islamic_dates.sas */

data jmonths;
do year = 2000 to 2100;
do i = 1 to 12;
yi = ifn(7<=i<=12,1,0);
begin = hebrew_to_sd(year+3760+yi,i,1);
end = begin + hebrew_month_days(year+3760+yi,i) - 1;
season = ifn(i+6<=12,i+6,mod(i+6,13)+1);
output;
end;
end;
keep begin end season;
format begin end ddmmyy10.;
run;

options intervalds=(JewishMonths=jmonths);

/* sample usage  - find the next rosh hodesh */
data _null_;
njm = intnx("JewishMonths",today(),1);
put njm= ddmmyy10.;
run;

/* sample usage  - how many jewish months till the end of the year */
data _null_;
njm = intck("JewishMonths",today(),mdy(12,31,year(today())));
put njm=;
run;

יום ראשון, 22 באפריל 2012

SGF2012

היום בשעה 23:00 שעון ישראל (4 אחה"צ זמן מקומי) יפתח רשמית כנס משתמשי SAS העולמי – SAS Global Forum - במלון Walt Disney World Swan and Dolphin  שבפלורידה. מצגת הפתיחה החגיגית תערך שלוש שעות מאוחר יותר והיא תשודר חי באינטרנט.

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

מצגת ה – Technology Connection בה מוצגים כל הדברים החדשים והמגניבים (כן, השתמשתי בשם התואר הזה שוב!) תערך מחר בשעה 15:00 שעון ישראל (8:00 בבוקר זמן מקומי), תשודר באופן מלא באינטרנט והיא בהחלט מומלצת. לראשונה גם ישודרו באופן מלא וחי תחת הכותרת שוברת השיניים “SAS Tech Talk Live” מספר מצגות של אנשי ה – R & D של SAS שידגימו לקהל את מרכולתם ויענו על שאלות.

חגי

יום שני, 16 באפריל 2012

הניסיון ושיברו

נתחיל בחידה שמסתובבת בזמן האחרון באינטרנט (אני נתקלתי בה פה):
8809=6
7111=0
2171=0
6666=4
1111=0
3213=0
7662=2
9313=1
0000=4
2222=0
3333=0
5555=0
8193=3
8096=5
1012=1
7777=0
9999=4
7756=1
6855=3
9881=5
5531=0
2581=?

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

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

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

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

במקרים שכאלו אנחנו צריכים להיות מספיק מנוסים כדי לדעת לשים את כל הניסיון בצד ולנסות דרכים אחרות, מטורפות ומופרכות ככל שיהיו. אני מניח שהניסיון של מרבית הקוראים עם חידות שכאלו הוביל אתכם לגשת אליה מכיוון מתמטי – מציאת קשרים חישוביים בין המספר שבצד ימין למספר שבצד שמאל. בדיקה של קשרים מתמטים פשוטים כגון סכום ספרות, מכפלת ספרות וכו' כמו גם קשרים מתקדמים יותר כגון סדרת פיבונצ'י ודומיהם לא יעזרו לנו הפעם. הפתרון הוא פשוט מאוד אולם הקושי הוא שהוא לא מתמטי אלא גרפי – המספר בצד שמאל הוא סכום של מספר האזורים הסגורים בספרות שבצד ימין. בספרות 4, 6, 9 ו – 0 יש אזור סגור אחד ובספרה 8 יש שניים. התשובה, אם כן, היא 2.

עבור בעיית הנטישה שלנו אולי דווקא שימוש בעולם החדש של Text Analytics לניתוח תמלול של השיחות של לקוחות עם מוקד השרות או לעיבוד התגובות של המשתמש בדף ה – Facebook של הארגון יעזור לנו לזהות מידע נוסף שניתן לשלב בפנל ושישפר לנו את זיהוי הנוטשים? אולי בשוק ההיפר-תחרותי של היום פשוט לא ניתן לחזות מראש מי ינטוש כי מדובר בהחלטות של רגע ללא בסיס רציונלי וכלכלי מאחוריהן ולכן במקום להשקיע את כל הזמן היקר שלנו בבניית מודל נטישה עדיף לנו לבנות מודל שווי לקוח מתחוכם יותר כך שברגע שאנחנו מזהים שלקוח מעוניין לנטוש אותנו נוכל מיד לדעת כמה שווה לארגון להשקיע בשימור שלו או שבכלל עדיף שהלקוח יעזוב אותנו ויעבור לגרום הפסדים למתחרים שלנו?

חגי