Showing posts with label Avaid malka. Show all posts
Showing posts with label Avaid malka. Show all posts

Saturday, March 13, 2010

קרוקס - ניתוח שיווקי בסיסי

aviad malka

קרוקס - אביעד מלכה


חברת קרוקס מעוניינת למנף את ההצלחה של קו סנדלי החוף ("Beach") הייחודי שפיתחה, על ידי מתיחת קו המוצרים לפלחי שוק חדשים כפכפים (flip-flop), מגפיים וציוד נלווה (Gear) תוך כדי שיווק מבודל לשווקים שונים: לבעלי מקצוע (טבחים, רופאים, אחיות   קו מוצרים Crocsrx, לילדים קו מוצרים Kids בשיתוף דיסני, סטודנטים סדרה ייחודית של נעליים עם לוגו מותאם אישית לכל מכללה בארה"ב).

הדילמה: כיצד לתכנן תוכנית שיווקית לפלחי שוק שונים ולשווקים מבודלים מבלי לגרום לקניבליזציה של קו המוצרים הקיים וללא פגיעה בפלחי השוק הקיימים של החברה?
אביעד מלכה 
פירוט הדילמה:
קרוקס בע"מ הינה חברה אמריקנית שנוסדה ביולי 2002 בבולדר, קולורדו, על מנת לשווק נעל שפותחה ויוצרה על ידי פואום קריישינס בע"מ. במקור, נעל זו פותחה כדי לשמש בטיולים, בעקבות העובדה שאינה מחליקה בקלות ושסולייתה אינה משאירה סימנים. קרוקס הציגו את המודל הראשון שלהם, ה"ביצ'" (חוף ים), בנובמבר 2002 בתערוכת סירות. למרות מסע השיווק הקטן שלהם, הנעלים הפכו לפופולאריות מאוד בארצות הברית ובישראל בעיקר בזכות העיצוב המיוחד שלהן ודו"חות רפואיים המעידים על יתרונותיהן.
  אביעד מלכה
חברת קרוקס מראה סימני צמיחה מרשימים,של 320% ב-2006 ביחס ל-2005 ומחזור מכירות של כחצי מיליארד דולר, על מנת למנף את הצלחת הונפקה החברה בנאסד"ק החברה בראשית 2006 תחת הסימול CROX, ערך החברה המשוערך היינו כ- 1.4 מיליארד דולר, ומציב את החברה בין שני מותגי אופנה ותיקים ומונפקים Skechers ו- Timberland .
  אביעד מלכה
החשש של משקיעים בבורסה הוא האם בכוחות חברת קרוקס ליישר את קו עם חברות שהוזכרו, על מנת שזה יקרא על חברת קרוקס להעלות את קצב מכירותיה ל-1-1.5 מיליארד דולר לשנה בשנים הקרובות. משימה זו לאור טווח המחירים של תמהיל המוצרים הנוכחי שנע בטווח מחירים של 20$-60$ נראה כבלתי אפשרי ולכן על מנת ליישר קו עם ציפיות השוק ואנליסטים כלכליים, על החברה למתוח את קו המוצרים בצורה מקסימאלית ולבנות תמהיל מוצרים רחב ועמוק.
  אביעד מלכה
הדילמה שבחרתי היינה דילמה שפוקדת אנליסטים כלכליים ומשקיעים רבים המתעניינים בחברה, וכן את קברניטי החברה אשר קשובים לרחשי וציפיות השוק: האם באפשרות חברת קרוקס למנף את עצמה, ולבנות תמהיל מוצרים רחב ועמוק או להישאר חברה של מוצר אחד שיעדך עם הזמן ובסופו ימות?
 


חוברת הדרכה - Eureqa


Eureqa
The robot scientist



חוברת הדרכה
                                                  



כתב: אביעד מלכה
               


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

מקור נתונים: Angle Vs. Time , 700 דגימות של מטוטלת




 



 

שלב א': ייבוא נתונים ל-Eureqa (Enter Data)

התוכנה תומכת בפורמט CSV ו-TXT, כמו כן ניתן להעתיק נתונים מתוך אקסל או ממקור נתונים טבלאי אחר ע"י  הדבקה לתוך התוכנה או בעזרת אפשרות של יבוא (file -> import data)
מבנה הממשק Data Entry :
מטריצה דו מימדית\ דמוי ממשק אקסלי.
·       כל עמודה מייצגת ערך נומרי של משתנה במקור נתונים
·       תיאור משתנה - שורה ראשונה "desc" מאפשרת להזין תיאור לעמודה / ערכי משתנה - time,angle
·       סימון משתנה - שורה שנייה "var" מאפשרת להזין סימן לכל משתנה ומשתנה t,x
·       לחיצה כפולה על תא מאפשרת עדכון/עריכה של ערך תא  (ערכים נומריים)

איור 1: מסך קליטת נתונים



שלב ב': "החלקת" נתונים Data Smoothing  (Preview Data)

אפשרות זו הינה אופציונלית, Data Smooth ("החלקה") ,היינה שיטה סטאטיסטית למציאת דפוסים patterns בגרף תוך כדי הקטנת רעשים או העלמתן לחלוטין. החלקת נתונים יכולה לשפר בצורה ניכרת את מהירות חיפוש המשוואות המתארות את המכאניזים של הנתונים.
איור 2: מסך החלקת נתונים: גרף לפני החלקה
באיור 2 אנו רואים גרף של זוית על ציר זמן, כל נק' בדידה מייצגת דגימה/ תצפית
החלקת משתנה
·       נבחר בתא  Enable Smooth במשתנה בלתי תלוי שנרצה  "להחליק", בתצוגה מקדימה נראה כל תצפית ותצפית. "Smooth vs." בדוגמא שלנו אבחר להחליק v כנגד t
·       לאחר לחיצה על enable smooth התוכנה תבצע את ההחלקה

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

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

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

שלב ג': הגדרת פרמטרים (Pick modeling task)

בשלב זה נגדיר את מאפייני המידול, במקרה שלנו ננסה למדל את הקשר שבין מהירות לזמן עם מאפייני ברירת מחדל. (error metric: MAE)
איור 6: מסך הגדרות
·       נגדיר Syntax שיבטא את הקשר בין משתנים במודל לדוגמא: v = f(t)  כמו כן, ניתן להגדיר פונקציות מורכבת יותר.
·       Fitness metric אומדן טעויות, אפשרות זו מאפשרת לבחור Error Metric / שיטות מדידה שונות. לרשימה המפורטת, ראה נספח א'.
·       Order data points by הגדרת מיון נתונים בתצוגה.
·       Weight errors by הגדרת  משקל לכל data point בהתאם ל- fitness metric
·       Using building-blocks הגדרת פונק' ואופרטורים לשימוש התוכנה בפונק' שתתאר את הקשר בין המשתנים השונים. הגבלת פונקואופרטורים לשימוש מאיצה זמן ניתוח הנתונים, ראה נספח ב'.
·       Use the following servers באפשרות התוכנה לנצל משאבים של מס' מחשבים, אפשרות זו מאיצה את הפעילות החישובית

שלב ד': חיפוש משוואה (Start/Stop Search)

הסכנה בניתוח של נתונים היא הסיכוי הקיים שהתוצאה שתתקבל תהיה מקרית. לכן תהליך מדגם הנתונים מחולק למספר חלקים: אימון (Training) תיקוף (Validation) ובדיקה (Testing). באמצעות שני הראשונים מפתחים את המודל והמדגם השלישי משמש לתיקוף סופי - חלק שמאל של המסך. חלק ימני של המסך מציג אינדיקטורים (KPI) של Performance  המצביעים על זמן ביצוע כמות חישובים וכו'.
 . http://ccsl.mae.cornell.edu/sites/default/files/images/eureqa_screenshot_progress.img_assist_custom-786x661.png
איור 7: מסך KPI
·       לחיצה על כפתור Start תריץ את תהליך חיפוש המשוואה שממדלת את מקור הנתונים
·       מסך השמאלי מציג איניקטורים שונים (מס' מחשבים מחוברים, מעבד, מהירות ביצוע ועוד)
·       צד ימין של המסךגרף של ה- Fitness metric הטוב ביותר שהתוכנה מצאה מעת הרצת התוכנה.

שלב ה': תוצאה (solution result)

3
רמת דיוק ומורכבות

1
2
איור 8: ממשק תוצאתי
·       לאחר הרצת החיפוש, התוכנה תתחיל למדל את הנתונים, מסך 1, נקבל את המשוואות שהתוכנה מצאה, המשוואה העליונה ביותר היא בעלת רמת הדיוק accuracy ("Error") ומורכבות[1] complexity ("Size") הגבוה ביותר. לחיצה כפולה על המשוואה, נקבל את הגרף של המשוואה, מסך3 מציג את מס' שגיאות, ניתן לשפר את התוצאות ע"י שימוש ב-Error metric שונה.
·       מסך 2, מציג גרפים של Training , Validation

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

משוואה


הרכיב במשוואה המתאר את האמפליטודה (משרעת) , הגל היינו סינופי, פונקציה המתארת גל סינוסי היא:




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

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


רכיב זה במשוואה את הדעיכה של המטוטלת, חלק זה של המשוואה מתאר מצב של ריסון תת קריטי  אזי האמפליטודה דועכת אקספוננציאלית בזמן (Wikipedia - exp)


דעיכה נובעת:
                                            רמת דעיכהt
                            0 0.34-0.34* 1
                            0.34- 0.34-0.34* 2
                            0.68- 0.34-0.34* 3



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

נספח א': Error matric

Mean Absolute Error (MAE): minimizes the mean of the absolute value of residual errors, mean(abs(error)). Assumes noise follows a double exponential distribution.
Mean Squared Error (MSE): minimizes the mean of the squared residual errors, mean(error^2). Assumes noise follows a normal distribution.
Root Mean Squared Error (RMSE): minimizes the square root of the MSE, sqrt(mean(error^2)). Assumes noise follows normal distribution.
Mean Logarithmic Error (MLE): minimizes the mean of the natural log of the residual errors, mean(log(1 + error)). Assumes noise follows a heavy-tailed distribution with large outliers.
Exponential Mean Logarithmic Error (EMLE): minimizes the exponential of the MLE, exp(mean(log(1 + error))). Assumes noise follows a heavy-tailed distribution with large outliers.
Correlation Coefficient (R): maximizes the correlation coefficient, normalized covariance. Scale and offset invariant, models the "shape" of the data.
Minimize the Difference: minimizes the signed difference between left and right hand sides of the target formula. Use to create custom fitness functions, for example "(y - f(x))^4 = 0", would minimize the 4th-power error.
Akaike Information Criterion (AIC): minimizes natural log of the MSE and number of paramters (see wikipedia). Entropy measure, use to explicitly minimize the number of free parameters of the model.
Bayesian Information Criterion (BIC): minimizes natural log of the MSE and number of paramters (see wikipedia). Entropy measure, use to explicitly minimize the number of free parameters of the model.
Maximum Error (Maximum): minimizes the single highest error of the residuals. Use to minimize the worst case error or to force algorithm to model a small residual feature.
Median Error (Median): minimizes the single median error of the residuals. Invariant to outliers, use to minimize the "typical case" error.
Implicit Derivative Error (Implicit): minimizes the difference between implicit derivatives derived from a model and estimated from the data set. Use to search for invariant relationships, e.g. "f(x, y) = 0", where "x" and "y" are continuous and in ordered by an indepedent variable such as time.


נספח ב': פונק' זמינות

add: a + b
subtract: a - b
multiply: a*b
divide: a/b
power: a^b
square root: sqrt(x) = x^0.5
exponential: exp(x) = e^x
logarithm: log(x) = natural logarithm of x
sine: sin(x)
cosine: cos(x)
tangent: tan(x)
absolute value: abs(x) = |x|
gamma function: gamma(x) = pow((x/e)*sqrt(x*sinh(1/x)), x)*sqrt(2pi/x)
gaussian function: gauss(x) = exp(-x^2)
logistic function: logistic(x) = 1/(1+ exp(-x))
hill function: hill2(x) = x^2/(1 + x^2)
step function: if x > 0: step(x) = 1, otherwise: step(x) = 0
sign function: if x < 0: sign(x) = -1, if x > 0: sign(x) = +1, otherwise: sign(x) = 0
minimum: if a < b: min(a, b) = a, otherwise: min(a,b) = b
maximum: if a < b: max(a, b) = b, otherwise: max(a,b) = a






[1] מורכבות - מס' ביטויים המתארים את המודל