I have created a sample datastep and am tyring to fill in the missing data starting with the May18 record. It is similar to It is simply a survival analysis step.. In order to calculate the current month surviving population (activeflg_final), you subtract what went to loss this month (UnitLossThisMTHPred) and interatively calculate for the future months. In other words I am trrying to take was was surviving as of last month(activeflg_final) multiply by the current month loss rate (Unit_Loss_Perc) to calculate the total losses (unitlossthismthpred). Then you calculate what survived this month (activeflg_final) by subtracting the prior month surviving (lag of activeflg_final) and the total losses for this month (unitlossthismthpred). This needs to be iteratively calculated for the future months starting with May18. I normally could solve this by using the datastep debugger but my company switched to SAS studio and my version does not have the functionality. The calculations are in the second datastep and also pasted directly below: activeflg_lag = lag(activeflg_final); UnitLossThisMTHPred = activeflg_lag * Unit_Loss_Perc; activeflg_final = activeflg_lag - UnitLossThisMTHPred; data cards; infile datalines delimiter=','; input Dates $ activeflg_final UnitLossThisMTHPred Unit_Loss_Perc; datalines; Mar18,19202,11,0.017 Apr18,11873,9,0.017 May18, , ,0.015 Jun18, , ,0.018 Jul18, , ,0.015 Aug18, , ,0.017 Sep18, , ,0.015 Oct18, , ,0.017 Nov18, , ,0.018 Dec18, , ,0.017 Jan19, , ,0.015 Feb19, , ,0.018 Mar19, , ,0.015 Apr19, , ,0.017 ; run; data sample1; retain activeflg_final activeflg_lag UnitLossThisMTHPred; set cards; activeflg_lag = lag(activeflg_final); UnitLossThisMTHPred = activeflg_lag * Unit_Loss_Perc; activeflg_final = activeflg_lag - UnitLossThisMTHPred; run;
... View more