El dataset Dataset.
Mi objetivo principal es extraer información valiosa de este dataset financiero aplicando técnicas estadísticas sólidas. Busco entender las relaciones entre variables clave como ingresos, ganancias y deuda, no solo con gráficos descriptivos, sino mediante modelos matemáticos que capturen patrones ocultos. Quiero verificar qué factores influyen realmente en el desempeño de las empresas (como el tamaño o el sector) y cuantificar estas relaciones con intervalos de confianza.
fundamentals <- read.csv("C:/Users/samui/OneDrive/Escritorio/Estadistica/NewYork/fundamentals.csv",
header = TRUE,
sep = ",",
dec = ".",
row.names = 1)
head(fundamentals)
## Ticker.Symbol Period.Ending Accounts.Payable Accounts.Receivable
## 0 AAL 2012-12-31 3068000000 -222000000
## 1 AAL 2013-12-31 4975000000 -93000000
## 2 AAL 2014-12-31 4668000000 -160000000
## 3 AAL 2015-12-31 5102000000 352000000
## 4 AAP 2012-12-29 2409453000 -89482000
## 5 AAP 2013-12-28 2609239000 -32428000
## Add.l.income.expense.items After.Tax.ROE Capital.Expenditures Capital.Surplus
## 0 -1.961e+09 23 -1888000000 4695000000
## 1 -2.723e+09 67 -3114000000 10592000000
## 2 -1.500e+08 143 -5311000000 15135000000
## 3 -7.080e+08 135 -6151000000 11591000000
## 4 6.000e+05 32 -271182000 520215000
## 5 2.698e+06 26 -195757000 531293000
## Cash.Ratio Cash.and.Cash.Equivalents Changes.in.Inventories Common.Stocks
## 0 53 1330000000 0 1.27e+08
## 1 75 2175000000 0 5.00e+06
## 2 60 1768000000 0 7.00e+06
## 3 51 1085000000 0 6.00e+06
## 4 23 598111000 -260298000 7.00e+03
## 5 40 1112471000 -203513000 7.00e+03
## Cost.of.Revenue Current.Ratio Deferred.Asset.Charges
## 0 10499000000 78 0.000e+00
## 1 11019000000 104 0.000e+00
## 2 15620000000 88 0.000e+00
## 3 11096000000 73 2.477e+09
## 4 3106967000 124 0.000e+00
## 5 3241668000 144 0.000e+00
## Deferred.Liability.Charges Depreciation Earnings.Before.Interest.and.Tax
## 0 2.23e+08 1001000000 -1813000000
## 1 9.35e+08 1020000000 -1324000000
## 2 8.29e+08 1342000000 4099000000
## 3 6.67e+08 1487000000 5496000000
## 4 0.00e+00 189544000 657915000
## 5 0.00e+00 207795000 663016000
## Earnings.Before.Tax Effect.of.Exchange.Rate
## 0 -2445000000 0
## 1 -2180000000 0
## 2 3212000000 0
## 3 4616000000 0
## 4 624074000 0
## 5 626398000 0
## Equity.Earnings.Loss.Unconsolidated.Subsidiary Fixed.Assets Goodwill
## 0 0 13402000000 0
## 1 0 19259000000 4086000000
## 2 0 23084000000 4091000000
## 3 0 27510000000 4091000000
## 4 0 1292547000 76389000
## 5 0 1286034000 199835000
## Gross.Margin Gross.Profit Income.Tax Intangible.Assets Interest.Expense
## 0 58 14356000000 -569000000 869000000 632000000
## 1 59 15724000000 -346000000 2311000000 856000000
## 2 63 27030000000 330000000 2240000000 887000000
## 3 73 29894000000 -2994000000 2249000000 880000000
## 4 50 3098036000 236404000 28845000 33841000
## 5 50 3252146000 234640000 49872000 36618000
## Inventory Investments Liabilities Long.Term.Debt Long.Term.Investments
## 0 580000000 3.060e+08 473000000 7116000000 0
## 1 1012000000 -1.181e+09 -235000000 15353000000 0
## 2 1004000000 1.799e+09 -1026000000 16043000000 0
## 3 863000000 4.430e+08 -633000000 18330000000 0
## 4 2308609000 0.000e+00 426323000 604461000 0
## 5 2556557000 0.000e+00 172715000 1052668000 0
## Minority.Interest Misc..Stocks Net.Borrowings Net.Cash.Flow
## 0 0 0 -1020000000 197000000
## 1 0 0 2208000000 660000000
## 2 0 0 170000000 -146000000
## 3 0 0 2856000000 -604000000
## 4 0 0 177445000 540210000
## 5 0 0 445679000 514360000
## Net.Cash.Flow.Operating Net.Cash.Flows.Financing Net.Cash.Flows.Investing
## 0 1285000000 483000000 -1571000000
## 1 675000000 3799000000 -3814000000
## 2 3080000000 -315000000 -2911000000
## 3 6249000000 -1259000000 -5594000000
## 4 685281000 127907000 -272978000
## 5 545250000 331217000 -362107000
## Net.Income Net.Income.Adjustments
## 0 -1876000000 2050000000
## 1 -1834000000 1873000000
## 2 2882000000 542000000
## 3 7610000000 -2662000000
## 4 387670000 23311000
## 5 391758000 -2088000
## Net.Income.Applicable.to.Common.Shareholders Net.Income.Cont..Operations
## 0 -1876000000 -4084000000
## 1 -1834000000 -4489000000
## 2 2882000000 2882000000
## 3 7610000000 7610000000
## 4 387670000 387670000
## 5 391758000 391758000
## Net.Receivables Non.Recurring.Items Operating.Income Operating.Margin
## 0 1124000000 3.860e+08 148000000 1
## 1 1560000000 5.590e+08 1399000000 5
## 2 1771000000 8.000e+08 4249000000 10
## 3 1425000000 1.051e+09 6204000000 15
## 4 229866000 0.000e+00 657315000 11
## 5 277595000 0.000e+00 660318000 10
## Other.Assets Other.Current.Assets Other.Current.Liabilities Other.Equity
## 0 2167000000 626000000 4524000000 -2.980e+09
## 1 2299000000 1465000000 7385000000 -2.032e+09
## 2 2060000000 898000000 7059000000 -4.559e+09
## 3 2103000000 748000000 6272000000 -4.732e+09
## 4 31833000 47614000 149558000 2.667e+06
## 5 39649000 42761000 154630000 3.683e+06
## Other.Financing.Activities Other.Investing.Activities Other.Liabilities
## 0 1509000000 11000000 15147000000
## 1 1711000000 481000000 14915000000
## 2 817000000 601000000 10928000000
## 3 96000000 114000000 10178000000
## 4 -33499000 -1796000 239021000
## 5 -27209000 -166350000 231116000
## Other.Operating.Activities Other.Operating.Items Pre.Tax.Margin Pre.Tax.ROE
## 0 -141000000 8.450e+08 10 31
## 1 -56000000 8.530e+08 8 80
## 2 -500000000 1.295e+09 8 159
## 3 95000000 1.364e+09 11 82
## 4 8213000 0.000e+00 10 52
## 5 11011000 0.000e+00 10 41
## Profit.Margin Quick.Ratio Research.and.Development Retained.Earnings
## 0 8 72 0 -9462000000
## 1 7 96 0 -11296000000
## 2 7 80 0 -8562000000
## 3 19 67 0 -1230000000
## 4 6 34 0 714900000
## 5 6 52 0 1089112000
## Sale.and.Purchase.of.Stock Sales..General.and.Admin.
## 0 0 12977000000
## 1 0 12913000000
## 2 -1052000000 20686000000
## 3 -3846000000 21275000000
## 4 -18600000 2440721000
## 5 -77184000 2591828000
## Short.Term.Debt...Current.Portion.of.Long.Term.Debt Short.Term.Investments
## 0 1.419e+09 3.412e+09
## 1 1.446e+09 8.111e+09
## 2 1.677e+09 6.309e+09
## 3 2.231e+09 5.864e+09
## 4 6.270e+05 0.000e+00
## 5 9.160e+05 0.000e+00
## Total.Assets Total.Current.Assets Total.Current.Liabilities Total.Equity
## 0 23510000000 7072000000 9011000000 -7987000000
## 1 42278000000 14323000000 13806000000 -2731000000
## 2 43225000000 11750000000 13404000000 2021000000
## 3 48415000000 9985000000 13605000000 5635000000
## 4 4613814000 3184200000 2559638000 1210694000
## 5 5564774000 3989384000 2764785000 1516205000
## Total.Liabilities Total.Liabilities...Equity Total.Revenue Treasury.Stock
## 0 24891000000 16904000000 24855000000 -367000000
## 1 45009000000 42278000000 26743000000 0
## 2 41204000000 43225000000 42650000000 0
## 3 42780000000 48415000000 40990000000 0
## 4 3403120000 4613814000 6205003000 -27095000
## 5 4048569000 5564774000 6493814000 -107890000
## For.Year Earnings.Per.Share Estimated.Shares.Outstanding
## 0 2012 -5.60 335000000
## 1 2013 -11.25 163022222
## 2 2014 4.02 716915423
## 3 2015 11.39 668129939
## 4 2012 5.29 73283554
## 5 2013 5.36 73089179
str(fundamentals)
## 'data.frame': 1781 obs. of 78 variables:
## $ Ticker.Symbol : chr "AAL" "AAL" "AAL" "AAL" ...
## $ Period.Ending : chr "2012-12-31" "2013-12-31" "2014-12-31" "2015-12-31" ...
## $ Accounts.Payable : num 3.07e+09 4.97e+09 4.67e+09 5.10e+09 2.41e+09 ...
## $ Accounts.Receivable : num -2.22e+08 -9.30e+07 -1.60e+08 3.52e+08 -8.95e+07 ...
## $ Add.l.income.expense.items : num -1.96e+09 -2.72e+09 -1.50e+08 -7.08e+08 6.00e+05 ...
## $ After.Tax.ROE : num 23 67 143 135 32 26 25 19 30 35 ...
## $ Capital.Expenditures : num -1.89e+09 -3.11e+09 -5.31e+09 -6.15e+09 -2.71e+08 ...
## $ Capital.Surplus : num 4.69e+09 1.06e+10 1.51e+10 1.16e+10 5.20e+08 ...
## $ Cash.Ratio : num 53 75 60 51 23 40 3 2 93 40 ...
## $ Cash.and.Cash.Equivalents : num 1.33e+09 2.17e+09 1.77e+09 1.08e+09 5.98e+08 ...
## $ Changes.in.Inventories : num 0.0 0.0 0.0 0.0 -2.6e+08 ...
## $ Common.Stocks : num 1.27e+08 5.00e+06 7.00e+06 6.00e+06 7.00e+03 ...
## $ Cost.of.Revenue : num 1.05e+10 1.10e+10 1.56e+10 1.11e+10 3.11e+09 ...
## $ Current.Ratio : num 78 104 88 73 124 144 130 130 168 108 ...
## $ Deferred.Asset.Charges : num 0.00 0.00 0.00 2.48e+09 0.00 ...
## $ Deferred.Liability.Charges : num 2.23e+08 9.35e+08 8.29e+08 6.67e+08 0.00 ...
## $ Depreciation : num 1.00e+09 1.02e+09 1.34e+09 1.49e+09 1.90e+08 ...
## $ Earnings.Before.Interest.and.Tax : num -1.81e+09 -1.32e+09 4.10e+09 5.50e+09 6.58e+08 ...
## $ Earnings.Before.Tax : num -2.44e+09 -2.18e+09 3.21e+09 4.62e+09 6.24e+08 ...
## $ Effect.of.Exchange.Rate : num 0 0 0 0 0 ...
## $ Equity.Earnings.Loss.Unconsolidated.Subsidiary : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Fixed.Assets : num 1.34e+10 1.93e+10 2.31e+10 2.75e+10 1.29e+09 ...
## $ Goodwill : num 0.00 4.09e+09 4.09e+09 4.09e+09 7.64e+07 ...
## $ Gross.Margin : num 58 59 63 73 50 50 45 45 38 39 ...
## $ Gross.Profit : num 1.44e+10 1.57e+10 2.70e+10 2.99e+10 3.10e+09 ...
## $ Income.Tax : num -5.69e+08 -3.46e+08 3.30e+08 -2.99e+09 2.36e+08 ...
## $ Intangible.Assets : num 8.69e+08 2.31e+09 2.24e+09 2.25e+09 2.88e+07 ...
## $ Interest.Expense : num 6.32e+08 8.56e+08 8.87e+08 8.80e+08 3.38e+07 ...
## $ Inventory : num 5.80e+08 1.01e+09 1.00e+09 8.63e+08 2.31e+09 ...
## $ Investments : num 3.06e+08 -1.18e+09 1.80e+09 4.43e+08 0.00 ...
## $ Liabilities : num 4.73e+08 -2.35e+08 -1.03e+09 -6.33e+08 4.26e+08 ...
## $ Long.Term.Debt : num 7.12e+09 1.54e+10 1.60e+10 1.83e+10 6.04e+08 ...
## $ Long.Term.Investments : num 0 0 0 0 0 ...
## $ Minority.Interest : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Misc..Stocks : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Net.Borrowings : num -1.02e+09 2.21e+09 1.70e+08 2.86e+09 1.77e+08 ...
## $ Net.Cash.Flow : num 1.97e+08 6.60e+08 -1.46e+08 -6.04e+08 5.40e+08 ...
## $ Net.Cash.Flow.Operating : num 1.28e+09 6.75e+08 3.08e+09 6.25e+09 6.85e+08 ...
## $ Net.Cash.Flows.Financing : num 4.83e+08 3.80e+09 -3.15e+08 -1.26e+09 1.28e+08 ...
## $ Net.Cash.Flows.Investing : num -1.57e+09 -3.81e+09 -2.91e+09 -5.59e+09 -2.73e+08 ...
## $ Net.Income : num -1.88e+09 -1.83e+09 2.88e+09 7.61e+09 3.88e+08 ...
## $ Net.Income.Adjustments : num 2.05e+09 1.87e+09 5.42e+08 -2.66e+09 2.33e+07 ...
## $ Net.Income.Applicable.to.Common.Shareholders : num -1.88e+09 -1.83e+09 2.88e+09 7.61e+09 3.88e+08 ...
## $ Net.Income.Cont..Operations : num -4.08e+09 -4.49e+09 2.88e+09 7.61e+09 3.88e+08 ...
## $ Net.Receivables : num 1.12e+09 1.56e+09 1.77e+09 1.42e+09 2.30e+08 ...
## $ Non.Recurring.Items : num 3.86e+08 5.59e+08 8.00e+08 1.05e+09 0.00 ...
## $ Operating.Income : num 1.48e+08 1.40e+09 4.25e+09 6.20e+09 6.57e+08 ...
## $ Operating.Margin : num 1 5 10 15 11 10 9 8 29 29 ...
## $ Other.Assets : num 2.17e+09 2.30e+09 2.06e+09 2.10e+09 3.18e+07 ...
## $ Other.Current.Assets : num 6.26e+08 1.46e+09 8.98e+08 7.48e+08 4.76e+07 ...
## $ Other.Current.Liabilities : num 4.52e+09 7.38e+09 7.06e+09 6.27e+09 1.50e+08 ...
## $ Other.Equity : num -2.98e+09 -2.03e+09 -4.56e+09 -4.73e+09 2.67e+06 ...
## $ Other.Financing.Activities : num 1.51e+09 1.71e+09 8.17e+08 9.60e+07 -3.35e+07 ...
## $ Other.Investing.Activities : num 11000000 481000000 601000000 114000000 -1796000 ...
## $ Other.Liabilities : num 1.51e+10 1.49e+10 1.09e+10 1.02e+10 2.39e+08 ...
## $ Other.Operating.Activities : num -1.41e+08 -5.60e+07 -5.00e+08 9.50e+07 8.21e+06 ...
## $ Other.Operating.Items : num 8.45e+08 8.53e+08 1.29e+09 1.36e+09 0.00 ...
## $ Pre.Tax.Margin : num 10 8 8 11 10 10 8 8 29 29 ...
## $ Pre.Tax.ROE : num 31 80 159 82 52 41 39 31 41 48 ...
## $ Profit.Margin : num 8 7 7 19 6 6 5 5 22 22 ...
## $ Quick.Ratio : num 72 96 80 67 34 52 22 20 164 105 ...
## $ Research.and.Development : num 0 0 0 0 0 ...
## $ Retained.Earnings : num -9.46e+09 -1.13e+10 -8.56e+09 -1.23e+09 7.15e+08 ...
## $ Sale.and.Purchase.of.Stock : num 0.00 0.00 -1.05e+09 -3.85e+09 -1.86e+07 ...
## $ Sales..General.and.Admin. : num 1.30e+10 1.29e+10 2.07e+10 2.13e+10 2.44e+09 ...
## $ Short.Term.Debt...Current.Portion.of.Long.Term.Debt: num 1.42e+09 1.45e+09 1.68e+09 2.23e+09 6.27e+05 ...
## $ Short.Term.Investments : num 3.41e+09 8.11e+09 6.31e+09 5.86e+09 0.00 ...
## $ Total.Assets : num 2.35e+10 4.23e+10 4.32e+10 4.84e+10 4.61e+09 ...
## $ Total.Current.Assets : num 7.07e+09 1.43e+10 1.18e+10 9.98e+09 3.18e+09 ...
## $ Total.Current.Liabilities : num 9.01e+09 1.38e+10 1.34e+10 1.36e+10 2.56e+09 ...
## $ Total.Equity : num -7.99e+09 -2.73e+09 2.02e+09 5.63e+09 1.21e+09 ...
## $ Total.Liabilities : num 2.49e+10 4.50e+10 4.12e+10 4.28e+10 3.40e+09 ...
## $ Total.Liabilities...Equity : num 1.69e+10 4.23e+10 4.32e+10 4.84e+10 4.61e+09 ...
## $ Total.Revenue : num 2.49e+10 2.67e+10 4.26e+10 4.10e+10 6.21e+09 ...
## $ Treasury.Stock : num -3.67e+08 0.00 0.00 0.00 -2.71e+07 ...
## $ For.Year : num 2012 2013 2014 2015 2012 ...
## $ Earnings.Per.Share : num -5.6 -11.25 4.02 11.39 5.29 ...
## $ Estimated.Shares.Outstanding : num 3.35e+08 1.63e+08 7.17e+08 6.68e+08 7.33e+07 ...
Seleccioné únicamente las columnas más relevantes para el análisis, eliminé las filas con datos faltantes y convertí la columna de fecha a un formato adecuado. Así dejé los datos listos para trabajar.
# Seleccionar columnas relevantes
columnas_seleccionadas <- c("Ticker.Symbol", "Period.Ending", "Total.Revenue",
"Net.Income", "Earnings.Per.Share", "Total.Assets",
"Total.Liabilities" , "Net.Cash.Flow.Operating" )
fundamentals <- fundamentals[, columnas_seleccionadas]
# Eliminar filas con valores NA
fundamentals <- na.omit(fundamentals)
# Convertir fechas a formato Date
fundamentals$Period.Ending <- as.Date(fundamentals$Period.Ending)
# Ver estructura final
str(fundamentals)
## 'data.frame': 1562 obs. of 8 variables:
## $ Ticker.Symbol : chr "AAL" "AAL" "AAL" "AAL" ...
## $ Period.Ending : Date, format: "2012-12-31" "2013-12-31" ...
## $ Total.Revenue : num 2.49e+10 2.67e+10 4.26e+10 4.10e+10 6.21e+09 ...
## $ Net.Income : num -1.88e+09 -1.83e+09 2.88e+09 7.61e+09 3.88e+08 ...
## $ Earnings.Per.Share : num -5.6 -11.25 4.02 11.39 5.29 ...
## $ Total.Assets : num 2.35e+10 4.23e+10 4.32e+10 4.84e+10 4.61e+09 ...
## $ Total.Liabilities : num 2.49e+10 4.50e+10 4.12e+10 4.28e+10 3.40e+09 ...
## $ Net.Cash.Flow.Operating: num 1.28e+09 6.75e+08 3.08e+09 6.25e+09 6.85e+08 ...
## - attr(*, "na.action")= 'omit' Named int [1:219] 13 28 33 52 57 68 72 89 92 96 ...
## ..- attr(*, "names")= chr [1:219] "12" "27" "32" "51" ...
summary(fundamentals)
## Ticker.Symbol Period.Ending Total.Revenue
## Length:1562 Min. :2012-03-03 Min. :4.094e+08
## Class :character 1st Qu.:2013-12-31 1st Qu.:3.707e+09
## Mode :character Median :2014-12-31 Median :8.073e+09
## Mean :2014-09-14 Mean :2.077e+10
## 3rd Qu.:2015-12-31 3rd Qu.:1.763e+10
## Max. :2016-10-31 Max. :4.857e+11
## Net.Income Earnings.Per.Share Total.Assets
## Min. :-2.353e+10 Min. :-61.200 Min. :1.104e+09
## 1st Qu.: 3.556e+08 1st Qu.: 1.590 1st Qu.:6.688e+09
## Median : 6.892e+08 Median : 2.810 Median :1.503e+10
## Mean : 1.748e+09 Mean : 3.354 Mean :5.751e+10
## 3rd Qu.: 1.694e+09 3rd Qu.: 4.590 3rd Qu.:3.621e+10
## Max. : 5.339e+10 Max. : 50.090 Max. :2.572e+12
## Total.Liabilities Net.Cash.Flow.Operating
## Min. :2.320e+08 Min. :-1.606e+10
## 1st Qu.:3.904e+09 1st Qu.: 6.787e+08
## Median :9.105e+09 Median : 1.233e+09
## Mean :4.538e+10 Mean : 3.342e+09
## 3rd Qu.:2.436e+10 3rd Qu.: 3.045e+09
## Max. :2.341e+12 Max. : 1.080e+11
Calculo dos indicadores clave: el margen de beneficio y el ratio de endeudamiento. Además, clasifiqué a las empresas en categorías de tamaño (pequeña, mediana y grande) según sus activos totales.
# Calcular margen de beneficio neto
fundamentals$Profit.Margin <- fundamentals$Net.Income / fundamentals$Total.Revenue * 100
# Calcular ratio de endeudamiento
fundamentals$Debt.Ratio <- fundamentals$Total.Liabilities / fundamentals$Total.Assets * 100
# Crear categoría de tamaño por activos
fundamentals$Size.Category <- cut(fundamentals$Total.Assets,
breaks = quantile(fundamentals$Total.Assets, probs = c(0, 0.33, 0.66, 1)),
labels = c("Pequena", "Mediana", "Grande"),
include.lowest = TRUE)
Visualicé las nuevas variables que generé y clasifiqué los valores de Earnings Per Share (EPS) en cuatro categorías cualitativas, negativo, bajo, medio y alto. Esto me permitió explorar la distribución de desempeño financiero.
# Ver nuevas columnas
head(fundamentals[, c("Ticker.Symbol", "Profit.Margin", "Debt.Ratio", "Size.Category")])
## Ticker.Symbol Profit.Margin Debt.Ratio Size.Category
## 0 AAL -7.547777 105.87410 Mediana
## 1 AAL -6.857869 106.45962 Grande
## 2 AAL 6.757327 95.32447 Grande
## 3 AAL 18.565504 88.36105 Grande
## 4 AAP 6.247700 73.75937 Pequena
## 5 AAP 6.032788 72.75352 Pequena
# Recodificar EPS en categorías
fundamentals$EPS.Category <- cut(fundamentals$Earnings.Per.Share,
breaks = c(-Inf, 0, 2, 5, Inf),
labels = c("Negativo", "Bajo", "Medio", "Alto"))
# Ver distribución
table(fundamentals$EPS.Category)
##
## Negativo Bajo Medio Alto
## 86 442 710 324
Filtré las empresas que muestran un alto margen de beneficio y baja deuda, lo que considero señales de buena salud financiera. Luego mostré algunas de estas empresas en una tabla.
# Filtrar empresas con alto margen de beneficio y baja deuda
library(dplyr)
empresas_saludables <- fundamentals %>%
filter(Profit.Margin > 15, Debt.Ratio < 50)
# Ver empresas resultantes
library(knitr)
kable(head(empresas_saludables))
| Ticker.Symbol | Period.Ending | Total.Revenue | Net.Income | Earnings.Per.Share | Total.Assets | Total.Liabilities | Net.Cash.Flow.Operating | Profit.Margin | Debt.Ratio | Size.Category | EPS.Category |
|---|---|---|---|---|---|---|---|---|---|---|---|
| AAPL | 2013-09-28 | 170910000000 | 37037000000 | 40.03 | 207000000000 | 83451000000 | 53666000000 | 21.67047 | 40.31449 | Grande | Alto |
| ABT | 2015-12-31 | 20405000000 | 4423000000 | 2.94 | 41247000000 | 20036000000 | 2966000000 | 21.67606 | 48.57565 | Grande | Medio |
| ADI | 2013-11-02 | 2633689000 | 673487000 | 2.19 | 6381750000 | 1642174000 | 912345000 | 25.57200 | 25.73235 | Pequena | Medio |
| ADI | 2014-11-01 | 2864773000 | 629320000 | 0.35 | 6859690000 | 2101793000 | 871602000 | 21.96753 | 30.63977 | Pequena | Bajo |
| ADI | 2015-10-31 | 3435092000 | 696878000 | 0.31 | 7058777000 | 1985818000 | 907798000 | 20.28703 | 28.13261 | Pequena | Bajo |
| ADI | 2016-10-29 | 3421409000 | 861664000 | 0.96 | 7970278000 | 2804660000 | 1280895000 | 25.18448 | 35.18899 | Pequena | Bajo |
Generé estadísticas básicas (como media, mínimo y máximo) de variables clave como ingresos, ganancias y EPS, para tener una visión general de los datos.
# Estadísticos generales
kable(summary(fundamentals[, c("Total.Revenue", "Net.Income", "Earnings.Per.Share")]))
| Total.Revenue | Net.Income | Earnings.Per.Share | |
|---|---|---|---|
| Min. :4.094e+08 | Min. :-2.353e+10 | Min. :-61.200 | |
| 1st Qu.:3.707e+09 | 1st Qu.: 3.556e+08 | 1st Qu.: 1.590 | |
| Median :8.073e+09 | Median : 6.892e+08 | Median : 2.810 | |
| Mean :2.077e+10 | Mean : 1.748e+09 | Mean : 3.354 | |
| 3rd Qu.:1.763e+10 | 3rd Qu.: 1.694e+09 | 3rd Qu.: 4.590 | |
| Max. :4.857e+11 | Max. : 5.339e+10 | Max. : 50.090 |
Agrupé las empresas según su tamaño y calculé promedios de ingresos, beneficios, EPS y margen de ganancia. Esto me ayudó a comparar el desempeño entre empresas grandes, medianas y pequeñas.
# Estadísticos por categoría de tamaño
fundamentals %>%
group_by(Size.Category) %>%
summarise(
n = n(),
Avg.Revenue = mean(Total.Revenue/1e6, na.rm = TRUE),
Avg.Income = mean(Net.Income/1e6, na.rm = TRUE),
Avg.EPS = mean(Earnings.Per.Share, na.rm = TRUE),
Avg.Profit.Margin = mean(Profit.Margin, na.rm = TRUE)
) %>%
kable(digits = 2)
| Size.Category | n | Avg.Revenue | Avg.Income | Avg.EPS | Avg.Profit.Margin |
|---|---|---|---|---|---|
| Pequena | 516 | 4714.76 | 410.16 | 3.17 | 10.42 |
| Mediana | 515 | 10740.45 | 779.40 | 3.25 | 10.46 |
| Grande | 531 | 46106.21 | 3986.73 | 3.63 | 10.76 |
Creo un diagrama de barras que muestra cómo se distribuyen las categorías de EPS según el tamaño de las empresas, lo que me permitió identificar patrones visuales entre los grupos.
# Distribución de categorías EPS
library(ggplot2)
ggplot(fundamentals, aes(x = EPS.Category, fill = Size.Category))+
geom_bar(position = "dodge")+
labs(title = "Distribucion de EPS por Categoria de Tamano",
x = "Categoria de EPS",
y = "Numero de Empresas",
fill = "Tamano") +
theme_minimal()
Hice un histograma del margen de beneficio para observar cómo varía esta métrica entre todas las empresas y detectar valores extremos o tendencias generales.
# Distribución de márgenes de beneficio
ggplot(fundamentals, aes(x = Profit.Margin)) +
geom_histogram(bins = 30, fill = "steelblue", color = "white")+
labs(title = "Distribucion del Margen de Beneficio",
x = "Margen de Beneficio (%)",
y = "Frecuencia")+
theme_minimal() +
xlim(-100, 100)
Usé un diagrama de caja (boxplot) para comparar las distribuciones de EPS entre empresas pequeñas, medianas y grandes, y así ver diferencias en su desempeño financiero.
# EPS por categoría de tamaño
ggplot(fundamentals, aes(x = Size.Category, y = Earnings.Per.Share)) +
geom_boxplot(fill = "lightblue") +
labs(title = "Distribucion de EPS por Categoria de Tamano",
x = "Categoria de Tamano",
y = "Earnings Per Share (USD)") +
theme_minimal() +
ylim(-5, 15)
Ajusté un modelo lineal para analizar la relación entre los ingresos totales y el beneficio neto. Observé los resultados del modelo y los representé gráficamente con una línea de ajuste.
# Relación entre ingresos y beneficios
modelo_lineal <- lm(Net.Income ~ Total.Revenue, data = fundamentals)
summary(modelo_lineal)
##
## Call:
## lm(formula = Net.Income ~ Total.Revenue, data = fundamentals)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.433e+10 -4.724e+08 -1.920e+08 2.194e+08 3.760e+10
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.777e+08 8.715e+07 4.334 1.56e-05 ***
## Total.Revenue 6.595e-02 1.845e-03 35.749 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.094e+09 on 1560 degrees of freedom
## Multiple R-squared: 0.4503, Adjusted R-squared: 0.45
## F-statistic: 1278 on 1 and 1560 DF, p-value: < 2.2e-16
# Gráfico
ggplot(fundamentals, aes(x = Total.Revenue/1e6, y = Net.Income/1e6)) +
geom_point(alpha = 0.5) +
geom_smooth(method = "lm", color = "red") +
labs(title = "Relacion entre Ingresos Totales y Beneficio Neto",
x = "Ingresos Totales (millones USD)",
y = "Beneficio Neto (millones USD)") +
theme_minimal()
Ajusté un modelo lineal para analizar la relación entre los ingresos totales y el beneficio neto. Observé los resultados del modelo y los representé gráficamente con una línea de ajuste.
# Modelo por categorías de tamaño
modelo_grupos <- lm(Net.Income ~ Total.Revenue * Size.Category, data = fundamentals)
summary(modelo_grupos)
##
## Call:
## lm(formula = Net.Income ~ Total.Revenue * Size.Category, data = fundamentals)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.422e+10 -4.349e+08 -6.427e+07 2.616e+08 3.775e+10
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.101e+08 2.221e+08 0.946 0.344419
## Total.Revenue 4.244e-02 3.751e-02 1.131 0.258079
## Size.CategoryMediana 3.562e+08 2.907e+08 1.226 0.220523
## Size.CategoryGrande 9.120e+08 2.754e+08 3.312 0.000948 ***
## Total.Revenue:Size.CategoryMediana -2.260e-02 3.943e-02 -0.573 0.566656
## Total.Revenue:Size.CategoryGrande 1.969e-02 3.757e-02 0.524 0.600202
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.053e+09 on 1556 degrees of freedom
## Multiple R-squared: 0.4661, Adjusted R-squared: 0.4644
## F-statistic: 271.7 on 5 and 1556 DF, p-value: < 2.2e-16
Exploré también un modelo polinomial de segundo grado para capturar relaciones más complejas entre ingresos y beneficios que el modelo lineal no logra reflejar.
# Modelo polinomial
modelo_polinomial <- lm(Net.Income ~ poly(Total.Revenue, 2), data = fundamentals)
summary(modelo_polinomial)
##
## Call:
## lm(formula = Net.Income ~ poly(Total.Revenue, 2), data = fundamentals)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.417e+10 -3.613e+08 6.364e+06 3.269e+08 3.673e+10
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.748e+09 7.704e+07 22.685 < 2e-16 ***
## poly(Total.Revenue, 2)1 1.106e+11 3.045e+09 36.319 < 2e-16 ***
## poly(Total.Revenue, 2)2 -2.178e+10 3.045e+09 -7.154 1.29e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.045e+09 on 1559 degrees of freedom
## Multiple R-squared: 0.4678, Adjusted R-squared: 0.4671
## F-statistic: 685.1 on 2 and 1559 DF, p-value: < 2.2e-16
Comparé visualmente los modelos lineal y polinomial en un mismo gráfico, lo que me permitió ver cuál se ajusta mejor a los datos reales.
# Comparación visual
ggplot(fundamentals, aes(x = Total.Revenue/1e6, y = Net.Income/1e6)) +
geom_point(alpha = 0.3) +
geom_smooth(method = "lm", formula = y ~ poly(x, 2), color = "blue") +
geom_smooth(method = "lm", color = "red", linetype = "dashed") +
labs(title = "Comparacion de Modelos Lineal y Polinomial",
x = "Ingresos Totales (millones USD)",
y = "Beneficio Neto (millones USD)") +
theme_minimal()
Finalmente, usé el modelo polinomial para predecir beneficios en función de distintos niveles de ingresos. Representé las predicciones en un gráfico junto con los datos reales para visualizar la tendencia.
# Crear datos para predicción
nuevos_datos <- data.frame(Total.Revenue = seq(min(fundamentals$Total.Revenue),
max(fundamentals$Total.Revenue),
length.out = 100))
# Hacer predicciones
nuevos_datos$Prediccion <- predict(modelo_polinomial, newdata = nuevos_datos)
# Visualizar
ggplot() +
geom_point(data = fundamentals,
aes(x = Total.Revenue/1e6, y = Net.Income/1e6), alpha = 0.3) +
geom_line(data = nuevos_datos,
aes(x = Total.Revenue/1e6, y = Prediccion/1e6), color = "blue", size = 1) +
labs(title = "Prediccion de Beneficio Neto segun Ingresos",
x = "Ingresos Totales (millones USD)",
y = "Beneficio Neto Predicho (millones USD)") +
theme_minimal()