library(finreportr)
library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.4
## ✔ tibble 3.1.6 ✔ dplyr 1.0.8
## ✔ tidyr 1.2.0 ✔ stringr 1.4.0
## ✔ readr 2.1.2 ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
options(HTTPUserAgent = "a a@gmail.com")
CompanyInfo("MSFT")
## company CIK SIC state state.inc FY.end street.address
## 1 MICROSOFT CORP 0000789019 7372 WA WA 0630 ONE MICROSOFT WAY
## city.state
## 1 REDMOND WA 98052-6399
AnnualReports("MSFT")
## filing.name filing.date accession.no
## 1 10-K 2023-07-27 0000950170-23-035122
## 2 10-K 2022-07-28 0001564590-22-026876
## 3 10-K 2021-07-29 0001564590-21-039151
## 4 10-K 2020-07-30 0001564590-20-034944
## 5 10-K 2019-08-01 0001564590-19-027952
## 6 10-K 2018-08-03 0001564590-18-019062
## 7 10-K 2017-08-02 0001564590-17-014900
## 8 10-K 2016-07-28 0001193125-16-662209
## 9 10-K 2015-07-31 0001193125-15-272806
## 10 10-K 2014-07-31 0001193125-14-289961
## 11 10-K 2013-07-30 0001193125-13-310206
## 12 10-K 2012-07-26 0001193125-12-316848
## 13 10-K 2011-07-28 0001193125-11-200680
## 14 10-K 2010-07-30 0001193125-10-171791
## 15 10-K 2009-07-30 0001193125-09-158735
## 16 10-K 2008-07-31 0001193125-08-162768
## 17 10-K 2007-08-03 0001193125-07-170817
## 18 10-K 2006-08-25 0001193125-06-180008
## 19 10-K 2005-08-26 0001193125-05-174825
## 20 10-K 2004-09-01 0001193125-04-150689
## 21 10-K 2003-09-05 0001193125-03-045632
## 22 10-K 2002-09-06 0001032210-02-001351
## 23 10-K 2001-09-18 0001032210-01-501099
## 24 10-K 2000-09-28 0001032210-00-001961
## 25 10-K 1999-09-28 0001032210-99-001375
## 26 10-K 1998-09-25 0001032210-98-001067
## 27 10-K 1997-09-29 0001017062-97-001764
## 28 10-K 1996-09-27 0000891020-96-001130
## 29 10-K 1995-09-25 0000891020-95-000433
## 30 10-K 1994-09-27 0000891020-94-000175
msft_income <- GetIncome("MSFT", 2017)
msft_income2 <- GetIncome("MSFT", 2014)
resultado <- rbind(msft_income,msft_income2)
str(resultado)
## 'data.frame': 221 obs. of 5 variables:
## $ Metric : chr "Sales Revenue Goods Net" "Sales Revenue Goods Net" "Sales Revenue Goods Net" "Sales Revenue Services And Other Net" ...
## $ Units : chr "U_iso4217USD" "U_iso4217USD" "U_iso4217USD" "U_iso4217USD" ...
## $ Amount : chr "75956000000" "61502000000" "57190000000" "17624000000" ...
## $ startDate: chr "2014-07-01" "2015-07-01" "2016-07-01" "2014-07-01" ...
## $ endDate : chr "2015-06-30" "2016-06-30" "2017-06-30" "2015-06-30" ...
resultado$startDate <- as.Date(resultado$startDate)
resultado$endDate <- as.Date(resultado$endDate)
resultado$Amount <- as.numeric(resultado$Amount)
str(resultado)
## 'data.frame': 221 obs. of 5 variables:
## $ Metric : chr "Sales Revenue Goods Net" "Sales Revenue Goods Net" "Sales Revenue Goods Net" "Sales Revenue Services And Other Net" ...
## $ Units : chr "U_iso4217USD" "U_iso4217USD" "U_iso4217USD" "U_iso4217USD" ...
## $ Amount : num 7.60e+10 6.15e+10 5.72e+10 1.76e+10 2.38e+10 ...
## $ startDate: Date, format: "2014-07-01" "2015-07-01" ...
## $ endDate : Date, format: "2015-06-30" "2016-06-30" ...
resultado_income <- resultado[resultado$Metric=="Sales Revenue Net",]
resultado_income <- resultado_income[order(resultado_income$startDate), ]
resultado_income<-resultado_income[c(1,2,7,12,14,19), ]
resultado_income<-select(resultado_income,Amount,startDate)
ts <- ts(data=log(resultado_income$Amount), start = c(2011,1), frequency=1)
ts
## Time Series:
## Start = 2011
## End = 2016
## Frequency = 1
## [1] 25.02358 25.07804 25.18725 25.26208 25.16967 25.22252
arima <- auto.arima(ts, D = 1)
arima
## Series: ts
## ARIMA(0,0,0) with non-zero mean
##
## Coefficients:
## mean
## 25.1572
## s.e. 0.0335
##
## sigma^2 = 0.008089: log likelihood = 6.48
## AIC=-8.97 AICc=-4.97 BIC=-9.39
pronostico <- forecast(arima, h=5)
pronostico
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## 2017 25.15719 25.04193 25.27245 24.98091 25.33347
## 2018 25.15719 25.04193 25.27245 24.98091 25.33347
## 2019 25.15719 25.04193 25.27245 24.98091 25.33347
## 2020 25.15719 25.04193 25.27245 24.98091 25.33347
## 2021 25.15719 25.04193 25.27245 24.98091 25.33347
plot(pronostico)
# Conclusión Después de analizar el modelo y el pronóstico
desarrollados, llegamos a la conclusión de que la variable elegida Sales
Revenue Net no es la más adecuada para el modelo ARIMA. Además, es
necesario más adelante conocer como ajustar los parámetros del modelo
para obtener un resultado óptimo. Esto lo sabemos ya que la gráfica
generada muestra un pronóstico muy lineal para los próximos años.
Mejorar esta situación permitiría tener una visión más detallada de la
situación de la Microsoft en los años siguientes. Finalmente podemos
decir que para Microsoft como para diferentes empresas es importante
reconocer la importancia el uso de diferentes modelos como ARIMA y
generar pronósticos para saber como actuar.