← 返回题库
初级

综合案例实战:渔业公司存货采信综合分析

未完成
初级参考 完整示例代码供参考,建议自己理解后重新输入
"""
金融风险管理 - q095
综合案例实战:渔业公司存货采信综合分析
"""

metadata = {
    "id": "q095",
    "title": "综合案例实战:渔业公司存货采信综合分析",
    "module": "综合案例实战",
    "difficulty": "beginner",
    "data_files": ["case33_fry_cost.csv"],
    "skills": ["存货采信", "回归验证", "信贷判断"],
    "estimated_minutes": 15
}

"""
【题目】
读取case33_fry_cost.csv,基于线性回归对渔业公司账面成本进行采信分析。

计算:
1. 建立线性回归 Y=a+bX
2. R²值
3. 最大残差率

输出格式:
=== 渔业公司存货采信分析 ===
回归方程: Y = {a} + {b}X
R²: {r2}
最大残差率: {x}%
采信结论: 采信/需进一步核查
"""

def solve():
    import pandas as pd
    import numpy as np
    from pyodide.http import open_url
    from io import StringIO

    BASE_URL = "https://data.zuihe.com/finance/"
    df = pd.read_csv(StringIO(open_url(BASE_URL + "case33_fry_cost.csv").read()))

    x = df['cumulative_3yr_stocking'].values
    y = df['book_cost'].values
    coeffs = np.polyfit(x, y, 1)
    b, a = round(coeffs[0], 4), round(coeffs[1], 4)
    y_hat = np.polyval(coeffs, x)
    ss_res = np.sum((y - y_hat) ** 2)
    ss_tot = np.sum((y - y.mean()) ** 2)
    r2 = round(1 - ss_res / ss_tot, 4)
    max_resid = round(np.max(np.abs((y - y_hat) / y_hat)) * 100, 2)

    conclusion = '采信' if r2 > 0.85 and max_resid < 15 else '需进一步核查'
    lines = [
        "=== 渔业公司存货采信分析 ===",
        f"回归方程: Y = {a} + {b}X",
        f"R²: {r2}",
        f"最大残差率: {max_resid}%",
        f"采信结论: {conclusion}",
    ]
    return '
'.join(lines)

if __name__ == "__main__":
    print(solve())

示例

输入
solve()
期望输出
=== 渔业公司存货采信分析 === | 回归方程: Y = 3029.1929 + -9.7709X | R²: 0.9087 | 最大残差率: 3.55% | 采信结论: 采信
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码