如何在r中找到金额值的下降趋势

时间:2017-04-04 04:34:47

标签: r

我正在研究流失分析的预测问题,我必须预测给定的客户是否会休眠。我有一个名为客户价值的变量,我想知道的是这个价值是否连续3个月下降趋势以及何时开始下降。

Client_ID       YearMonth       Amount
  ABC             201607         1000
  ABC             201606         2000
  ABC             201605         3000
  ABC             201608         3500
  ABC             201604         2500

同样,我有2年的客户数据库和数据集中超过10K的客户。在上面的数据框架中,客户ABC的下降趋势来自201605,201606,201607所以我想在201605中标记此客户,并希望在其他变量的帮助下确定该客户为什么减少了他的收入。

所需的Dataframe将是

Client_ID       YearMonth       Amount    Decline_Flag
  ABC             201607         1000         0
  ABC             201606         2000         0
  ABC             201605         3000         1
  ABC             201608         3500         0
  ABC             201604         2500         0

我怎样才能在r中实现这一目标?

2 个答案:

答案 0 :(得分:1)

这里我假设您每个月都有可用数据,因此连续行实际上相隔一个月。即使不是这样,也可以相对容易地进行调整。

decline3

然后“3个月拒绝”标志存储在> df Source: local data frame [5 x 7] Groups: Client_ID [1] Client_ID YearMonth Amount year month decline decline3 <fctr> <int> <int> <dbl> <dbl> <lgl> <lgl> 1 ABC 201604 2500 2016 4 FALSE FALSE 2 ABC 201605 3000 2016 5 FALSE TRUE 3 ABC 201606 2000 2016 6 TRUE FALSE 4 ABC 201607 1000 2016 7 TRUE FALSE 5 ABC 201608 3500 2016 8 FALSE FALSE 列中:

if (localStorage.container) {
    var i = parseInt(localStorage.container);
} else {
    localStorage.setItem('container', "0");
    var i = parseInt(localStorage.container);
}

var caseNum = $("#caseNum").val();
localStorage.setItem('caseNum' + i, caseNum);

var empName = checkName()
localStorage.setItem('empName' + i, empName);

var emp = $("#emp").val();
localStorage.setItem('emp' + i, emp);

var trigTime = $("#trigTime").val();
localStorage.setItem('trigTime' + i, trigTime);

var country = $("#country").val();
localStorage.setItem('country' + i, country);

var date = $("#date").val();
localStorage.setItem('date' + i, date);

var caseDate = $("#date").val();
localStorage.setItem('caseDate' + i, caseDate);

var doneTime = currTime();
localStorage.setItem('doneTime' + i, doneTime);

var dispo = $("#dispo").val();
localStorage.setItem('dispo' + i, dispo);

var subDispo = $("#subDispo").val();
localStorage.setItem('subDispo' + i, subDispo);

var caseCount = $("#caseCount").val();
localStorage.setItem('caseCount' + i, caseCount);

var A1 = '';
localStorage.setItem('A1' + i, A1);

var A2 = '';
localStorage.setItem('A2' + i, A2);

var A3 = '';
localStorage.setItem('A3' + i, A3);

var project = $("input[type='radio'][name='project']:checked").val();
localStorage.setItem('project' + i, project);

var prefix = '';
if (country == "Kenya") {
    prefix = "KY";
}
localStorage.setItem('prefix' + i, prefix);

var called1 = '';
if ($("#called0").prop("checked") == true) {
    called1 = "Yes";
} else if ($("#called0").prop("checked") == false) {
    called1 = "No";
}
localStorage.setItem('called1' + i, called1);

i++;
localStorage.setItem('container', i);

答案 1 :(得分:1)

您可以考虑使用针对先前测量的运行平均增量而不是此布尔值。这种方法将最小的减少视为相当于大规模的减少,这可能会对预测的质量产生负面影响。