Real-World Scenarios
Practical Applications of Probability Calculations
1. Risk Assessment in Insurance
import numpy as np
import scipy.stats as stats
class InsuranceRiskCalculator:
def __init__(self, age, health_condition):
self.age = age
self.health_condition = health_condition
def calculate_risk_probability(self):
## Simplified risk calculation
base_risk = 0.05 ## 5% base risk
age_factor = (self.age - 30) * 0.001
health_factor = 0.02 if self.health_condition == 'poor' else 0
total_risk = base_risk + age_factor + health_factor
return min(total_risk, 1.0)
## Example usage
risk_calculator = InsuranceRiskCalculator(age=45, health_condition='poor')
print(f"Estimated Risk Probability: {risk_calculator.calculate_risk_probability()}")
2. E-commerce Recommendation Probability
import random
class RecommendationSystem:
def __init__(self, user_purchase_history):
self.purchase_history = user_purchase_history
def calculate_product_recommendation(self, product_category):
## Calculate probability of recommending a product
related_purchases = sum(1 for item in self.purchase_history if item == product_category)
total_purchases = len(self.purchase_history)
recommendation_probability = related_purchases / total_purchases if total_purchases > 0 else 0
return recommendation_probability
## Simulation
purchase_history = ['electronics', 'clothing', 'electronics', 'books', 'electronics']
recommender = RecommendationSystem(purchase_history)
print(f"Probability of recommending electronics: {recommender.calculate_product_recommendation('electronics')}")
Probability Scenarios Comparison
| Scenario |
Probability Calculation |
Key Factors |
| Insurance Risk |
Age, Health Condition |
Personal Attributes |
| Product Recommendation |
Purchase History |
User Behavior |
| Weather Prediction |
Historical Data |
Meteorological Factors |
3. Machine Learning Probability Prediction
import sklearn.naive_bayes as naive_bayes
import numpy as np
class EmailSpamPredictor:
def __init__(self):
self.classifier = naive_bayes.MultinomialNB()
def train(self, features, labels):
self.classifier.fit(features, labels)
def predict_spam_probability(self, email_features):
## Predict probability of being spam
spam_probability = self.classifier.predict_proba(email_features)[0][1]
return spam_probability
## Example training and prediction
X_train = np.array([[1, 0, 1], [0, 1, 1], [1, 1, 0]]) ## Sample features
y_train = np.array(['spam', 'not_spam', 'spam'])
spam_predictor = EmailSpamPredictor()
spam_predictor.train(X_train, y_train)
## Predict spam probability for a new email
new_email_features = np.array([[1, 1, 1]])
print(f"Spam Probability: {spam_predictor.predict_spam_probability(new_email_features)}")
Probability Calculation Flow in Real-World Scenarios
graph TD
A[Real-World Problem] --> B{Identify Probability Factors}
B --> C[Collect Relevant Data]
C --> D[Apply Probability Calculation Method]
D --> E[Analyze Probability Distribution]
E --> F[Make Informed Decision]
F --> G[Validate and Refine Model]
4. Financial Risk Modeling
import numpy as np
import pandas as pd
def stock_price_probability(historical_prices, confidence_level=0.95):
## Calculate Value at Risk (VaR)
returns = np.diff(historical_prices) / historical_prices[:-1]
var = np.percentile(returns, (1 - confidence_level) * 100)
return var
## Simulated stock price data
stock_prices = np.array([100, 102, 99, 101, 103, 98, 100])
print(f"Stock Price Risk Probability: {stock_price_probability(stock_prices)}")
Key Takeaways for LabEx Learners
- Probability calculations have diverse real-world applications
- Different domains require unique probability modeling approaches
- Combine statistical techniques with domain-specific knowledge
- Continuously refine probability models based on new data
By exploring these real-world scenarios, you'll develop a practical understanding of probability calculations in Python programming.