系统化分析大模型API投资项目的回报率、风险和收益,通过科学的评估方法和指标体系,为投资决策提供数据支持。
1. 投资回报率(ROI)
2. 成本效益分析
3. 风险评估
1.1 基础ROI计算
from typing import Dict, List, Any import numpy as np class ROIAnalyzer: """投资回报率分析器""" def __init__(self): self.investment_data = [] self.return_data = [] def add_investment_cost(self, cost: float, category: str = "direct"): self.investment_data.append({ 'cost': cost, 'category': category, 'timestamp': time.time() }) def add_return_value(self, value: float, category: str = "direct"): self.return_data.append({ 'value': value, 'category': category, 'timestamp': time.time() }) def calculate_simple_roi(self) -> Dict[str, float]: """计算简单投资回报率""" total_investment = sum(item['cost'] for item in self.investment_data) total_return = sum(item['value'] for item in self.return_data) if total_investment == 0: return {'roi': 0, 'total_investment': 0, 'total_return': 0} roi = ((total_return - total_investment) / total_investment) * 100 return { 'roi': roi, 'total_investment': total_investment, 'total_return': total_return, 'profit_loss': total_return - total_investment } def calculate_time_adjusted_roi(self, discount_rate: float = 0.05) -> Dict[str, float]: """计算时间调整的投资回报率""" npv = 0 for i, investment in enumerate(self.investment_data): npv -= investment['cost'] / ((1 + discount_rate) ** i) for i, return_item in enumerate(self.return_data): npv += return_item['value'] / ((1 + discount_rate) ** i) cash_flows = [] for investment in self.investment_data: cash_flows.append(-investment['cost']) for return_item in self.return_data: cash_flows.append(return_item['value']) irr = self._calculate_irr(cash_flows) return {'npv': npv, 'irr': irr, 'discount_rate': discount_rate} def _calculate_irr(self, cash_flows: List[float]) -> float: """计算内部收益率(IRR),使用二分法近似""" low, high = 0.0, 1.0 for _ in range(100): mid = (low + high) / 2 npv = sum(cf / ((1 + mid) ** i) for i, cf in enumerate(cash_flows)) if abs(npv) < 1e-6: return mid if npv > 0: low = mid else: high = mid return (low + high) / 2 def analyze_roi_by_category(self) -> Dict[str, Any]: """按类别分析投资回报率""" investment_by_cat = {} return_by_cat = {} for item in self.investment_data: investment_by_cat[item['category']] = investment_by_cat.get(item['category'], 0) + item['cost'] for item in self.return_data: return_by_cat[item['category']] = return_by_cat.get(item['category'], 0) + item['value'] category_analysis = {} for cat in set(investment_by_cat.keys()) | set(return_by_cat.keys()): inv = investment_by_cat.get(cat, 0) ret = return_by_cat.get(cat, 0) roi = ((ret - inv) / inv * 100) if inv > 0 else 0 category_analysis[cat] = { 'investment': inv, 'return': ret, 'roi': roi, 'profit_loss': ret - inv } return category_analysis
1.2 净现值(NPV)计算
class NPVAnalyzer: """净现值分析器""" def __init__(self, discount_rate: float = 0.05): self.discount_rate = discount_rate self.cash_flows = [] def add_cash_flow(self, cash_flow: float, period: int = 0): self.cash_flows.append({'cash_flow': cash_flow, 'period': period}) def calculate_npv(self) -> float: """计算净现值:NPV = Σ(CF_t / (1+r)^t)""" return sum(cf['cash_flow'] / ((1 + self.discount_rate) ** cf['period']) for cf in self.cash_flows) def calculate_profitability_index(self) -> float: """计算盈利能力指数(PI)""" pos = sum(cf['cash_flow'] for cf in self.cash_flows if cf['cash_flow'] > 0) neg = sum(cf['cash_flow'] for cf in self.cash_flows if cf['cash_flow'] < 0) if abs(neg) == 0: return float('inf') discounted_pos = sum(cf['cash_flow'] / ((1 + self.discount_rate) ** cf['period']) for cf in self.cash_flows if cf['cash_flow'] > 0) return discounted_pos / abs(neg)
class CostBenefitAnalyzer: """成本效益分析器""" def __init__(self): self.costs = [] self.benefits = [] def add_cost(self, amount: float, category: str, description: str = ""): self.costs.append({'amount': amount, 'category': category, 'description': description}) def add_benefit(self, amount: float, category: str, description: str = ""): self.benefits.append({'amount': amount, 'category': category, 'description': description}) def calculate_cost_benefit_ratio(self) -> float: total_cost = sum(c['amount'] for c in self.costs) total_benefit = sum(b['amount'] for b in self.benefits) return total_benefit / total_cost if total_cost > 0 else float('inf') def calculate_payback_period(self) -> float: """计算回收期(年)""" flows = [{'amount': -c['amount'], 'period': 0} for c in self.costs] flows += [{'amount': b['amount'], 'period': 1} for b in self.benefits] flows.sort(key=lambda x: x['period']) cumulative = 0 for f in flows: cumulative += f['amount'] if cumulative >= 0: return f['period'] return float('inf') def calculate_roi(self) -> Dict[str, float]: total_cost = sum(c['amount'] for c in self.costs) total_benefit = sum(b['amount'] for b in self.benefits) if total_cost == 0: return {'roi': 0, 'total_cost': 0, 'total_benefit': 0} roi = ((total_benefit - total_cost) / total_cost) * 100 return {'roi': roi, 'total_cost': total_cost, 'total_benefit': total_benefit, 'net_value': total_benefit - total_cost}
from enum import Enum class RiskLevel(Enum): LOW = "low" MEDIUM = "medium" HIGH = "high" CRITICAL = "critical" class RiskAnalyzer: """风险分析器""" def __init__(self): self.risks = [] def add_risk(self, name: str, description: str, probability: float, impact: float, category: str = "general"): probability = max(0.0, min(1.0, probability)) impact = max(0.0, min(5.0, impact)) risk_score = probability * impact # 风险等级判定:score>=4关键,>=2高,>=1中,<1低 if risk_score >= 4: level = RiskLevel.CRITICAL elif risk_score >= 2: level = RiskLevel.HIGH elif risk_score >= 1: level = RiskLevel.MEDIUM else: level = RiskLevel.LOW self.risks.append({ 'name': name, 'description': description, 'probability': probability, 'impact': impact, 'risk_level': level, 'category': category, 'risk_score': risk_score }) def build_risk_matrix(self) -> Dict[str, Any]: """构建风险矩阵,按等级分组并排序""" risks_by_level = {level: [] for level in RiskLevel} for risk in self.risks: risks_by_level[risk['risk_level']].append(risk) for level in risks_by_level: risks_by_level[level].sort(key=lambda x: x['risk_score'], reverse=True) total = len(self.risks) avg_score = sum(r['risk_score'] for r in self.risks) / total if total > 0 else 0 critical = len(risks_by_level[RiskLevel.CRITICAL]) high = len(risks_by_level[RiskLevel.HIGH]) return { 'risk_matrix': risks_by_level, 'total_risks': total, 'critical_risks': critical, 'high_risks': high, 'risk_distribution': {level.value: len(risks) for level, risks in risks_by_level.items()}, 'average_risk_score': avg_score } def generate_risk_report(self) -> Dict[str, Any]: """生成风险报告""" matrix = self.build_risk_matrix() critical_risks = [r for r in self.risks if r['risk_level'] == RiskLevel.CRITICAL] recommendations = [] if critical_risks: recommendations.append("立即处理关键风险,避免项目失败") if [r for r in self.risks if r['risk_level'] == RiskLevel.HIGH]: recommendations.append("制定高风险的缓解计划") if [r for r in self.risks if r['probability'] > 0.7]: recommendations.append("重点关注高概率风险,制定预防措施") if [r for r in self.risks if r['impact'] > 4]: recommendations.append("制定高影响风险的应急预案") if not recommendations: recommendations.append("风险总体可控,建议定期监控") return { 'summary': { 'total_risks': matrix['total_risks'], 'critical_risks_count': len(critical_risks), 'average_risk_score': matrix['average_risk_score'] }, 'risk_distribution': {level.value: len(risks) for level, risks in matrix['risk_matrix'].items()}, 'critical_risks': critical_risks, 'recommendations': recommendations }
class InvestmentDecisionSystem: """投资决策支持系统:整合ROI、NPV、成本效益和风险分析""" def __init__(self): self.roi_analyzer = ROIAnalyzer() self.npv_analyzer = NPVAnalyzer(discount_rate=0.05) self.cost_benefit_analyzer = CostBenefitAnalyzer() self.risk_analyzer = RiskAnalyzer() def add_investment_data(self, data: Dict[str, Any]): """批量导入投资数据(成本、收益、现金流、风险)""" for cost in data.get('costs', []): self.roi_analyzer.add_investment_cost(cost['amount'], cost.get('category', 'direct')) self.cost_benefit_analyzer.add_cost(cost['amount'], cost.get('category', 'direct'), cost.get('description', '')) for benefit in data.get('benefits', []): self.roi_analyzer.add_return_value(benefit['amount'], benefit.get('category', 'direct')) self.cost_benefit_analyzer.add_benefit(benefit['amount'], benefit.get('category', 'direct'), benefit.get('description', '')) for cf in data.get('cash_flows', []): self.npv_analyzer.add_cash_flow(cf['amount'], cf.get('period', 0)) for risk in data.get('risks', []): self.risk_analyzer.add_risk(risk['name'], risk['description'], risk['probability'], risk['impact'], risk.get('category', 'general')) def analyze_investment(self) -> Dict[str, Any]: """执行完整投资分析""" result = { 'roi_analysis': self.roi_analyzer.calculate_simple_roi(), 'time_adjusted_roi': self.roi_analyzer.calculate_time_adjusted_roi(), 'npv_analysis': { 'npv': self.npv_analyzer.calculate_npv(), 'profitability_index': self.npv_analyzer.calculate_profitability_index() }, 'cost_benefit': self.cost_benefit_analyzer.calculate_roi(), 'risk_report': self.risk_analyzer.generate_risk_report() } result['assessment'] = self._assess(result) return result def _assess(self, result: Dict[str, Any]) -> Dict[str, Any]: """综合评估:加权打分 + 投资等级""" roi = result['roi_analysis']['roi'] npv = result['npv_analysis']['npv'] crit = len(result['risk_report']['critical_risks']) recommendations = [] if roi > 20: recommendations.append("投资回报率优秀,建议优先考虑") elif roi > 10: recommendations.append("投资回报率良好,可以投资") elif roi > 0: recommendations.append("投资回报率较低,需谨慎考虑") else: recommendations.append("投资回报率为负,不建议投资") if npv > 0: recommendations.append("净现值为正,投资具有价值") else: recommendations.append("净现值为负,投资价值有限") if crit > 0: recommendations.append(f"存在{crit}个关键风险,需制定详细风险管理计划") # 综合评分:ROI 40% + NPV 30% + 风险 30% score = min(roi / 100, 1) * 40 + min(max(npv / 10000, 0), 1) * 30 + (1 - min(crit / 5, 1)) * 30 if score >= 0.8: grade = "A级" elif score >= 0.6: grade = "B级" elif score >= 0.4: grade = "C级" else: grade = "D级" return { 'score': round(score, 2), 'investment_grade': grade, 'recommendations': recommendations, 'indicators': {'roi': roi, 'npv': npv, 'critical_risks': crit} } # 使用示例 if __name__ == "__main__": system = InvestmentDecisionSystem() system.add_investment_data({ 'costs': [ {'amount': 5000, 'category': 'direct', 'description': '初始投资'}, {'amount': 2000, 'category': 'direct', 'description': '运营成本'} ], 'benefits': [ {'amount': 8000, 'category': 'direct', 'description': '直接收益'}, {'amount': 3000, 'category': 'indirect', 'description': '间接收益'} ], 'cash_flows': [ {'amount': -5000, 'period': 0}, {'amount': 2000, 'period': 1}, {'amount': 3000, 'period': 2}, {'amount': 4000, 'period': 3} ], 'risks': [ {'name': '技术风险', 'description': '技术实现难度', 'probability': 0.3, 'impact': 3, 'category': 'technical'}, {'name': '市场风险', 'description': '市场需求变化', 'probability': 0.4, 'impact': 4, 'category': 'market'} ] }) report = system.analyze_investment() print(f"ROI: {report['roi_analysis']['roi']:.1f}%") print(f"NPV: {report['npv_analysis']['npv']:,.0f}") print(f"等级: {report['assessment']['investment_grade']}") print(f"建议: {report['assessment']['recommendations']}")
A:选择合适的折现率需要综合考虑多个因素:
1. 无风险利率
2. 风险调整
3. 实践标准
A:处理不确定性较高的投资决策需要采用以下策略:
1. 敏感性分析
2. 期权价值考虑
3. 风险管理策略
A:平衡短期收益和长期价值需要综合考虑:
1. 时间维度分析
2. 价值评估方法
3. 决策框架
本节系统介绍了大模型API投资回报分析的方法和实践,包括投资回报率计算、成本效益分析、风险评估等关键内容。
关键要点:
实践价值:
本教程第3章至此完成,接下来将进入第4章性能优化与效率提升的内容。
关键词:投资回报率,成本效益分析,风险评估,净现值,内部收益率
难度:进阶
预计阅读:10 分钟