


Kod: Markera allt
import numpy as np
import pandas as pd
# Möjliga utfall för varje match med korrekt hantering av övertid
# [Hemmalag vinner ordinarie tid, Bortalag vinner ordinarie tid,
# Hemmalag vinner i övertid, Bortalag vinner i övertid]
# Sannolikheter enligt given bedömning, med övertid uppdelad i två utfall
p_leksand_match = [0.20, 0.55, 0.125, 0.125] # [Leksand vinst, Frölunda vinst, Leksand OT-vinst, Frölunda OT-vinst]
p_orebro_match = [0.25, 0.50, 0.125, 0.125] # [Örebro vinst, Luleå vinst, Örebro OT-vinst, Luleå OT-vinst]
p_malmo_match = [0.35, 0.45, 0.10, 0.10] # [Malmö vinst, Rögle vinst, Malmö OT-vinst, Rögle OT-vinst]
# Nuvarande poäng
leksand_points = 71
orebro_points = 70
malmo_points = 69
# Poäng för varje utfall
# [Hemmalag vinner ordinarie tid, Bortalag vinner ordinarie tid,
# Hemmalag vinner i övertid, Bortalag vinner i övertid]
points_home = [3, 0, 2, 1]
points_away = [0, 3, 1, 2]
# Simulera alla möjliga utfall
results = []
for leksand_outcome in range(4):
for orebro_outcome in range(4):
for malmo_outcome in range(4):
# Beräkna slutpoäng för varje lag
final_leksand = leksand_points + points_home[leksand_outcome] # Leksand är hemmalag
final_orebro = orebro_points + points_home[orebro_outcome] # Örebro är hemmalag
final_malmo = malmo_points + points_home[malmo_outcome] # Malmö är hemmalag
# Sortera lagen efter poäng
teams = ["Leksand", "Örebro", "Malmö"]
points = [final_leksand, final_orebro, final_malmo]
# Sortera i fallande ordning
sorted_indices = np.argsort(points)[::-1]
sorted_teams = [teams[i] for i in sorted_indices]
sorted_points = [points[i] for i in sorted_indices]
# Hitta Leksands position (0-indexerad)
leksand_position = sorted_teams.index("Leksand")
# Beräkna sannolikhet för detta utfall
probability = (p_leksand_match[leksand_outcome] *
p_orebro_match[orebro_outcome] *
p_malmo_match[malmo_outcome])
# Spara resultatet
results.append({
"Leksand outcome": ["Win", "Loss", "OT Win", "OT Loss"][leksand_outcome],
"Örebro outcome": ["Win", "Loss", "OT Win", "OT Loss"][orebro_outcome],
"Malmö outcome": ["Win", "Loss", "OT Win", "OT Loss"][malmo_outcome],
"Leksand final": final_leksand,
"Örebro final": final_orebro,
"Malmö final": final_malmo,
"Leksand position": leksand_position + 9, # Konvertera till faktisk position (9, 10, 11)
"Probability": probability
})
# Konvertera till DataFrame för enklare analys
df = pd.DataFrame(results)
# Sannolikhet att Leksand hamnar på 11:e plats
p_leksand_11th = df[df["Leksand position"] == 11]["Probability"].sum()
print(f"Sannolikhet att Leksand hamnar på 11:e plats: {p_leksand_11th:.1%}")
# Visa de scenarier där Leksand hamnar på 11:e plats
print("\nScenarier där Leksand hamnar på 11:e plats:")
leksand_11th_scenarios = df[df["Leksand position"] == 11].sort_values("Probability", ascending=False)
print(leksand_11th_scenarios[["Leksand outcome", "Örebro outcome", "Malmö outcome",
"Leksand final", "Örebro final", "Malmö final", "Probability"]])
# Sannolikheter för alla positioner
position_probs = df.groupby("Leksand position")["Probability"].sum().reset_index()
print("\nSannolikheter för Leksands slutposition:")
for _, row in position_probs.iterrows():
print(f"Position {int(row['Leksand position'])}: {row['Probability']:.1%}")
# Jämför med den ursprungliga beräkningen
print("\nJämförelse med ursprunglig beräkning:")
original_calculation = 0.55 * 0.50 * 0.35
print(f"Ursprunglig beräkning: {original_calculation:.1%}")
print(f"Korrekt beräkning: {p_leksand_11th:.1%}")
Kod: Markera allt
Sannolikhet att Leksand hamnar på 11:e plats: 14.0%
Scenarier där Leksand hamnar på 11:e plats:
Leksand outcome Örebro outcome Malmö outcome Leksand final Örebro final \
16 Loss Win Win 71 73
24 Loss OT Win Win 71 72
28 Loss OT Loss Win 71 71
18 Loss Win OT Win 71 73
48 OT Loss Win Win 72 73
26 Loss OT Win OT Win 71 72
30 Loss OT Loss OT Win 71 71
56 OT Loss OT Win Win 72 72
Malmö final Probability
16 72 0.048125
24 72 0.024063
28 72 0.024063
18 71 0.013750
48 72 0.010937
26 71 0.006875
30 71 0.006875
56 72 0.005469
Sannolikheter för Leksands slutposition:
Position 9: 49.6%
Position 10: 36.4%
Position 11: 14.0%
Jämförelse med ursprunglig beräkning:
Ursprunglig beräkning: 9.6%
Korrekt beräkning: 14.0%
Vad menar du?Stjärnan skrev: tis 11 mar 2025, 16:58Jag håller med till dina chanser som tippare när du nämner din första meningGösen skrev: tis 11 mar 2025, 16:45 Jag skulle säga att Malmös chans är exakt 50%
Mina chanser att vinna några pengar skulle jag däremot uppskatta till ca 0%. Speciellt efter att glädjedödaren svept förbi och påtalat att det finns flera sätt att förlora på. Något man som Leksing naturligtvis borde haft med i beräkningen.![]()
Men Blåvita Krigare sa ju...Som synes saknas inte riktigt så många som förväntat, både Filip Cederqvist och Arttu Ruotsalainen tycks ha tillfrisknat snabbt, dessutom gör Tom Nilsson ett försök.
https://rakapuckar.com/leksand-frolunda ... i-matchen/
Roger hatar ju inte att grina i media. Han har förstorat det hela.Sniper skrev: tis 11 mar 2025, 17:16Men Blåvita Krigare sa ju...Som synes saknas inte riktigt så många som förväntat, både Filip Cederqvist och Arttu Ruotsalainen tycks ha tillfrisknat snabbt, dessutom gör Tom Nilsson ett försök.
https://rakapuckar.com/leksand-frolunda ... i-matchen/
Jag funderar på vilka data man skulle mata in i modellen för att få mer exakta sannolikheter för grundutfallen i varje match? Jag testade att mata in oddsdata (från Svenska Spel) för de tre relevanta matcherna och fick följande (normaliserade) sannolikheter:Mats_ume skrev: tis 11 mar 2025, 17:07Sannolikheten att Leksand hamnar på 11:e plats är 14.0%, vilket är högre än den ursprungliga beräkningen på 9.6%.
Sannolikheten att Leksand behåller 9:e platsen är 49.6%, och 36.4% att de hamnar på 10:e plats.
Slog in dina värden i Pythonskriptet och fick ut följande:bjernagris skrev: tis 11 mar 2025, 17:26Jag funderar på vilka data man skulle mata in i modellen för att få mer exakta sannolikheter för grundutfallen i varje match? Jag testade att mata in oddsdata (från Svenska Spel) för de tre relevanta matcherna och fick följande (normaliserade) sannolikheter:Mats_ume skrev: tis 11 mar 2025, 17:07Sannolikheten att Leksand hamnar på 11:e plats är 14.0%, vilket är högre än den ursprungliga beräkningen på 9.6%.
Sannolikheten att Leksand behåller 9:e platsen är 49.6%, och 36.4% att de hamnar på 10:e plats.
Leksand - Frölunda
1 53.2%
x 21.0%
2 25.8%
Malmö - Rögle
1 40.6%
x 22.7%
2 36.7%
Örebro - Luleå
1 43.9%
x 24.5%
2 31.7%
Utifrån dessa mer ackurata sannolikheter får vi:
.258 x (.406 + .1135) x (.439 + .245) = 9.17%
Lärde mig även att Svenska Spel har en marginal på sina spel på mellan 3.4 - 3.6%.
Kod: Markera allt
# Nya sannolikheter
p_leksand_match = [0.532, 0.258, 0.105, 0.105] # [Leksand vinst, Frölunda vinst, Leksand OT-vinst, Frölunda OT-vinst]
p_orebro_match = [0.439, 0.317, 0.1225, 0.1225] # [Örebro vinst, Luleå vinst, Örebro OT-vinst, Luleå OT-vinst]
p_malmo_match = [0.406, 0.367, 0.1135, 0.1135] # [Malmö vinst, Rögle vinst, Malmö OT-vinst, Rögle OT-vinst]
Kod: Markera allt
Sannolikhet att Leksand hamnar på 11:e plats: 11.6%
Scenarier där Leksand hamnar på 11:e plats:
Leksand outcome Örebro outcome Malmö outcome Leksand final Örebro final Malmö final Probability
16 Loss Win Win 71 73 72 0.045984
48 OT Loss Win Win 72 73 72 0.018715
18 Loss Win OT Win 71 73 71 0.012855
24 Loss OT Win Win 71 72 72 0.012832
28 Loss OT Loss Win 71 71 72 0.012832
56 OT Loss OT Win Win 72 72 72 0.005222
26 Loss OT Win OT Win 71 72 71 0.003587
30 Loss OT Loss OT Win 71 71 71 0.003587
Sannolikheter för Leksands slutposition:
Position 9: 65.8%
Position 10: 22.7%
Position 11: 11.6%
Jämförelse med ursprunglig beräkning:
Ursprunglig beräkning: 9.6%
Korrekt beräkning: 11.6%
Där har vi det!Mats_ume skrev: tis 11 mar 2025, 18:00 Sannolikheter för Leksands slutposition:
Position 9: 65.8%
Position 10: 22.7%
Position 11: 11.6%
Vi har ingen som helst självrespekt.
Jag ser ett par problematiska punkter i detta uttalande.Runntur skrev: tis 11 mar 2025, 18:12Om han släpper in sina 2-3 obligatoriska tveksamma mål idag så är vår säsong över