# Carregar o pacote necessário
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
set.seed(2024)
# Criar um conjunto de dados fictício
dados <- data.frame(
ID_CLIENTE=sample(1:88, 88, replace = FALSE),
Ho_Sem_Net = sample(1:120, 88, replace = T),
Ho_OS_Aberto = sample(1:200, 88, replace = T),
QTD_REINCIDENCIAS=sample(1:30, 88, replace = T),
QTD_DIAS_Lt_OS=sample(0:90, 88, replace = T)
)
#install.packages("readxl")
library("readxl")
## Warning: package 'readxl' was built under R version 4.3.2
ABERT_FECH_OS <- read_xlsx("ABERT_FECH_OS.xlsx")
ABERT_FECH_OS=ABERT_FECH_OS[,c(1,2,9)]
attach(ABERT_FECH_OS)
# install.packages("tidyverse")
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.2
## Warning: package 'tidyr' was built under R version 4.3.1
## Warning: package 'readr' was built under R version 4.3.1
## Warning: package 'purrr' was built under R version 4.3.1
## Warning: package 'dplyr' was built under R version 4.3.1
## Warning: package 'stringr' was built under R version 4.3.2
## Warning: package 'forcats' was built under R version 4.3.1
## Warning: package 'lubridate' was built under R version 4.3.1
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
set.seed(2021)
# Remova linhas duplicadas e selecione apenas duas colunas
df_resultado <- ABERT_FECH_OS %>%
distinct(id_tipo_ordem_servico, descricao, .keep_all = TRUE)
TB=table(df_resultado$id_tipo_ordem_servico);TB
##
## 4 5 6 7 76 1232 3152 3153 3154 3155 3156 3268 3275 3286 3287 3447
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 3482 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3542
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3560
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 3561 3562 3563 3564 3565 3566 3567 3568
## 1 1 1 1 1 1 1 1
df_resultado
## # A tibble: 88 × 3
## id_tipo_ordem_servico descricao id_prioridade
## <dbl> <chr> <dbl>
## 1 3561 06.20 INFRA - CIRCUITO DE MONITORAMENTO 4
## 2 3562 06.21 INFRA - ROMPIMENTO FTTH /INFRA - R… 4
## 3 3286 PROJETOS - CERTIFICAÇÃO 4
## 4 3287 CORRETIVA-ESTOQUE 4
## 5 3563 06.22 INFRA - PREVENTIVA SITE 4
## 6 3565 TESTE- NÃO USAR 4
## 7 3275 06.01 INFRA - AMPLIAÇÃO DE REDE 4
## 8 3564 04.03 CERTIFICAÇÃO DE CTO 4
## 9 3566 04.04 CERTIFICAÇÃO ALLREDE 4
## 10 3529 05.02 B2B - MUDANÇA DE ENDEREÇO 4
## # ℹ 78 more rows
#Selecionando TIPO OS ALETORIAMENTE
t <- df_resultado[sample(nrow(df_resultado), 88, replace = TRUE), , drop = FALSE]
t$id_prioridade=sample(1:10, 88, replace = T)
names(dados)
## [1] "ID_CLIENTE" "Ho_Sem_Net" "Ho_OS_Aberto"
## [4] "QTD_REINCIDENCIAS" "QTD_DIAS_Lt_OS"
DadosTModelo=data.frame(t,dados)
head(DadosTModelo)
## id_tipo_ordem_servico descricao id_prioridade
## 1 3275 06.01 INFRA - AMPLIAÇÃO DE REDE 5
## 2 3506 02.12 MIGRAÇÃO DE TECNOLOGIA 3
## 3 3523 03.04 ENTREGA DE EQUIPAMENTO 10
## 4 3526 04.02 VIABILIDADE 7
## 5 3533 05.06 MUDANÇA DE TITULARIDADE 9
## 6 3549 06.10 INFRA - ANÁLISE OTDR 7
## ID_CLIENTE Ho_Sem_Net Ho_OS_Aberto QTD_REINCIDENCIAS QTD_DIAS_Lt_OS
## 1 66 79 172 15 37
## 2 37 112 36 4 71
## 3 45 59 19 15 82
## 4 60 77 152 17 84
## 5 17 96 163 20 71
## 6 32 39 37 27 30
attach(DadosTModelo)
## The following objects are masked from ABERT_FECH_OS:
##
## descricao, id_prioridade, id_tipo_ordem_servico
#Simulando o modelo
#Calculo do Coeficiente
# Pontos dados
x1 <- 0
y1 <- 0
x2 <- 31
y2 <- 100
# Calcular a inclinação (m)
m <- (y2 - y1) / (x2 - x1)
# Calcular o intercepto (b)
b <- (y2 - y1) / (x2 - x1)
# Exibir os resultados
cat("Inclinação (m):", m, "\n")
## Inclinação (m): 3.225806
cat("Intercepto (b):", b, "\n")
## Intercepto (b): 3.225806
#Simulando o modelo
# Coeficientes
b <- m
c <- b
b;c
## [1] 3.225806
## [1] 3.225806
# ATRIBUIÇÃO DE PRIORIDADES PARA TIPO DE OS
X3=ifelse(dados$TipoOS =="LOS",1,
ifelse(dados$TipoOS =="LOW",5,6))
# Calcular os Pontos_Prioridade usando o modelo
DadosTModelo$Pontos_Prioridade <-(
0 + b * (Ho_Sem_Net +Ho_OS_Aberto +QTD_REINCIDENCIAS+QTD_DIAS_Lt_OS))/id_prioridade
TabelaOS=data.frame(TipoOS=c("LOS","LOW","INSTALACAO"))
TabelaOS$Pont_OS=ifelse(TabelaOS$TipoOS =="LOS",1,
ifelse(TabelaOS$TipoOS =="LOW",5,6))
TabelaOS
## TipoOS Pont_OS
## 1 LOS 1
## 2 LOW 5
## 3 INSTALACAO 6
attach(dados[,-4])
## The following objects are masked from DadosTModelo:
##
## Ho_OS_Aberto, Ho_Sem_Net, ID_CLIENTE, QTD_DIAS_Lt_OS
# Visualizar os resultados
head(DadosTModelo)
## id_tipo_ordem_servico descricao id_prioridade
## 1 3275 06.01 INFRA - AMPLIAÇÃO DE REDE 5
## 2 3506 02.12 MIGRAÇÃO DE TECNOLOGIA 3
## 3 3523 03.04 ENTREGA DE EQUIPAMENTO 10
## 4 3526 04.02 VIABILIDADE 7
## 5 3533 05.06 MUDANÇA DE TITULARIDADE 9
## 6 3549 06.10 INFRA - ANÁLISE OTDR 7
## ID_CLIENTE Ho_Sem_Net Ho_OS_Aberto QTD_REINCIDENCIAS QTD_DIAS_Lt_OS
## 1 66 79 172 15 37
## 2 37 112 36 4 71
## 3 45 59 19 15 82
## 4 60 77 152 17 84
## 5 17 96 163 20 71
## 6 32 39 37 27 30
## Pontos_Prioridade
## 1 195.48387
## 2 239.78495
## 3 56.45161
## 4 152.07373
## 5 125.44803
## 6 61.29032
# Carregue a biblioteca ggplot2
library(ggplot2)
QTD_OS=table(dados$TipoOS)
QTD_OS
## < table of extent 0 >
ResiduosML=lm(formula = DadosTModelo$id_prioridade ~ ., data = DadosTModelo[,-c(1, 2, 4)])
shapiro.test(rstandard(ResiduosML))
##
## Shapiro-Wilk normality test
##
## data: rstandard(ResiduosML)
## W = 0.95328, p-value = 0.003075
require(car)
## Carregando pacotes exigidos: car
## Warning: package 'car' was built under R version 4.3.1
## Carregando pacotes exigidos: carData
## Warning: package 'carData' was built under R version 4.3.1
##
## Attaching package: 'car'
##
## The following object is masked from 'package:dplyr':
##
## recode
##
## The following object is masked from 'package:purrr':
##
## some
vif(ResiduosML)
## Ho_Sem_Net Ho_OS_Aberto QTD_REINCIDENCIAS QTD_DIAS_Lt_OS
## 1.122683 1.054280 1.014987 1.081070
## Pontos_Prioridade
## 1.120752
plot(ResiduosML, 1:4)
Testando=DadosTModelo[,-c(1, 2, 4)]
# Melhor modelo - valores dist cook
ResiduosML=ResiduosML=lm(formula = Testando$Pontos_Prioridade ~factor(Testando$id_prioridade)+Testando$Ho_Sem_Net+Testando$Ho_OS_Aberto+Testando$QTD_REINCIDENCIAS+Testando$QTD_DIAS_Lt_OS, data =Testando)
shapiro.test(rstandard(ResiduosML))
##
## Shapiro-Wilk normality test
##
## data: rstandard(ResiduosML)
## W = 0.76498, p-value = 1.504e-10
require(car)
vif(ResiduosML)
## GVIF Df GVIF^(1/(2*Df))
## factor(Testando$id_prioridade) 1.527875 9 1.023828
## Testando$Ho_Sem_Net 1.127809 1 1.061984
## Testando$Ho_OS_Aberto 1.163485 1 1.078649
## Testando$QTD_REINCIDENCIAS 1.077247 1 1.037905
## Testando$QTD_DIAS_Lt_OS 1.292851 1 1.137036
plot(ResiduosML, 1:4)
ResiduosML2=ResiduosML=lm(formula = Testando$Pontos_Prioridade ~factor(Testando$id_prioridade)+Testando$Ho_Sem_Net+Testando$Ho_OS_Aberto+Testando$QTD_REINCIDENCIAS+Testando$QTD_DIAS_Lt_OS, data=Testando)
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.3.1
## Carregando pacotes exigidos: zoo
## Warning: package 'zoo' was built under R version 4.3.1
##
## Attaching package: 'zoo'
##
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
shapiro.test(rstandard(ResiduosML2))
##
## Shapiro-Wilk normality test
##
## data: rstandard(ResiduosML2)
## W = 0.76498, p-value = 1.504e-10
vif(ResiduosML)
## GVIF Df GVIF^(1/(2*Df))
## factor(Testando$id_prioridade) 1.527875 9 1.023828
## Testando$Ho_Sem_Net 1.127809 1 1.061984
## Testando$Ho_OS_Aberto 1.163485 1 1.078649
## Testando$QTD_REINCIDENCIAS 1.077247 1 1.037905
## Testando$QTD_DIAS_Lt_OS 1.292851 1 1.137036
bptest(ResiduosML2)
##
## studentized Breusch-Pagan test
##
## data: ResiduosML2
## BP = 41.659, df = 13, p-value = 7.445e-05
plot(ResiduosML2, 1:4)
Testando=Testando[-c(16,76,67),]
Testando=Testando[-c(10,29,31),]
Testando=Testando[-c(29,13,31),]
Testando=Testando[-c(25,13,29),]
Testando=Testando[-c(85,13,29),]
ResiduosML2=ResiduosML=lm(formula = Testando$Pontos_Prioridade ~factor(Testando$id_prioridade)+Testando$Ho_Sem_Net+Testando$Ho_OS_Aberto+Testando$QTD_REINCIDENCIAS+Testando$QTD_DIAS_Lt_OS, data=Testando)
k=summary(ResiduosML2)
shapiro.test(rstandard(ResiduosML2))
##
## Shapiro-Wilk normality test
##
## data: rstandard(ResiduosML2)
## W = 0.81797, p-value = 3.942e-08
plot(ResiduosML2, 1:4)
#install.packages("corrgram")
library(corrgram)
## Warning: package 'corrgram' was built under R version 4.3.2
corrgram(Testando,order = T,lower.panel = panel.shade,upper.panel = panel.pie)
k$coefficients
## Estimate Std. Error t value
## (Intercept) 437.9780525 22.91855295 19.110197
## factor(Testando$id_prioridade)2 -260.9404806 30.86128915 -8.455268
## factor(Testando$id_prioridade)3 -365.4287619 21.32328207 -17.137548
## factor(Testando$id_prioridade)4 -423.8470861 27.10352800 -15.638078
## factor(Testando$id_prioridade)5 -460.3048531 22.06287578 -20.863321
## factor(Testando$id_prioridade)6 -484.3699247 21.96277715 -22.054129
## factor(Testando$id_prioridade)7 -507.3136281 22.91805274 -22.135983
## factor(Testando$id_prioridade)8 -496.7667475 22.41074630 -22.166453
## factor(Testando$id_prioridade)9 -541.3631323 22.84658208 -23.695585
## factor(Testando$id_prioridade)10 -523.8064469 24.20148055 -21.643570
## Testando$Ho_Sem_Net 0.5713026 0.11409965 5.007050
## Testando$Ho_OS_Aberto 0.7331596 0.07799324 9.400297
## Testando$QTD_REINCIDENCIAS 0.8353605 0.49653248 1.682388
## Testando$QTD_DIAS_Lt_OS 0.9597236 0.17498808 5.484508
## Pr(>|t|)
## (Intercept) 3.386057e-27
## factor(Testando$id_prioridade)2 8.227713e-12
## factor(Testando$id_prioridade)3 8.622859e-25
## factor(Testando$id_prioridade)4 7.794700e-23
## factor(Testando$id_prioridade)5 3.445070e-29
## factor(Testando$id_prioridade)6 1.799028e-30
## factor(Testando$id_prioridade)7 1.475367e-30
## factor(Testando$id_prioridade)8 1.370565e-30
## factor(Testando$id_prioridade)9 3.750272e-32
## factor(Testando$id_prioridade)10 4.907924e-30
## Testando$Ho_Sem_Net 5.153389e-06
## Testando$Ho_OS_Aberto 2.106136e-13
## Testando$QTD_REINCIDENCIAS 9.769129e-02
## Testando$QTD_DIAS_Lt_OS 8.748173e-07
soma_nomes <- sum(dados$Ho_Sem_Net != 0)
soma_nomes
## [1] 88
#Teste 2
ResiduosML=lm(DadosTModelo$id_prioridade~.,data = DadosTModelo[,-c(1,2,4)])
summary(ResiduosML)
##
## Call:
## lm(formula = DadosTModelo$id_prioridade ~ ., data = DadosTModelo[,
## -c(1, 2, 4)])
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.1698 -1.3446 -0.4478 1.1740 4.6585
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.879003 0.657508 7.420 9.70e-11 ***
## Ho_Sem_Net 0.009994 0.005413 1.846 0.0684 .
## Ho_OS_Aberto 0.008542 0.003338 2.559 0.0123 *
## QTD_REINCIDENCIAS 0.023545 0.023692 0.994 0.3232
## QTD_DIAS_Lt_OS 0.022593 0.007672 2.945 0.0042 **
## Pontos_Prioridade -0.011488 0.001156 -9.942 9.71e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.746 on 82 degrees of freedom
## Multiple R-squared: 0.5568, Adjusted R-squared: 0.5298
## F-statistic: 20.6 on 5 and 82 DF, p-value: 2.859e-13
shapiro.test(rstandard(ResiduosML))
##
## Shapiro-Wilk normality test
##
## data: rstandard(ResiduosML)
## W = 0.95328, p-value = 0.003075