📜  R 编程中的预测分析

📅  最后修改于: 2022-05-13 01:55:24.087000             🧑  作者: Mango

R 编程中的预测分析

R语言中的预测分析是分析的一个分支,它使用统计操作来分析历史事实以预测未来事件。它是数据挖掘和机器学习中常用的术语。时间序列分析、非线性最小二乘等方法用于预测分析。使用预测分析可以帮助许多企业找出收集的数据之间的关系,并根据这种关系预测模式。因此,允许企业创建预测智能。

在本文中,我们将通过示例代码讨论预测分析的过程、需求和应用。

预测分析过程

预测分析由以下 7 个过程组成:

  • 定义项目:定义项目、范围、目标和结果。
  • 数据收集:通过数据挖掘收集数据,提供客户交互的完整视图。
  • 数据分析:这是对数据进行清理、检查、转换和建模的过程。
  • 统计:此过程可以验证假设并测试统计模型。
  • 建模:使用统计数据生成预测模型,并使用最优化的模型进行部署。
  • 部署:部署预测模型以自动生成日常决策结果。
  • 模型监控:持续监控模型以审查确保预期结果的性能。

需要预测分析

  • 了解客户行为:预测分析使用数据挖掘功能提取客户的属性和行为。它还发现了客户的兴趣,以便企业可以学习代表那些可以增加购买概率或可能性的产品。
  • 在市场中赢得竞争:通过预测分析,企业或公司可以通过找出自己的弱点和优势,快速发展并在与其他企业的竞争中脱颖而出。
  • 了解增加收入的新机会:公司可以根据提供收入增加的客户模式创建新的优惠或折扣。
  • 发现弱点:使用这些方法,公司可以通过找出公司过去采取的客户不喜欢的行为来挽回失去的客户。

预测分析的应用

  • 医疗保健:预测分析可用于确定患者的病史,从而确定风险。
  • 财务建模:财务建模是预测分析在找出有助于企业决策过程的趋势股票方面发挥重要作用的另一个方面。
  • 客户关系管理:预测分析可帮助公司根据预测算法产生的分析创建营销活动和客户服务。
  • 风险分析:在预测活动时,预测分析可以显示对利润的估计,也有助于评估风险。

例子:

让我们以时间分析系列为例,它是 R 编程中的一种预测分析方法:

x <- c(580, 7813, 28266, 59287, 75700,  
       87820, 95314, 126214, 218843, 471497, 
       936851, 1508725, 2072113) 
     
# library required for decimal_date() function 
library(lubridate) 
     
# output to be created as png file 
png(file ="predictiveAnalysis.png") 
     
# creating time series object 
# from date 22 January, 2020 
mts <- ts(x, start = decimal_date(ymd("2020-01-22")), 
                             frequency = 365.25 / 7) 
     
# plotting the graph 
plot(mts, xlab ="Weekly Data of sales", 
          ylab ="Total Revenue", 
          main ="Sales vs Revenue",  
          col.main ="darkgreen") 
     
# saving the file  
dev.off() 

输出:

预测数据:

现在,根据历史数据预测销售额和收入。

x <- c(580, 7813, 28266, 59287, 75700,  
       87820, 95314, 126214, 218843,  
       471497, 936851, 1508725, 2072113) 
     
# library required for decimal_date() function 
library(lubridate) 
     
# library required for forecasting 
library(forecast) 
     
# output to be created as png file 
png(file ="forecastSalesRevenue.png") 
     
# creating time series object 
# from date 22 January, 2020 
mts <- ts(x, start = decimal_date(ymd("2020-01-22")), 
                            frequency = 365.25 / 7) 
     
# forecasting model using arima model 
fit <- auto.arima(mts) 
     
# Next 5 forecasted values 
forecast(fit, 5) 
     
# plotting the graph with next  
# 5 weekly forecasted values 
plot(forecast(fit, 5), xlab ="Weekly Data of Sales", 
ylab ="Total Revenue", 
main ="Sales vs Revenue", col.main ="darkgreen") 
     
# saving the file  
dev.off() 

输出: