המאמר הזה עודכן בתאריך 07.10.24 - בשעה 15:20


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

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

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

מטרה

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

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

נתונים: יבוא, ניקוי ושיטות עבודה 🔭

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

כך נראת הטבלה באתר מחיר למשתכן: טבלת ההרשמה- מחיר למשתכן אוקטובר 2024

בחרתי ב-Jupyter Lab לביצוע החקירה ופתחתי קובץ מחברת חדש.
עם פתיחת המחברת ייבאתי את הספריות הנדרשות ולאחר מכן הגדרתי את משתנה ה-DataFrame שלנו בשם shp שהוא הלכה למעשה ראשי התיבות של Subsidized House Program. הקוד נראה כך:

# Importing Necessary Libraries
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import cm

ומיד לאחר מכן ייבאתי את הקובץ בתור Data Frame :

shp = pd.read_csv('SubsidizedHousingProgram.csv')
print(shp.head(10))

שימו לב שבחרתי להדפיס את 10 השורות הראשונות, המטרה היא לקבל הצצה על מבנה הקובץ ועל הדרך בה Pandas מתמודדת איתו:

   Lottery Number    City  Number of Apartments  Number of Participants  \
0            2470    אילת                  72.0                    4247   
1            2471    אילת                  60.0                    4169   
2            2472    אילת                  48.0                    4086   
3            2473    אילת                  32.0                    4007   
4            2474    אילת                  29.0                    4030   
5            2491    אפרת                  25.0                     892   
6            2479  ביתשאן                  68.0                    2563   
7            2480  ביתשאן                  57.0                    2579   
8            2481  ביתשאן                  55.0                    2538   
9            2482  ביתשאן                  49.0                    2493   

         PpM  
0  12,206.00  
1  12,206.00  
2  12,206.00  
3  12,206.00  
4  12,206.00  
5  13,104.00  
6   7,305.48  
7   7,294.95  
8   7,305.48  
9   7,305.48  

ניקוי נתונים 🧹

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

shp_cities_df = pd.DataFrame(shp)

# Dictionary to change hebrew names into english
translation_dict = {
    'אילת': 'Eilat',
    'ביתשמש': 'Beith-Shemesh',
    'ביתשאן': 'Beith-Shean',
    'אפרת' : 'Efrat',
    'בניעי"ש': 'Bnei Ayish',
    'דימונה': 'Dimona',
    'טירתכרמל': 'Tirat Carmel',
    'יהוד': 'Yahud',
    'כפרסבא': 'Kfar Saba',
    'צורהדסה': 'Tzur Hadassa',
    'קרייתמלאכי': 'Kiryat Malakhi',
    'קרייתגת': 'Kiryat Gat',
    'ראשוןלציון': 'Rishon LeZiyon',
    'רכסים': 'Rechasim'
}

# Using for loop to change values in the column
for hebrew, english in translation_dict.items():
    shp_cities_df['City'] = shp_cities_df['City'].replace(hebrew, english)

# Printing new distinct values to make sure everything is alright. 
print(shp_cities_df['City'].unique())

#Writing Changes to source file
shp_cities_df.to_csv('SubsidizedHousingProgram.csv', index=False)

פלט:

['Eilat' 'Efrat' 'Beith-Shean' 'Beith-Shemesh' 'Bnei Ayish' 'Dimona'
 'Tirat Carmel' 'Yahud' 'Kfar Saba' 'Tzur Hadassa' 'Kiryat Gat'
 'Kiryat Malakhi' 'Rishon LeZiyon' 'Rechasim']

שימו לב שביצעתי גם כתיבה של הנתונים החדשים לקובץ.

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

בשביל לפתור את הסוגיה אייצר פונקציה שתדע להמיר את כל המספרים בעמודות PpM ו-Number of Apartments מ-float ל- int וגם תדע להיפטר ממפריד האלפים המעיק הזה. שימו לב שגם כאן כתבתי את כל השינויים לקובץ:

# Function to remove decimals from specific columns
def remove_decimals(df, columns):
    for column in columns:
        # Remove commas and convert to float before converting to int
        df[column] = df[column].apply(lambda x: int(float(str(x).replace(',', ''))) if pd.notna(x) else x)
    return df

# Read CSV file
shp = pd.read_csv('SubsidizedHousingProgram.csv')

# Remove decimals from specified columns
columns_to_modify = ['PpM', 'Number of Apartments']
shp = remove_decimals(shp, columns_to_modify)

# Print the first 10 rows to check the changes
print(shp.head(10))
shp.to_csv('SubsidizedHousingProgram.csv', index=False)

פלט לבדיקה (10 שורות ראשונות בלבד):

   Lottery Number         City  Number of Apartments  Number of Participants  \
0            2470        Eilat                    72                    4247   
1            2471        Eilat                    60                    4169   
2            2472        Eilat                    48                    4086   
3            2473        Eilat                    32                    4007   
4            2474        Eilat                    29                    4030   
5            2491        Efrat                    25                     892   
6            2479  Beith-Shean                    68                    2563   
7            2480  Beith-Shean                    57                    2579   
8            2481  Beith-Shean                    55                    2538   
9            2482  Beith-Shean                    49                    2493   

     PpM  
0  12206  
1  12206  
2  12206  
3  12206  
4  12206  
5  13104  
6   7305  
7   7294  
8   7305  
9   7305  

ועכשיו סוף סוף הדאטהסט שלנו נראה נורמלי ואפשר להתחיל 🎉

חקירה 🔬

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

shp['Winning Probability'] = shp['Number of Apartments'] / shp['Number of Participants']

# Find the lottery with the highest winning probability
highest_probability_row = shp.loc[shp['Winning Probability'].idxmax()]

print("\nLottery with the highest winning probability:")
print(highest_probability_row)

תוצאה:

Lottery with the highest winning probability:
Lottery Number                     2446
City                      Beith-Shemesh
Number of Apartments                422
Number of Participants            11105
PpM                               14644
Winning Probability            0.038001
Name: 11, dtype: object

הגרלה מספר 2446 היא בעלת סיכויי הזכיה הרבים ביותר והיא עומדת על 3.8%.

מה הסיכוי לזכות בהגרלה בכל עיר ועיר?

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

הטיית הכפילות

כל זמן שאדם מסויים יכול להירשם לכל ההגרלות שפתוחות באותה עיר הוא יעדיף להירשם לכל ההגרלות האפשריות. במחיר למשתכן (או בדירה בהנחה) זוכה יכול להירשם לעד 3 ערים בלבד בכל הגרלה.
ולכן עשויה להתרחש הטיה המבוססת על כפילות הנרשמים בעת החישוב, אסביר:
נניח ובעיר מסויימת יש 5 הגרלות של 25 דירות בכל אחת, סך הכל 125 דירות. ונניח ובכל הגרלה יש 500 נרשמים.
הסיכוי לזכות בכל הגרלה עומד על כמות הדירות לחלק בכמות המשתתפים שאת זה למעשה נחשב בתור 25/500=0.05 (5%).
ההטייה אומרת שבשביל לחשב את הסיכויים שלי לזכות בעיר מסויימת אני אקח את סכום הדירות לחלק בסכום המשתתפים:
זאת אומרת: 125/2500 וזה יוצא שווה ל-5%- אך נתון זה שגוי!
ברגע שאני יכול להירשם לכל ההגרלות באותה עיר, אזי שאם זכיתי בהגרלה אחת נגרעתי באופן אוטומטי מהאחרות, מה שאומר שיש קבוצה של 500 אנשים בסך הכל שחוזרים על עצמם בכל ההגרלות מחדש.
ולכן, על מנת לחשב את סיכויי הזכיה בכל עיר אני צריך לחבר את כמות הדירות שמוצעות להגרלה באותה עיר ולחלק בכמות המשתתפים הגבוה ביותר שיש באחת ההגרלות:
125/500=0.25 - קרי 25% זכיה.
זה גם ניכר ברשימת ההגרלות, בערים בהן מתקיימות מספר הגרלות במקביל אנחנו רואים שכמות הנרשמים זהה יחסית (הפער עומד על פחות מ-1%).

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

# Group by 'City' to calculate the total number of apartments in each city
total_apartments_per_city = shp.groupby('City')['Number of Apartments'].sum()

# Group by 'City' to find the maximum number of participants in each city
max_participants_per_city = shp.groupby('City')['Number of Participants'].max()

# Calculate the probability of winning in each city by dividing the total apartments by the maximum number of participants
city_winning_probability = total_apartments_per_city / max_participants_per_city

city_winning_probability.sort_values(ascending=False).head(5)

אז מי הן חמשת הערים בעלות סיכויי הזכיה הטובים ביותר?

City
Beith-Shemesh    0.194075
Beith-Shean      0.106630
Bnei Ayish       0.085479
Eilat            0.056746
Tzur Hadassa     0.036718
dtype: float64

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

print(city_winning_probability.mean())
#output:
0.046354831401587956

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

# Sorting city_winning_probability in descending order
city_winning_probability1 = city_winning_probability.sort_values(ascending=False)

# Plotting the sorted data
plt.figure(figsize=(10, 6))
plt.bar(city_winning_probability1.index, city_winning_probability1, color='skyblue', label='City Winning Probability')

# adding average line
plt.axhline(average_winning_probability, color='darkred', linestyle='--', linewidth=2,
             label=f'Average Winning Probability ({average_winning_probability:.3f})')

plt.title('Winning Probability by Each City', fontsize=16, fontweight='bold')
plt.xlabel('City', fontsize=12)
plt.ylabel('Winning Probability', fontsize=12)
plt.xticks(rotation=45, fontsize=10)
plt.grid(axis='y', linestyle='--', alpha=0.7, color='gray')

plt.legend()

plt.tight_layout()
plt.show()

סיכויי זכיה בכל עיר- מחיר למשתכן אוקטובר 2024

התפלגות הנרשמים

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

# Calculating standard deviation of winning probability
std_dev_winning_probability = city_winning_probability.std()

plt.figure(figsize=(10, 6))
plt.hist(city_winning_probability, bins=10, color='skyblue', edgecolor='black', alpha=0.7)

# Adding average line
plt.axvline(average_winning_probability, color='darkred', linestyle='--', linewidth=2, label=f'Average ({average_winning_probability:.3f})')

# Adding lines for 1 standard deviation above and below the average
plt.axvline(average_winning_probability + std_dev_winning_probability, color='orange', linestyle='-.', linewidth=1.5, label=f'1 Std Dev Above ({average_winning_probability + std_dev_winning_probability:.3f})')
plt.axvline(average_winning_probability - std_dev_winning_probability, color='green', linestyle='-.', linewidth=1.5, label=f'1 Std Dev Below ({average_winning_probability - std_dev_winning_probability:.3f})')

plt.title('Distribution of Winning Probability', fontsize=16, fontweight='bold')
plt.xlabel('Winning Probability', fontsize=12)
plt.ylabel('Frequency', fontsize=12)
plt.grid(axis='y', linestyle='--', alpha=0.7, color='gray')

plt.legend()

plt.tight_layout()
plt.show()

התפלגות סכויי הזכיה בכל הגרלה- מחיר למשתכן אוקטובר 2024

האם אנשים מעדיפים להירשם להגלות בהם מחירי הדירות זולים יותר?

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

average_ppm_per_city = shp.groupby('City')['PpM'].mean()
print(average_ppm_per_city)

#output:
City
Beith-Shean        7302.800000
Beith-Shemesh     14674.333333
Bnei Ayish        14756.250000
Dimona             7722.000000
Efrat             13104.000000
Eilat             12206.000000
Kfar Saba         20202.750000
Kiryat Gat        13808.000000
Kiryat Malakhi    11538.000000
Rechasim          12645.000000
Rishon LeZiyon    20384.000000
Tirat Carmel      13919.000000
Tzur Hadassa      16204.000000
Yahud             22901.000000
Name: PpM, dtype: float64

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

from scipy.stats import linregress

# Ensure synchronization by resetting the index and creating a unified DataFrame
combined_df = pd.DataFrame({
    'City': city_winning_probability.index,
    'Price Per Meter': average_ppm_per_city,
    'Winning Probability': city_winning_probability
}).reset_index(drop=True)

# Calculate linear regression using linregress
slope, intercept, r_value, p_value, std_err = linregress(combined_df['Price Per Meter'], combined_df['Winning Probability'])

# Plotting
plt.figure(figsize=(10, 6))

# Scatter plot with text labels for each city
plt.scatter(combined_df['Price Per Meter'], combined_df['Winning Probability'], color='teal', alpha=0.7, edgecolor='black')
for i in range(len(combined_df)):
    plt.text(combined_df['Price Per Meter'][i], combined_df['Winning Probability'][i], combined_df['City'][i], fontsize=9, ha='left', va='bottom')

# Calculate regression line
regression_line = slope * combined_df['Price Per Meter'] + intercept

# Plot regression line
plt.plot(combined_df['Price Per Meter'], regression_line, color='red', linestyle='-', linewidth=2, label=f'Regression Line (R²={r_value**2:.3f})')

# Chart details
plt.title('Winning Probability vs Price Per Meter (PPM)', fontsize=16, fontweight='bold')
plt.xlabel('Price Per Meter (PPM)', fontsize=12)
plt.ylabel('Winning Probability', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.7, color='gray')
plt.legend()

# Display the graph
plt.tight_layout()
plt.show()

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

האם ישנה קורלציה?

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

print(shp['Number of Participants'].corr(shp['PpM']))

#Output:
0.7831414815484257

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

האם ישנו קשר בין גודל ההגרלה לכמות הנרשמים?

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

# Calculate the correlation between 'Winning Probability' and 'Number of Apartments'
# Assuming 'Winning Probability' has already been calculated and exists in the DataFrame
shp['Winning Probability'] = shp['Number of Apartments'] / shp['Number of Participants']

# Calculate the correlation between 'Winning Probability' and 'Number of Apartments'
correlation_wp_apartments = shp['Winning Probability'].corr(shp['Number of Apartments'])

correlation_wp_apartments

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

סיכום ומסקנות

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

  1. הנתונים מעודכנים נכון לתאריך 07/10/2024 - ההגרלות עצמן יסגרו רק בעוד חודש כך שהרבה יכול להשתנות.
  2. לא התייחסתי להגרלות המיועדות לקהל החרדי.
  3. כמו כן, אין גם התייחסות לנושא של משרתי מילואים פעילים לה יש הגרלות נוספות ומלאי ייעודי של דירות.

מה למדתי מזה?

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

אתגרים שהתמודדתי איתם

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

דברים שהייתי רוצה להוסיף להבא

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

מילות סיכום

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

מוזמנים להגיב לי במייל: dolev [@] ravid . email