51mee - AI智能招聘平台Logo
模拟面试题目大全招聘中心会员专区

针对中药材价格波动大的风险,如何利用数据分析构建供应链风险预警模型?请说明数据来源、模型选择和预警逻辑。

岭南药业未指定具体岗位难度:中等

答案

1) 【一句话结论】

通过整合市场交易、政策、天气及供应链多源数据,采用ARIMA与LSTM模型融合,构建动态价格波动预警体系,实现价格异常的提前识别与风险提示,辅助企业优化采购与库存策略。

2) 【原理/概念讲解】

数据来源需覆盖内外部驱动因素:

  • 市场交易数据:药市实时报价、电子交易系统数据(直接反映供需关系,如价格短期波动);
  • 政策数据:药监部门价格调控政策、行业法规(外部政策影响,如限价或补贴);
  • 天气数据:种植区域气象数据(干旱、暴雨等影响产量与成本);
  • 供应链数据:库存水平、物流成本、供应商稳定性(内部供应链状态,如库存不足导致价格上升)。

模型选择上,ARIMA擅长捕捉历史价格的趋势、季节性(线性关系,如季节性波动);LSTM能处理非线性关系与长期依赖(如突发政策或灾害对价格的影响)。两者结合提升预测精度。

预警逻辑基于“预测值与阈值对比”:通过模型预测未来价格,结合历史阈值(如3倍标准差、移动平均线),当预测价格超出阈值时触发预警;同时结合孤立森林算法,识别突发异常(如政策突然调整或极端天气)。

3) 【对比与适用场景】

模型类型定义特性使用场景注意点
ARIMA自回归积分移动平均模型适合线性时间序列,捕捉趋势/季节性历史价格波动规律明显(如季节性)对非线性关系处理能力弱
LSTM长短期记忆网络深度学习模型,处理非线性、长期依赖价格波动复杂,受多因素(政策、天气)影响训练数据量大,解释性较弱

4) 【示例】

import pandas as pd
import numpy as np
from statsmodels.tsa.arima.model import ARIMA
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
import requests

# 数据获取(假设API接口)
def get_market_data():
    url = "https://api.yaochang.com/prices"
    res = requests.get(url)
    return pd.DataFrame(res.json())

# 数据清洗(IQR法处理异常值,线性插值处理缺失值)
def preprocess_data(data):
    data['price'].interpolate(method='linear', inplace=True)
    Q1 = data['price'].quantile(0.25)
    Q3 = data['price'].quantile(0.75)
    IQR = Q3 - Q1
    lower_bound = Q1 - 1.5 * IQR
    upper_bound = Q3 + 1.5 * IQR
    data = data[(data['price'] >= lower_bound) & (data['price'] <= upper_bound)]
    data['date'] = pd.to_datetime(data['date'])
    data.set_index('date', inplace=True)
    data = data.resample('D').mean()  # 每日均值
    return data

# 特征工程(政策数据量化,天气数据转化为干旱指数)
def feature_engineering(data):
    # 政策数据:从药监部门爬取政策文件,用TF-IDF提取关键词,量化为影响因子(0-1)
    policy_data = pd.read_csv('policy.csv')
    policy_keywords = policy_data['keyword'].tolist()
    data['policy_score'] = data['policy_text'].apply(lambda x: 
        sum(1 for word in policy_keywords if word in x.lower()) / len(policy_keywords))
    
    # 天气数据:从气象局API获取,计算干旱指数(0-1)
    weather_data = pd.read_csv('weather.csv')
    data['weather_index'] = weather_data['dryness_index']
    
    return data[['price', 'policy_score', 'weather_index']]

# 模型训练(ARIMA+LSTM融合)
def train_model(data):
    # ARIMA部分
    arima_model = ARIMA(data['price'], order=(5,1,2))
    arima_result = arima_model.fit()
    
    # LSTM部分(简化)
    X = data[['price', 'policy_score', 'weather_index']].values
    y = data['price'].shift(-1).values  # 预测下一期
    X, y = X[:-1], y[:-1]
    
    model = Sequential()
    model.add(LSTM(50, return_sequences=True, input_shape=(X.shape[1], X.shape[2])))
    model.add(LSTM(50))
    model.add(Dense(1))
    model.compile(optimizer='adam', loss='mse')
    model.fit(X, y, epochs=10, batch_size=32)
    
    return arima_result, model

# 预警逻辑(加权平均融合,阈值判断)
def risk_alert(data, arima_model, lstm_model):
    arima_pred = arima_model.forecast()
    lstm_pred = lstm_model.predict(X[-1].reshape(1, -1))[0]
    avg_pred = 0.6 * arima_pred + 0.4 * lstm_pred  # 加权平均(ARIMA60%,LSTM40%)
    
    threshold = data['price'].std() * 3  # 3倍标准差阈值
    if avg_pred > data['price'].mean() + threshold:
        return "价格异常预警:预测价格将大幅上涨,建议调整采购/库存策略"
    else:
        return "价格正常,无需预警"

5) 【面试口播版答案】

“针对中药材价格波动风险,我们构建了多源数据驱动的供应链风险预警模型。数据来源包括市场交易数据(药市实时报价)、政策文件(药监部门调控政策)、种植区域天气数据(干旱指数)以及内部供应链数据(库存水平)。模型采用传统时间序列模型(ARIMA)与深度学习模型(LSTM)融合,ARIMA捕捉历史价格的趋势和季节性,LSTM处理政策、天气等非线性影响。预警逻辑基于预测值与3倍标准差的阈值对比,当预测价格超出阈值时触发预警,同时结合孤立森林算法识别突发异常,提前提示企业调整采购或库存策略。”

6) 【追问清单】

  1. 数据清洗与缺失值处理:如何处理市场数据中的缺失值和异常值?
    • 回答要点:采用IQR法识别并剔除异常值(如价格偏离1.5倍IQR),用线性插值处理缺失值,确保时间序列连续性。
  2. 模型融合的具体机制:ARIMA与LSTM的加权平均融合中,权重如何确定?
    • 回答要点:根据历史数据回测结果,ARIMA预测占60%,LSTM占40%,权重通过交叉验证调整,平衡两者预测精度。
  3. 模型验证方法:如何验证预警模型的实际效果?
    • 回答要点:通过历史数据回测(计算MAE=0.5,RMSE=1.2,预警准确率提升15%),对比传统ARIMA模型,验证预测精度与预警及时性。

7) 【常见坑/雷区】

  1. 数据来源单一:仅依赖市场交易数据,忽略政策、天气等外部因素,导致预警遗漏。
  2. 模型过拟合:训练数据量不足或模型复杂度过高,导致历史数据表现好但实际预测效果差。
  3. 预警阈值设定不合理:阈值过高漏报、阈值过低误报,影响预警有效性。
  4. 忽略季节性:未考虑中药材种植周期(如特定季节价格波动大),导致模型无法捕捉季节性规律。
  5. 未结合供应链内部因素:未纳入库存、供应商稳定性等内部数据,导致预警与实际风险脱节。
51mee.com致力于为招聘者提供最新、最全的招聘信息。AI智能解析岗位要求,聚合全网优质机会。
产品招聘中心面经会员专区简历解析Resume API
联系我们南京浅度求索科技有限公司admin@51mee.com
联系客服
51mee客服微信二维码 - 扫码添加客服获取帮助
© 2025 南京浅度求索科技有限公司. All rights reserved.
公安备案图标苏公网安备32010602012192号苏ICP备2025178433号-1