0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

経済学のための数学コード

Posted at
from scipy.optimize import minimize

# 利益関数の定義
def profit_function(x):
    # 例として利益関数 = - (x^2 - 4x + 4) (ここで -1 をかけて最大化問題にする)
    return -(x**2 - 4*x + 4)

# 最適化の実行
result_profit = minimize(profit_function, x0=0)  # 初期値として0

# 結果の表示
print(f"Maximum profit: {-result_profit.fun}")
print(f"Optimal quantity: {result_profit.x}")

# グラフの描画
import matplotlib.pyplot as plt
import numpy as np

x_vals = np.linspace(-1, 5, 400)
y_vals = -(x_vals**2 - 4*x_vals + 4)

plt.figure(figsize=(10, 6))
plt.plot(x_vals, y_vals, label='Profit Function')
plt.scatter(result_profit.x, -result_profit.fun, color='red', label='Optimal Point')
plt.xlabel('Quantity')
plt.ylabel('Profit')
plt.title('Profit Maximization')
plt.legend()
plt.grid(True)
plt.show()

from scipy.optimize import minimize

# コスト関数の定義
def cost_function(x):
    # 例としてコスト関数 = x^2 + 2x + 1
    return x**2 + 2*x + 1

# 最適化の実行
result_cost = minimize(cost_function, x0=0)  # 初期値として0

# 結果の表示
print(f"Minimum cost: {result_cost.fun}")
print(f"Optimal quantity: {result_cost.x}")

# グラフの描画
import matplotlib.pyplot as plt
import numpy as np

x_vals = np.linspace(-2, 2, 400)
y_vals = x_vals**2 + 2*x_vals + 1

plt.figure(figsize=(10, 6))
plt.plot(x_vals, y_vals, label='Cost Function')
plt.scatter(result_cost.x, result_cost.fun, color='red', label='Optimal Point')
plt.xlabel('Quantity')
plt.ylabel('Cost')
plt.title('Cost Minimization')
plt.legend()
plt.grid(True)
plt.show()



import numpy as np
import matplotlib.pyplot as plt

# 需要と供給の関数の定義
def demand(p):
    return 100 - 2*p  # 例: 需要関数 = 100 - 2p

def supply(p):
    return 20 + 3*p  # 例: 供給関数 = 20 + 3p

# 均衡点の計算
from scipy.optimize import fsolve

def equilibrium_price(p):
    return demand(p) - supply(p)

# 均衡価格の計算
price_eq = fsolve(equilibrium_price, 10)[0]
quantity_eq = demand(price_eq)

# 結果の表示
print(f"Equilibrium Price: {price_eq}")
print(f"Equilibrium Quantity: {quantity_eq}")

# グラフの描画
p_vals = np.linspace(0, 50, 400)
d_vals = demand(p_vals)
s_vals = supply(p_vals)

plt.figure(figsize=(10, 6))
plt.plot(p_vals, d_vals, label='Demand Function')
plt.plot(p_vals, s_vals, label='Supply Function')
plt.scatter(price_eq, quantity_eq, color='red', label='Equilibrium Point')
plt.xlabel('Price')
plt.ylabel('Quantity')
plt.title('Demand and Supply Analysis')
plt.legend()
plt.grid(True)
plt.show()


import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris

# Load the Iris dataset
data = load_iris()
X = data.data
y = data.target

# Perform PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# Plot the results
plt.figure(figsize=(10, 6))
scatter = plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis', edgecolor='k', s=40)
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.title('PCA of Iris Dataset')
plt.colorbar(scatter, label='Target')
plt.grid(True)
plt.show()

# Print explained variance ratio
print(f"Explained variance ratio: {pca.explained_variance_ratio_}")




import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# サンプル経済データの作成
data = pd.DataFrame({
    'GDP': np.random.rand(100) * 1000,
    'Unemployment': np.random.rand(100) * 10,
    'Inflation': np.random.rand(100) * 5
})

# 説明変数と目的変数
X = data[['GDP', 'Unemployment']]
y = data['Inflation']

# データの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# 線形回帰モデルの作成と適合
model = LinearRegression()
model.fit(X_train, y_train)

# 予測と評価
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)

# 結果の表示
plt.figure(figsize=(8, 6))
plt.scatter(y_test, y_pred, color='blue')
plt.xlabel('Actual Inflation')
plt.ylabel('Predicted Inflation')
plt.title('Inflation Prediction')
plt.grid(True)
plt.show()



import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import linprog

# 経済モデルの線形化
# 例: 目的関数の最小化
c = [-1, -2]  # コスト関数の係数(最小化したい関数)
A = [[2, 1], [1, 2]]  # 制約条件の係数
b = [20, 16]  # 制約条件の右辺

# 線形計画法の実行
result = linprog(c, A_ub=A, b_ub=b, method='highs')

# 結果の表示
print("Optimal value:", result.fun)
print("Optimal solution:", result.x)

# グラフの描画
plt.figure(figsize=(8, 6))
x = np.linspace(0, 10, 400)
y1 = (20 - 2*x)
y2 = (16 - x)/2

plt.plot(x, y1, label='Constraint 1')
plt.plot(x, y2, label='Constraint 2')
plt.fill_between(x, np.minimum(y1, y2), color='gray', alpha=0.5)
plt.scatter(result.x[0], result.x[1], color='red', label='Optimal Solution')
plt.xlabel('x1')
plt.ylabel('x2')
plt.title('Linear Programming')
plt.legend()
plt.grid(True)
plt.show()

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# サンプル経済データの生成
np.random.seed(0)
data_size = 100
advertising_expense = np.random.rand(data_size, 1) * 5000  # 広告費
promotion_expense = np.random.rand(data_size, 1) * 3000  # 販売促進費
sales = 3 * advertising_expense.squeeze() + 2 * promotion_expense.squeeze() + np.random.randn(data_size) * 1000  # 売上

# データフレームの作成
df = pd.DataFrame({
    'Advertising Expense': advertising_expense.squeeze(),
    'Promotion Expense': promotion_expense.squeeze(),
    'Sales': sales
})

# 1. 記述統計
mean = df['Sales'].mean()
median = df['Sales'].median()
variance = df['Sales'].var()
std_dev = df['Sales'].std()

print("Descriptive Statistics:")
print(f"Mean: ${mean:.2f}")
print(f"Median: ${median:.2f}")
print(f"Variance: ${variance:.2f}")
print(f"Standard Deviation: ${std_dev:.2f}")

# 2. 推測統計
# 仮説検定: 売上が100000ドル以上であるかどうか
t_stat, p_value = stats.ttest_1samp(sales, popmean=100000)
print("\nHypothesis Testing:")
print(f"T-statistic: {t_stat:.2f}")
print(f"P-value: {p_value:.2f}")

# 信頼区間の計算
confidence = 0.95
mean = np.mean(sales)
sem = stats.sem(sales)  # 標準誤差
h = sem * stats.t.ppf((1 + confidence) / 2., len(sales) - 1)
print(f"\n{confidence*100}% Confidence Interval: (${mean - h:.2f}, ${mean + h:.2f})")

# 3. 回帰分析
# 単回帰分析: 広告費と売上の関係
model = LinearRegression()
model.fit(advertising_expense, sales)
print("\nSimple Linear Regression:")
print(f"Slope: {model.coef_[0]:.2f}")
print(f"Intercept: {model.intercept_:.2f}")

# グラフの描画
plt.figure(figsize=(12, 6))

# 単回帰分析のプロット
plt.subplot(1, 2, 1)
plt.scatter(advertising_expense, sales, color='blue', label='Data points')
plt.plot(advertising_expense, model.predict(advertising_expense), color='red', linewidth=2, label='Regression Line')
plt.xlabel('Advertising Expense ($)')
plt.ylabel('Sales ($)')
plt.title('Simple Linear Regression')
plt.legend()
plt.grid(True)

# 重回帰分析のプロット
X = np.hstack([advertising_expense, promotion_expense])
X_train, X_test, y_train, y_test = train_test_split(X, sales, test_size=0.2, random_state=0)
model = LinearRegression()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print("\nMultiple Linear Regression:")
print(f"Mean Squared Error: {mse:.2f}")

plt.subplot(1, 2, 2)
plt.scatter(y_test, y_pred, color='blue')
plt.xlabel('Actual Sales ($)')
plt.ylabel('Predicted Sales ($)')
plt.title('Multiple Linear Regression')
plt.grid(True)

plt.tight_layout()
plt.show()


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import norm, expon
from sklearn.utils import shuffle

# Parameters for the simulation
np.random.seed(0)
num_simulations = 10000
mean_return = 0.07
std_dev_return = 0.15
investment_amount = 100000

# 1. Risk Evaluation using Normal Distribution
returns = np.random.normal(loc=mean_return, scale=std_dev_return, size=num_simulations)
final_values = investment_amount * (1 + returns)

# Risk metrics
mean_final_value = np.mean(final_values)
std_dev_final_value = np.std(final_values)
value_at_risk_95 = np.percentile(final_values, 5)

print("Risk Evaluation:")
print(f"Mean Final Value: ${mean_final_value:.2f}")
print(f"Standard Deviation of Final Value: ${std_dev_final_value:.2f}")
print(f"Value at Risk (95% Confidence): ${value_at_risk_95:.2f}")

# 2. Forecasting using Exponential Distribution
# Simulate the time until an event (e.g., default or failure) occurs
failure_times = np.random.exponential(scale=5, size=num_simulations)

# Forecast metrics
mean_failure_time = np.mean(failure_times)
std_dev_failure_time = np.std(failure_times)

print("\nForecasting:")
print(f"Mean Failure Time: {mean_failure_time:.2f} years")
print(f"Standard Deviation of Failure Time: {std_dev_failure_time:.2f} years")

# Plotting the distributions
plt.figure(figsize=(12, 6))

# Risk Evaluation Plot
plt.subplot(1, 2, 1)
plt.hist(final_values, bins=50, color='skyblue', edgecolor='black')
plt.axvline(value_at_risk_95, color='red', linestyle='dashed', linewidth=1, label='Value at Risk (95%)')
plt.xlabel('Final Investment Value ($)')
plt.ylabel('Frequency')
plt.title('Investment Final Value Distribution')
plt.legend()
plt.grid(True)

# Forecasting Plot
plt.subplot(1, 2, 2)
plt.hist(failure_times, bins=50, color='salmon', edgecolor='black')
plt.xlabel('Failure Time (years)')
plt.ylabel('Frequency')
plt.title('Failure Time Distribution')
plt.grid(True)

plt.tight_layout()
plt.show()


import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

# ブラック-ショールズモデルのオプション価格計算
def black_scholes_call_price(S, K, T, r, sigma):
    """
    ブラック-ショールズモデルによるコールオプション価格の計算

    Parameters:
    S (float): 現在の株価
    K (float): 行使価格
    T (float): 満期までの時間(年)
    r (float): 無リスク金利
    sigma (float): ボラティリティ

    Returns:
    float: コールオプション価格
    """
    d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
    d2 = d1 - sigma * np.sqrt(T)
    call_price = S * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2)
    return call_price

def black_scholes_vega(S, K, T, r, sigma):
    """
    ブラック-ショールズモデルによるヴェガの計算

    Parameters:
    S (float): 現在の株価
    K (float): 行使価格
    T (float): 満期までの時間(年)
    r (float): 無リスク金利
    sigma (float): ボラティリティ

    Returns:
    float: ヴェガ
    """
    d1 = (np.log(S / K) + (r + 0.5 * sigma**2) * T) / (sigma * np.sqrt(T))
    vega = S * norm.pdf(d1) * np.sqrt(T)
    return vega

# ヘッジ戦略のシミュレーション
def hedge_strategy_simulation(S0, K, T, r, sigma, delta_s, num_steps):
    """
    ヘッジ戦略のシミュレーション

    Parameters:
    S0 (float): 初期株価
    K (float): 行使価格
    T (float): 満期までの時間(年)
    r (float): 無リスク金利
    sigma (float): ボラティリティ
    delta_s (float): 株価の変動幅
    num_steps (int): シミュレーションステップ数

    Returns:
    tuple: シミュレーション結果(株価、ポートフォリオ価値)
    """
    dt = T / num_steps
    S = np.zeros(num_steps + 1)
    portfolio_value = np.zeros(num_steps + 1)
    
    S[0] = S0
    portfolio_value[0] = black_scholes_call_price(S0, K, T, r, sigma)
    
    for i in range(1, num_steps + 1):
        S[i] = S[i-1] + delta_s
        vega = black_scholes_vega(S[i-1], K, T - (i * dt), r, sigma)
        portfolio_value[i] = black_scholes_call_price(S[i], K, T - (i * dt), r, sigma) - vega * delta_s
    
    return S, portfolio_value

# パラメータ設定
S0 = 100        # 現在の株価
K = 100         # 行使価格
T = 1           # 満期までの時間(年)
r = 0.05        # 無リスク金利
sigma = 0.2     # ボラティリティ
delta_s = 0.5   # 株価の変動幅
num_steps = 100 # シミュレーションステップ数

# オプション価格の計算
call_price = black_scholes_call_price(S0, K, T, r, sigma)
print(f"Call Option Price: ${call_price:.2f}")

# ヘッジ戦略のシミュレーション
S, portfolio_value = hedge_strategy_simulation(S0, K, T, r, sigma, delta_s, num_steps)

# プロット
plt.figure(figsize=(12, 6))

# 株価の変動
plt.subplot(1, 2, 1)
plt.plot(S, label='Stock Price')
plt.xlabel('Step')
plt.ylabel('Stock Price')
plt.title('Stock Price Simulation')
plt.grid(True)
plt.legend()

# ポートフォリオ価値
plt.subplot(1, 2, 2)
plt.plot(portfolio_value, label='Portfolio Value', color='orange')
plt.xlabel('Step')
plt.ylabel('Portfolio Value')
plt.title('Portfolio Value Simulation')
plt.grid(True)
plt.legend()

plt.tight_layout()
plt.show()



import numpy as np
import matplotlib.pyplot as plt

# 時間価値の計算
def present_value(future_value, rate, periods):
    """
    割引現在価値の計算

    Parameters:
    future_value (float): 未来価値
    rate (float): 割引率
    periods (int): 割引期間

    Returns:
    float: 現在価値
    """
    return future_value / (1 + rate) ** periods

def future_value(present_value, rate, periods):
    """
    未来価値の計算

    Parameters:
    present_value (float): 現在価値
    rate (float): 利率
    periods (int): 期間

    Returns:
    float: 未来価値
    """
    return present_value * (1 + rate) ** periods

# 金利計算
def compound_interest(principal, rate, periods, compounding_per_year):
    """
    複利計算

    Parameters:
    principal (float): 元本
    rate (float): 年利率
    periods (int): 投資期間(年)
    compounding_per_year (int): 年間の複利回数

    Returns:
    float: 最終的な金額
    """
    return principal * (1 + rate / compounding_per_year) ** (compounding_per_year * periods)

def continuous_compound_interest(principal, rate, periods):
    """
    連続複利計算

    Parameters:
    principal (float): 元本
    rate (float): 年利率
    periods (int): 投資期間(年)

    Returns:
    float: 最終的な金額
    """
    return principal * np.exp(rate * periods)

# リスクとリターン
def portfolio_return(weights, returns):
    """
    ポートフォリオリターンの計算

    Parameters:
    weights (list): 投資配分
    returns (list): 各資産のリターン

    Returns:
    float: ポートフォリオリターン
    """
    return np.dot(weights, returns)

def portfolio_risk(cov_matrix, weights):
    """
    ポートフォリオリスクの計算(標準偏差)

    Parameters:
    cov_matrix (np.ndarray): 共分散行列
    weights (list): 投資配分

    Returns:
    float: ポートフォリオリスク
    """
    return np.sqrt(np.dot(weights.T, np.dot(cov_matrix, weights)))

# パラメータ設定
principal = 1000     # 元本
rate = 0.05          # 利率
periods = 10          # 投資期間(年)
compounding_per_year = 4  # 年間の複利回数

# 時間価値の計算
pv = present_value(1500, rate, periods)
fv = future_value(principal, rate, periods)
print(f"Present Value: ${pv:.2f}")
print(f"Future Value: ${fv:.2f}")

# 金利計算
compound_amount = compound_interest(principal, rate, periods, compounding_per_year)
continuous_amount = continuous_compound_interest(principal, rate, periods)
print(f"Compound Interest Amount: ${compound_amount:.2f}")
print(f"Continuous Compound Interest Amount: ${continuous_amount:.2f}")

# ポートフォリオ理論
returns = np.array([0.08, 0.12, 0.15])  # 各資産のリターン
weights = np.array([0.4, 0.4, 0.2])    # 投資配分
cov_matrix = np.array([[0.0004, 0.0001, 0.0002],
                       [0.0001, 0.0003, 0.00015],
                       [0.0002, 0.00015, 0.0005]])

port_return = portfolio_return(weights, returns)
port_risk = portfolio_risk(cov_matrix, weights)
print(f"Portfolio Return: {port_return:.2f}")
print(f"Portfolio Risk (Standard Deviation): {port_risk:.2f}")

# ポートフォリオのリスクとリターンをプロット
num_portfolios = 10000
results = np.zeros((3, num_portfolios))

for i in range(num_portfolios):
    weights = np.random.random(len(returns))
    weights /= np.sum(weights)
    
    port_return = portfolio_return(weights, returns)
    port_risk = portfolio_risk(cov_matrix, weights)
    
    results[0,i] = port_return
    results[1,i] = port_risk
    results[2,i] = port_return / port_risk

plt.figure(figsize=(12, 6))

# リスクとリターンのプロット
plt.scatter(results[1,:], results[0,:], c=results[2,:], cmap='viridis')
plt.xlabel('Risk (Standard Deviation)')
plt.ylabel('Return')
plt.title('Portfolio Optimization')
plt.colorbar(label='Sharpe Ratio')
plt.grid(True)
plt.show()


import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize

# 経済均衡モデル: 供給と需要の均衡
def supply_demand_eq(price, demand_params, supply_params):
    """
    供給と需要の均衡を求める

    Parameters:
    price (float): 価格
    demand_params (tuple): 需要関数のパラメータ
    supply_params (tuple): 供給関数のパラメータ

    Returns:
    float: 需要と供給の差
    """
    demand = demand_params[0] - demand_params[1] * price
    supply = supply_params[0] + supply_params[1] * price
    return demand - supply

# ゲーム理論: ナッシュ均衡の計算
def nash_equilibrium(payoff_matrix):
    """
    ナッシュ均衡を求める

    Parameters:
    payoff_matrix (np.ndarray): 各プレイヤーの報酬行列

    Returns:
    tuple: ナッシュ均衡の戦略
    """
    num_actions = payoff_matrix.shape[0]

    def objective(x):
        return -np.sum(x * np.log(x))

    constraints = [{'type': 'eq', 'fun': lambda x: np.sum(x) - 1}]
    
    results = []
    for i in range(num_actions):
        constraints.append({'type': 'ineq', 'fun': lambda x, i=i: np.sum(payoff_matrix[i, :] * x) - np.sum(payoff_matrix[i, :])})

    for i in range(num_actions):
        initial_guess = np.ones(num_actions) / num_actions
        res = minimize(objective, initial_guess, constraints=constraints)
        results.append(res.x)

    return results

# パラメータ設定
price_range = np.linspace(0, 10, 100)
demand_params = (100, 2)  # 需要関数のパラメータ (a, b)
supply_params = (20, 1)   # 供給関数のパラメータ (c, d)

# 供給と需要の均衡をプロット
demand = demand_params[0] - demand_params[1] * price_range
supply = supply_params[0] + supply_params[1] * price_range
equilibrium_price = minimize(lambda p: supply_demand_eq(p, demand_params, supply_params), 5).x[0]

plt.figure(figsize=(10, 6))
plt.plot(price_range, demand, label='Demand')
plt.plot(price_range, supply, label='Supply')
plt.axvline(equilibrium_price, color='r', linestyle='--', label='Equilibrium Price')
plt.xlabel('Price')
plt.ylabel('Quantity')
plt.title('Supply and Demand Equilibrium')
plt.legend()
plt.grid(True)
plt.show()

# ゲーム理論: ナッシュ均衡の計算
payoff_matrix = np.array([[3, 2], [4, 1]])  # 2x2の報酬行列
nash_eq = nash_equilibrium(payoff_matrix)

print("Nash Equilibrium Strategies:")
for strategy in nash_eq:
    print(strategy)

import numpy as np
import matplotlib.pyplot as plt

# パラメータの設定
N = 100  # 時間ステップ
V = np.zeros(N + 1)
r = 0.1  # 割引率
reward = 1  # 報酬

# ベルマン方程式の適用
for t in reversed(range(N)):
    V[t] = reward + r * V[t + 1]

# 結果の表示
plt.plot(range(N + 1), V, marker='o')
plt.xlabel('Time')
plt.ylabel('Value Function')
plt.title('Dynamic Programming Value Function')
plt.grid(True)
plt.show()


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error

# --- Market Research Statistical Methods ---

# Sample Data
np.random.seed(0)
sample_data = np.random.normal(loc=50, scale=10, size=100)

# Sample Mean and Standard Deviation
mean_estimate = np.mean(sample_data)
std_estimate = np.std(sample_data, ddof=1)

# Confidence Interval
confidence = 0.95
z = stats.norm.ppf((1 + confidence) / 2)
margin_of_error = z * (std_estimate / np.sqrt(len(sample_data)))
confidence_interval = (mean_estimate - margin_of_error, mean_estimate + margin_of_error)

# Plot Histogram with Confidence Interval
plt.figure(figsize=(12, 6))
plt.hist(sample_data, bins=20, alpha=0.7, color='blue', edgecolor='black')
plt.axvline(mean_estimate, color='red', linestyle='dashed', linewidth=1)
plt.axvline(confidence_interval[0], color='green', linestyle='dashed', linewidth=1)
plt.axvline(confidence_interval[1], color='green', linestyle='dashed', linewidth=1)
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Sample Survey Data with Confidence Interval')
plt.legend(['Mean Estimate', 'Confidence Interval'])
plt.show()

# Hypothesis Testing
group1 = np.random.normal(loc=100, scale=15, size=50)
group2 = np.random.normal(loc=110, scale=15, size=50)
t_stat, p_value = stats.ttest_ind(group1, group2)

print(f"T-statistic: {t_stat:.2f}")
print(f"P-value: {p_value:.4f}")

alpha = 0.05
if p_value < alpha:
    print("Reject the null hypothesis: There is a significant difference between the two groups.")
else:
    print("Fail to reject the null hypothesis: There is no significant difference between the two groups.")

# --- Consumer Behavior Analysis ---

# Demand Forecasting Model
time = np.arange(1, 13)
demand = 200 + 15 * time + np.random.normal(scale=10, size=time.shape[0])
data = pd.DataFrame({'Month': time, 'Demand': demand})

# Fit Linear Regression Model
X = data[['Month']]
y = data['Demand']
model = LinearRegression()
model.fit(X, y)
data['Predicted_Demand'] = model.predict(X)

# Plot Results
plt.figure(figsize=(12, 6))
plt.plot(data['Month'], data['Demand'], label='Actual Demand', marker='o')
plt.plot(data['Month'], data['Predicted_Demand'], label='Predicted Demand', linestyle='--')
plt.xlabel('Month')
plt.ylabel('Demand')
plt.title('Demand Forecasting Model')
plt.legend()
plt.grid(True)
plt.show()

# Print Model Performance
mse = mean_squared_error(y, data['Predicted_Demand'])
print(f"Mean Squared Error: {mse:.2f}")


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?