You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SAS数据步实现贷款未来利息与摊销支付现值计算咨询

SAS贷款还款现值计算实现方案

基础规则

  • 折现率采用年通胀率,默认取值为2%,可通过代码开头的全局参数调整
  • 直接在原始数据集基础上新增现值字段输出,无需生成中间现金流数据集
  • 支持等额本金(flat amortization)、等额本息(annuity)两类还款方式的利息现值、摊销本金现值计算

完整实现代码

/* 全局参数:可按需调整年通胀率取值 */
%let annual_inflation = 0.02;

data want;
    set have;
    /* 转换为月维度计算参数 */
    inflation_monthly = &annual_inflation / 12;
    loan_int_monthly = interestRateNominalAnnual / 12;
    repay_month_cnt = round(maturityMonth); /* 确保还款月数为整数 */

    /* 初始化现值变量 */
    PV_interest_flat = 0;    /* 等额本金利息现值 */
    PV_amort_flat = 0;       /* 等额本金摊销现值 */
    PV_interest_annuity = 0; /* 等额本息利息现值 */
    PV_amort_annuity = 0;    /* 等额本息摊销现值 */

    /* 计算两类还款的固定还款额 */
    flat_amort_per_month = loanAmount / repay_month_cnt; /* 等额本金月还固定本金 */
    annuity_total_per_month = loanAmount * loan_int_monthly * (1 + loan_int_monthly)**repay_month_cnt 
                            / ((1 + loan_int_monthly)**repay_month_cnt - 1); /* 等额本息月固定总还款 */
    annuity_remaining_principal = loanAmount;

    /* 单观测内循环计算各期折现,无需生成额外数据集 */
    do month = 1 to repay_month_cnt;
        discount = 1 / (1 + inflation_monthly)**month; /* 当期折现系数 */

        /* 等额本金当期计算 */
        flat_int_current = flat_amort_per_month * loan_int_monthly * (repay_month_cnt - month + 1);
        PV_interest_flat + flat_int_current * discount;
        PV_amort_flat + flat_amort_per_month * discount;

        /* 等额本息当期计算 */
        annuity_int_current = annuity_remaining_principal * loan_int_monthly;
        annuity_amort_current = annuity_total_per_month - annuity_int_current;
        PV_interest_annuity + annuity_int_current * discount;
        PV_amort_annuity + annuity_amort_current * discount;
        annuity_remaining_principal + (-annuity_amort_current);
    end;

    /* 格式化输出字段 */
    format loanAmount comma10. interestRateNominalAnnual 5.2 maturityMonth 3.0 PV_: comma15.2;
    /* 按需保留输出字段,若只需某一类还款方式可删除另一类的PV字段 */
    keep loanAmount interestRateNominalAnnual maturityMonth PV_interest_flat PV_amort_flat PV_interest_annuity PV_amort_annuity;
run;

代码说明

  • 内部循环仅在单条贷款观测内执行,即使是十万级以上的贷款数据集也可快速运行,无性能压力
  • 若仅需要计算某一类还款方式的现值,删除另一类还款方式的对应计算代码即可
  • 输出字段命名清晰,可根据需求自行调整字段名

内容的提问来源于stack exchange,提问作者aef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 11:54:01