library(readxl)
ventas_empresa <- read_excel("C:/Users/mendo/Downloads/ventas_empresa.xlsx")
View(ventas_empresa)
datos <-ventas_empresa
modelo <- lm(V ~ C + P + M, data = datos)
summary(modelo)
##
## Call:
## lm(formula = V ~ C + P + M, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -17.279 -6.966 1.555 6.721 14.719
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 107.4435 18.0575 5.950 8.08e-06 ***
## C 0.9226 0.2227 4.142 0.000505 ***
## P 0.9502 0.1558 6.097 5.86e-06 ***
## M 1.2978 0.4307 3.013 0.006872 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.506 on 20 degrees of freedom
## Multiple R-squared: 0.9798, Adjusted R-squared: 0.9768
## F-statistic: 323.6 on 3 and 20 DF, p-value: < 2.2e-16
{r}
residuos <- residuals(modelo)
hist(residuos,
main = "Histograma de Residuos",
col = "skyblue",
xlab = "Residuos")
{r}
qqnorm(residuos)
qqline(residuos, col = "red")
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
jarque.bera.test(residuos)
##
## Jarque Bera Test
##
## data: residuos
## X-squared = 1.4004, df = 2, p-value = 0.4965
{r}
densidad <- density(residuos)
plot(densidad,
main = "Densidad de los residuos",
lwd = 2)
curve(dnorm(x,
mean = mean(residuos),
sd = sd(residuos)),
add = TRUE,
col = "red",
lwd = 2)
legend("topright",
legend = c("Residuos","Normal teórica"),
col = c("black","red"),
lwd = 2)
shapiro.test(residuos)
##
## Shapiro-Wilk normality test
##
## data: residuos
## W = 0.95315, p-value = 0.3166
correlaciones <- cor(datos[, c("C","P","M")])
correlaciones
## C P M
## C 1.0000000 0.8204521 0.931240
## P 0.8204521 1.0000000 0.857916
## M 0.9312400 0.8579160 1.000000
library(corrplot)
## corrplot 0.95 loaded
corrplot(correlaciones,
method = "number",
type = "upper")
library(car)
## Cargando paquete requerido: carData
vif(modelo)
## C P M
## 7.631451 3.838911 9.449210
library(olsrr)
##
## Adjuntando el paquete: 'olsrr'
## The following object is masked from 'package:datasets':
##
## rivers
ols_eigen_cindex(modelo)
## Eigenvalue Condition Index intercept C P
## 1 3.9869237681 1.00000 0.0007213226 9.632167e-05 0.0002714936
## 2 0.0095007154 20.48523 0.8775733849 4.947488e-03 0.0877003286
## 3 0.0027882470 37.81406 0.1182991896 1.594022e-01 0.8478049007
## 4 0.0007872695 71.16349 0.0034061029 8.355540e-01 0.0642232771
## M
## 1 8.216652e-05
## 2 7.543423e-03
## 3 6.362314e-02
## 4 9.287513e-01
valores <- vif(modelo)
barplot(valores,
main = "Valores VIF",
col = "lightblue",
ylab = "VIF")
abline(h = 10,
col = "red",
lwd = 2)
{r}
plot(fitted(modelo), residuos,
main = "Residuos vs Valores Ajustados",
xlab = "Valores Ajustados",
ylab = "Residuos")
abline(h = 0,
col = "red")
library(lmtest)
## Cargando paquete requerido: zoo
##
## Adjuntando el paquete: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
bptest(modelo)
##
## studentized Breusch-Pagan test
##
## data: modelo
## BP = 0.087869, df = 3, p-value = 0.9933
plot(modelo$fitted.values,
abs(residuos),
main = "Magnitud de residuos",
xlab = "Valores ajustados",
ylab = "|Residuos|")
abline(lm(abs(residuos) ~ modelo$fitted.values),
col = "blue",
lwd = 2)
r
plot(residuos,
type = "l",
main = "Serie de residuos",
ylab = "Residuos",
xlab = "Observaciones")
abline(h = 0,
col = "red")
bgtest(modelo, order = 1)
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: modelo
## LM test = 2.5963, df = 1, p-value = 0.1071
bgtest(modelo, order = 2)
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: modelo
## LM test = 3.8409, df = 2, p-value = 0.1465
acf(residuos,
main = "Correlograma de residuos")