IMPORTACION DE LIBRERIAS

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.2
library(gridExtra)

IMPORTACION DE LA BASE DE DATOS

library(readxl)
BASEORIDINAL <- read_excel("C:/Users/Johana/Downloads/BASEORIDINAL.xlsx")
View(BASEORIDINAL)

INTRODUCION

La base de datos SRVEY LUNG CANCER o Cáncer de pulmón es una enfermedad caracterizada por el crecimiento descontrolado de células anormales en los pulmones. Este tipo de cáncer se ha convertido en una de las principales causas de morbilidad y mortalidad en todo el mundo. A menudo, se asocia estrechamente con el hábito de fumar, aunque también puede afectar a personas que nunca han fumado.

El cáncer de pulmón se origina en los pulmones, los órganos esenciales para la respiración. Estos órganos están formados por una red compleja de bronquios y alvéolos, donde tiene lugar el intercambio de oxígeno y dióxido de carbono. Cuando las células pulmonares comienzan a crecer sin control, pueden formar masas o tumores que interfieren con la función pulmonar normal.

La calidad de los datos es un elemento crítico en la efectividad de los modelos de aprendizaje automático. En este sentido, se prestará especial atención a la selección y preparación de conjuntos de datos representativos, considerando variables relevantes como la historia clínica, factores genéticos, y hábitos de vida. Además, se implementarán técnicas de validación cruzada y otras estrategias de evaluación para garantizar la fiabilidad y generalización de los modelos desarrollados.

DESCRIPCION DE LA BASE DE DATOS

La base de datos parece contener información sobre la salud y los hábitos de vida de varios individuos, con un enfoque particular en factores relacionados con el cáncer de pulmón. Incluye datos demográficos como género y edad, así como información sobre el consumo de tabaco, presión arterial, horas de sueño, índice de masa corporal y otros síntomas o condiciones relacionados con la salud pulmonar. La presencia de la columna “LUNG_CANCER” indica si el individuo tiene o no cáncer de pulmón, lo que puede ser crucial para análisis epidemiológicos y estudios de salud

DESCRIPCION DE LAS VARIABLES

OBS: Número de observación o identificación única para cada individuo. Tipo: Nominal (identificador).
  1. GENDER: Género del individuo (M para masculino, F para femenino). Tipo: Nominal (categórico).

2.AGE: Edad del individuo. Tipo: Numérico (continuo).

  1. SMOKING: Indica si el individuo fuma o no (NO para no, YES para sí). Tipo: Nominal (categórico).

  2. YELLOW_FINGERS: Presencia de dedos amarillos debido al tabaquismo (NO para no, YES para sí). Tipo: Nominal (categórico).

  3. ANXIETY: Indica si el individuo experimenta ansiedad (NO para no, YES para sí). Tipo: Nominal (categórico).

  4. PEER_PRESSURE: Si el individuo siente presión de grupo para fumar (NO para no, YES para sí). Tipo: Nominal (categórico).

  5. FATIGUE: Indica si el individuo experimenta fatiga (NO para no, YES para sí). Tipo: Nominal (categórico).

  6. ALLERGY: Presencia de alergias en el individuo (NO para no, YES para sí). Tipo: Nominal (categórico).

  7. WHEEZING: Presencia de sibilancias al respirar (NO para no, YES para sí). Tipo: Nominal (categórico).

  8. ALCOHOL_CONSUMING: Consumo de alcohol por parte del individuo (NO para no, YES para sí). Tipo: Nominal (categórico).

  9. BLOOD_PRESSURE: Nivel de presión arterial del individuo. Tipo: Numérico (continuo).

  10. SLEEP_HOURS: Horas de sueño del individuo. Tipo: Numérico (continuo).

  11. BODY_MASS: Índice de masa corporal (BMI) del individuo. Tipo: Numérico (continuo).

  12. DEGREE_OF_DIFFICULTY_BREATHING: Grado de dificultad al respirar (HALF para moderado, HIGH para alto, LOW para bajo). Tipo: Ordinal (categórico con orden).

  13. DEGREE_OF_DIFFICULTY_EATING: Grado de dificultad al comer (HALF para moderado, HIGH para alto, LOW para bajo). Tipo: Ordinal (categórico con orden).

  14. CHEST_PAIN: Presencia de dolor en el pecho (1 para sí, 2 para no). Tipo: Nominal (categórico).

  15. LUNG_CANCER: Indica si el individuo tiene cáncer de pulmón (YES para sí, NO para no). Tipo: Nominal (categórico).

CODIGO

if (!requireNamespace("dplyr", quietly = TRUE)) {
install.packages("dplyr")
}
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following object is masked from 'package:gridExtra':
## 
##     combine
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
data <- BASEORIDINAL
data <- data %>%
mutate(across(where(is.character), as.factor))
str(data)
## tibble [309 × 17] (S3: tbl_df/tbl/data.frame)
##  $ GENDER                        : Factor w/ 2 levels "F","M": 2 1 2 1 2 1 1 1 2 2 ...
##  $ AGE                           : num [1:309] 69 59 63 63 52 51 68 60 58 69 ...
##  $ SMOKING                       : Factor w/ 2 levels "NO","YES": 1 2 2 1 2 2 2 2 2 2 ...
##  $ YELLOW_FINGERS                : Factor w/ 2 levels "NO","YES": 2 1 2 2 1 2 1 1 1 1 ...
##  $ ANXIETY                       : Factor w/ 2 levels "NO","YES": 2 1 1 1 1 2 2 1 1 1 ...
##  $ PEER_PRESSURE                 : Factor w/ 2 levels "NO","YES": 1 2 2 1 1 2 2 1 2 1 ...
##  $ FATIGUE                       : Factor w/ 2 levels "NO","YES": 2 2 1 1 2 2 2 2 2 1 ...
##  $ ALLERGY                       : Factor w/ 2 levels "NO","YES": 1 1 1 1 1 2 1 1 2 2 ...
##  $ WHEEZING                      : Factor w/ 2 levels "NO","YES": 2 2 1 2 2 1 1 1 2 2 ...
##  $ ALCOHOL CONSUMING             : Factor w/ 2 levels "NO","YES": 2 1 2 1 2 1 1 1 2 2 ...
##  $ BLOOD PRESSURE                : num [1:309] 124 90 115 112 115 94 111 130 125 105 ...
##  $ SLEEP HOURS                   : num [1:309] 3 3 5 4 3 4 5 5 4 4 ...
##  $ BMI                           : num [1:309] 1 29.8 16.7 29.4 18.8 ...
##  $ DEGREE OF DIFFICULTY BREATHING: Factor w/ 3 levels "HALF","HIGH",..: 2 2 1 3 2 2 1 1 1 1 ...
##  $ DEGREE OF DIFFICULTY EATING   : Factor w/ 2 levels "HIGH","LOW": 2 1 2 1 1 1 1 1 2 2 ...
##  $ CHEST PAIN                    : num [1:309] 2 2 2 1 2 1 1 1 2 2 ...
##  $ LUNG_CANCER                   : Factor w/ 2 levels "NO","YES": 2 1 1 1 2 2 1 1 2 1 ...
data

VERIFICACION DE NA

BASE_na <- is.na(BASEORIDINAL)
head(BASE_na)
     GENDER   AGE SMOKING YELLOW_FINGERS ANXIETY PEER_PRESSURE FATIGUE ALLERGY
[1,]  FALSE FALSE   FALSE          FALSE   FALSE         FALSE   FALSE   FALSE
[2,]  FALSE FALSE   FALSE          FALSE   FALSE         FALSE   FALSE   FALSE
[3,]  FALSE FALSE   FALSE          FALSE   FALSE         FALSE   FALSE   FALSE
[4,]  FALSE FALSE   FALSE          FALSE   FALSE         FALSE   FALSE   FALSE
[5,]  FALSE FALSE   FALSE          FALSE   FALSE         FALSE   FALSE   FALSE
[6,]  FALSE FALSE   FALSE          FALSE   FALSE         FALSE   FALSE   FALSE
     WHEEZING ALCOHOL CONSUMING BLOOD PRESSURE SLEEP HOURS   BMI
[1,]    FALSE             FALSE          FALSE       FALSE FALSE
[2,]    FALSE             FALSE          FALSE       FALSE FALSE
[3,]    FALSE             FALSE          FALSE       FALSE FALSE
[4,]    FALSE             FALSE          FALSE       FALSE FALSE
[5,]    FALSE             FALSE          FALSE       FALSE FALSE
[6,]    FALSE             FALSE          FALSE       FALSE FALSE
     DEGREE OF DIFFICULTY BREATHING DEGREE OF DIFFICULTY EATING CHEST PAIN
[1,]                          FALSE                       FALSE      FALSE
[2,]                          FALSE                       FALSE      FALSE
[3,]                          FALSE                       FALSE      FALSE
[4,]                          FALSE                       FALSE      FALSE
[5,]                          FALSE                       FALSE      FALSE
[6,]                          FALSE                       FALSE      FALSE
     LUNG_CANCER
[1,]       FALSE
[2,]       FALSE
[3,]       FALSE
[4,]       FALSE
[5,]       FALSE
[6,]       FALSE

INTERPRETACION Se observa en la base de datos no existe datos NA.

classes <- sapply(BASEORIDINAL, class)
for (variable in names(classes)) {
 cat("Variable:", variable, " - Clase:", classes[variable], "\n")
classes
}
Variable: GENDER  - Clase: character 
Variable: AGE  - Clase: numeric 
Variable: SMOKING  - Clase: character 
Variable: YELLOW_FINGERS  - Clase: character 
Variable: ANXIETY  - Clase: character 
Variable: PEER_PRESSURE  - Clase: character 
Variable: FATIGUE  - Clase: character 
Variable: ALLERGY  - Clase: character 
Variable: WHEEZING  - Clase: character 
Variable: ALCOHOL CONSUMING  - Clase: character 
Variable: BLOOD PRESSURE  - Clase: numeric 
Variable: SLEEP HOURS  - Clase: numeric 
Variable: BMI  - Clase: numeric 
Variable: DEGREE OF DIFFICULTY BREATHING  - Clase: character 
Variable: DEGREE OF DIFFICULTY EATING  - Clase: character 
Variable: CHEST PAIN  - Clase: numeric 
Variable: LUNG_CANCER  - Clase: character 

ANALISIS DESCRIPTIVO

MINIMO VALOR En un conjunto de datos es el número más pequeño o la observación más baja dentro de ese conjunto. Es uno de los resúmenes descriptivos básicos que ayuda a entender la gama o dispersión de los datos.

1st QU El primer quintil, también conocido como el quintil inferior o percentil 25, es el valor que separa el 20% inferior de un conjunto de datos ordenado de manera ascendente. En otras palabras, el primer quintil es el valor por debajo del cual cae el 25% de los datos. FORMULA \[Q1 = \frac{n+1}{4}\] MEDIANA

La mediana es una medida de tendencia central en estadísticas que se utiliza para representar el valor central de un conjunto de datos. Para calcular la mediana, primero debes ordenar los datos de menor a mayor (o viceversa) y luego encontrar el valor que se encuentra exactamente en el centro de la distribución. FORMULA

NUMERO IMPAR DE DATOS \[M = Valor de la posicion (\frac{n+1}{2})\] NUMERO PAR DE DATOS \[M = Suma de los valores en las posiciones (\frac{n}{2})\] MEDIA Es una medida que representa el valor típico o promedio de un conjunto de datos. Se calcula sumando todos los valores en el conjunto y dividiendo esa suma por el número total de elementos en el conjunto. FORMULA \[\bar{x} = \frac{\sum_{i=1_{}}^{N}xi}{N}\] 3RD QU Sefiere al valor que divide los tres cuartos superiores de un conjunto de datos ordenado. En términos más específicos, el tercer cuartil representa el valor por debajo del cual se encuentra el 75% de los datos. \[Q1 = 3\frac{n+1}{5}\] Para calcular el tercer cuartil, primero debes ordenar el conjunto de datos de menor a mayor. Luego, divides los datos en cuatro partes iguales, y el tercer cuartil es el valor que se encuentra en el límite entre el tercer y el cuarto cuartil. Matemáticamente, se suele denotar como Q3Q3.

MAXIMO

En un conjunto de datos se refiere al valor más grande o a la observación más alta dentro de ese conjunto.Calcular el valor máximo es útil para entender la variabilidad en un conjunto de datos y proporciona información sobre la parte superior de la distribución. Similar al valor mínimo, el valor máximo puede ser sensible a valores atípicos o extremos, ya que un solo valor extremadamente alto puede afectar significativamente el valor máximo.

CONVERSION A INTEGER

summary(BASEORIDINAL[,classes=="numeric"])
      AGE        BLOOD PRESSURE   SLEEP HOURS         BMI       
 Min.   :21.00   Min.   :  0.0   Min.   :1.000   Min.   : 1.00  
 1st Qu.:57.00   1st Qu.:110.0   1st Qu.:2.000   1st Qu.:17.47  
 Median :62.00   Median :119.0   Median :3.000   Median :25.73  
 Mean   :62.67   Mean   :121.6   Mean   :3.311   Mean   :21.51  
 3rd Qu.:69.00   3rd Qu.:133.0   3rd Qu.:4.000   3rd Qu.:29.77  
 Max.   :87.00   Max.   :200.0   Max.   :5.000   Max.   :46.01  
   CHEST PAIN   
 Min.   :1.000  
 1st Qu.:1.000  
 Median :2.000  
 Mean   :1.557  
 3rd Qu.:2.000  
 Max.   :2.000  
apply(BASEORIDINAL[,classes=="numeric"],2,sd)
           AGE BLOOD PRESSURE    SLEEP HOURS            BMI     CHEST PAIN 
      8.210301      20.783988       1.214328      12.666519       0.497588 

INTERPRETACION AGE:

Min: La edad mínima en tu conjunto de datos es 21 años.
1st Qu (primer cuartil): El 25% de las personas tienen una edad de 57 años o menos.
Median (mediana): La mediana (valor central) de la edad es 62 años.
Mean (media): La media (promedio) de las edades es aproximadamente 62.67 años.
3rd Qu (tercer cuartil): El 75% de las personas tienen una edad de 69 años o menos.
Max: La edad máxima en tu conjunto de datos es 87 años.

BLOOD PRESSURE:

Min: La presión arterial mínima es 0.0.
1st Qu: El 25% de las personas tienen una presión arterial de 110.0 o menos.
Median: La mediana de la presión arterial es 119.0.
Mean: La media de la presión arterial es aproximadamente 121.6.
3rd Qu: El 75% de las personas tienen una presión arterial de 133.0 o menos.
Max: La presión arterial máxima en tu conjunto de datos es 200.0.

SLEEP HOURS:

Min: La cantidad mínima de horas de sueño es 1.
1st Qu: El 25% de las personas duermen 2 horas o menos.
Median: La mediana de las horas de sueño es 3.
Mean: La media de las horas de sueño es aproximadamente 3.311.
3rd Qu: El 75% de las personas duermen 4 horas o menos.
Max: La cantidad máxima de horas de sueño es 5.

BMI (Body Mass Index):

Min: El índice de masa corporal (BMI) mínimo es 1.0.
1st Qu: El 25% de las personas tienen un BMI de 17.47 o menos.
Median: La mediana del BMI es 25.73.
Mean: La media del BMI es aproximadamente 21.51.
3rd Qu: El 75% de las personas tienen un BMI de 29.77 o menos.
Max: El BMI máximo en tu conjunto de datos es 46.01.

CHEST PAIN:

Min: La intensidad mínima del dolor en el pecho es 1.0.
1st Qu: El 25% de las personas tienen una intensidad de dolor en el pecho de 1.0 o menos.
Median: La mediana de la intensidad del dolor en el pecho es 2.0.
Mean: La media de la intensidad del dolor en el pecho es aproximadamente 1.557.
3rd Qu: El 75% de las personas tienen una intensidad de dolor en el pecho de 2.0 o menos.
Max: La intensidad máxima del dolor en el pecho es 2.0

DIAGRAMA DE BARRAS

VARIABLE GENERO

ggplot(BASEORIDINAL, aes(x = GENDER)) +
  geom_bar(fill = "skyblue") +
  labs(x = "Gender", title = "VARIABLE GENERO") +
  theme_minimal()

VARIABLE EDAD

ggplot(BASEORIDINAL, aes(x = AGE)) +
  geom_bar(fill = "skyblue") +
  labs(x = "Gender", title = "VARIABLE EDAD") +
  theme_minimal()

VARIABLE SMOKING

ggplot(BASEORIDINAL, aes(x = SMOKING)) +
  geom_bar(fill = "skyblue") +
  labs(x = "Gender", title = "VARIABLE SMOKING") +
  theme_minimal()

VARIABLE ANSIEDAD

ggplot(BASEORIDINAL, aes(x = ANXIETY)) +
  geom_bar(fill = "skyblue") +
  labs(x = "Gender", title = "VARIABLE ANSIEDAD") +
  theme_minimal()

DIFICULTAD PARA TOCER

ggplot(BASEORIDINAL, aes(x = BASEORIDINAL$`DEGREE OF DIFFICULTY BREATHING`)) +
  geom_bar(fill = "skyblue") +
  labs(x = "Gender", title = "DIFICULTAD PARA TOCER") +
  theme_minimal()
## Warning: Use of `` BASEORIDINAL$`DEGREE OF DIFFICULTY BREATHING` `` is discouraged.
## ℹ Use `DEGREE OF DIFFICULTY BREATHING` instead.

DIFICULTAD PARA COMER

ggplot(BASEORIDINAL, aes(x = `DEGREE OF DIFFICULTY EATING`)) +
  geom_bar(fill = "skyblue") +
  labs(x = "Gender", title = "DIFICULTAD PARA COMER") +
  theme_minimal()

VARIABLE PRESION ARTERIAL

ggplot(BASEORIDINAL, aes(x = `BLOOD PRESSURE`)) +
  geom_bar(fill = "skyblue") +
  labs(x = "Gender", title = "VARIABLE PRESION ARTERIAL") +
  theme_minimal()

VARIABLE

ggplot(BASEORIDINAL, aes(x = `SLEEP HOURS`)) +
  geom_bar(fill = "skyblue") +
  labs(x = "Gender", title = "VARIABLE HORAS DE SUEÑO") +
  theme_minimal()

DIAGRAMAS DE DISPERSION

##DIAGRAMA DE DISPERSION (RELACION ENTRE Edad y SMOKING)

qplot(AGE,SMOKING, data = BASEORIDINAL, colour = LUNG_CANCER)
Warning: `qplot()` was deprecated in ggplot2 3.4.0.
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
generated.

INTERPRETACION Se observa que SI existe tendencia a contraer cancer de pulmon,las personas mayores a las 43 años si fuman y les hace mas propensos a contraer cancer de pulmon

##DIAGRAMA DE DISPERSION (EDAD y HORAS DE SUEÑO)

qplot(AGE,`SLEEP HOURS`, data = BASEORIDINAL, colour = LUNG_CANCER)

INTERPRETACION Se observa que SI existe tendencia a contraer cancer de pulmon,las personas mayores a las 43 años duermen mas de 2 horas al dia y tiene una tendencia a contraer cancer de pulmon.

##DIAGRAMA DE DISPERSION (ALERGIA Y ANSIEDAD)

qplot(ALLERGY, ANXIETY, data = BASEORIDINAL, colour = LUNG_CANCER)

INTERPRETACION Se observa que SI existe tendencia a contraer cancer de pulmon, las personas presentan alergias y ansiedad en su totalidad y les hace propensos acontraer cancer de pulmon.

##DIAGRAMA DE DISPERSION (EDAD y HORAS DE SUEÑO)

qplot(`ALCOHOL CONSUMING`,`DEGREE OF DIFFICULTY BREATHING`, data = BASEORIDINAL, colour = LUNG_CANCER)

$ INTERPRETACION Se observa que SI existe tendencia a contraer cancer de pulmon,las personas si consumen alcohol y tiene un grado dificultad bajo y medio de tocer.

BOXPLOT

CancerP <- BASEORIDINAL$LUNG_CANCER
PRESSURE <- BASEORIDINAL$`BLOOD PRESSURE`
P1 <- ggplot(BASEORIDINAL, aes(x=LUNG_CANCER,
                            y=PRESSURE, color=LUNG_CANCER))+
  geom_boxplot()
P1

INTERPRETACION El eje x representa los niveles de la CANCER DE PULMON El eje y representa los valores de la PRESION ARTERIAL variable. Boxplots se utilizan para mostrar la distribución de la BLOOD PRESSURE valores para cada nivel La caja de la parcela representa la gama intercuartátil (IQR) de la valores para cada grupo, con una línea dentro de la caja que representa la mediana.Los batinadores se extienden desde la caja para mostrar el rango de los datos, y los puntos más allá de los bigotes pueden ser considerados como atístes. No se presenta MAYOR variabilidad en los datos.

CancerP <- BASEORIDINAL$LUNG_CANCER
SUEÑO <- BASEORIDINAL$`SLEEP HOURS`
P1 <- ggplot(BASEORIDINAL, aes(x=LUNG_CANCER,
                            y=SUEÑO, color=LUNG_CANCER))+
  geom_boxplot()
P1

INTERPRETACION Las medianas y los cuartiles (Q1 y Q3) son diferentes entre los dos conjuntos de datos.La longitud de las cajas y los bigotes es significativamente diferente, indicando una dispersión diferente de los datos. La posición relativa de las medianas en las cajas es diferente, lo que sugiere diferencias en la tendencia central de los dos conjuntos de datos.Puntos fuera de los bigotes (valores atípicos) pueden ser más prominentes en uno de los grupos, indicando diferencias en la cola de la distribución.La forma general de la distribución, como la simetría o asimetría, puede ser diferente.La variabilidad en términos de dispersión y rango intercuartílico puede ser claramente distinta.

CancerP <- BASEORIDINAL$LUNG_CANCER
MASACOR <- BASEORIDINAL$BMI
P1 <- ggplot(BASEORIDINAL, aes(x=LUNG_CANCER,
                            y=MASACOR, color=LUNG_CANCER))+
  geom_boxplot()
P1

Los los boxplot La mediana y los cuartiles (Q2 y Q3) son iguales o muy cercanos entre los dos conjuntos de datos. La longitud de las cajas y los bigotes es comparable, indicando una dispersión entre de los datos.La posición relativa de las medianas en las cajas es similar, lo que significa que la tendencia central de los dos conjuntos de datos es comparable. La variabilidad en ambos conjuntos de datos es parecida, ya que la longitud de las cajas y los bigotes es similar.No hay heno Evidencia de Diferencias Significativas

RELACION ENTRE LA VARIABLE BINARTIA Y LAS VARIABLES NOMINALES

library(htmltools)
Warning: package 'htmltools' was built under R version 4.3.2
library(ggmosaic)
Warning: package 'ggmosaic' was built under R version 4.3.2
q1 <- ggplot(data = BASEORIDINAL)+geom_mosaic(aes(x = product(LUNG_CANCER,GENDER),fill = LUNG_CANCER))+ labs(x="Gender", title = "factores Cancer Pulmon")
q1
Warning: `unite_()` was deprecated in tidyr 1.2.0.
ℹ Please use `unite()` instead.
ℹ The deprecated feature was likely used in the ggmosaic package.
  Please report the issue at <https://github.com/haleyjeppson/ggmosaic>.
This warning is displayed once every 8 hours.
Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
generated.

q2 <- ggplot(data = BASEORIDINAL)+geom_mosaic(aes(x = product(LUNG_CANCER,SMOKING),fill = LUNG_CANCER))+ labs(x="Smoking", title = "factores Cancer Pulmon")
q2

q3 <- ggplot(data = BASEORIDINAL)+geom_mosaic(aes(x = product(LUNG_CANCER,YELLOW_FINGERS),fill = LUNG_CANCER))+ labs(x="YELLOW_FINGERS", title = "factores Cancer Pulmon")
q3

q4 <- ggplot(data = BASEORIDINAL)+geom_mosaic(aes(x = product(LUNG_CANCER,ANXIETY),fill = LUNG_CANCER))+ labs(x="ANXIETY", title = "factores Cancer Pulmon")
q4

q5 <- ggplot(data = BASEORIDINAL)+geom_mosaic(aes(x = product(LUNG_CANCER,PEER_PRESSURE),fill = LUNG_CANCER))+ labs(x="PEER_PRESSURE", title = "factores Cancer Pulmon")
q5

q6 <- ggplot(data = BASEORIDINAL)+geom_mosaic(aes(x = product(LUNG_CANCER,FATIGUE),fill = LUNG_CANCER))+ labs(x="FATIGUE", title = "factores Cancer Pulmon")
q6

q7 <- ggplot(data = BASEORIDINAL)+geom_mosaic(aes(x = product(LUNG_CANCER,ALLERGY),fill = LUNG_CANCER))+ labs(x="ALLERGY", title = "factores Cancer Pulmon")
q7

q8 <- ggplot(data = BASEORIDINAL)+geom_mosaic(aes(x = product(LUNG_CANCER,WHEEZING),fill = LUNG_CANCER))+ labs(x="WHEEZING", title = "factores Cancer Pulmon")
q8

grid.arrange(q1,q2,q3,q4,q5,q6,q7,q8,nrow = 4, ncol =4)

INTERPRETACION Se observa en todos los graficos de las variables nominales que si existe presencia de cNancer de pulmon en las factores todos los factores si influyen a contrater cancer de pulmon, en su mayoria las variables influyen a contraer cancer de pulmon.

GRAFICO MULTIVARIANTE

library(GGally)
Warning: package 'GGally' was built under R version 4.3.2
Registered S3 method overwritten by 'GGally':
  method from   
  +.gg   ggplot2

Attaching package: 'GGally'
The following object is masked from 'package:ggmosaic':

    happy
ggpairs(BASEORIDINAL[,classes=="numeric"]) + theme_bw()

INTERPRETACION Se observa existe una correlacion moderada entre las horas de sueño y masa corporal, existe una correlacion baja negativa entre la masa corporal y la edad.

library(ggmosaic)
p <- ggpairs(BASEORIDINAL[,c(which(classes=="numeric"),17)], aes(color = BASEORIDINAL$LUNG_CANCER)) + theme_bw()
for (i in 1:p$nrow) {
  for (j in 1:p$ncol) {
    p[i,j] <- p[i,j] +
      scale_fill_manual(values = c("#000AEB","#E7B800")) +
       scale_color_manual(values = c("#000AEB","#E7B800"))
    
  }
  
}
p
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

INTERPRETACION

En el grafico observamos boxplot de las cuatro variables numericas , el diagra,a de cajas la relacion y correlacion entre las variables numericas, ademas observamos que las tres variables influyen en en indice de masa corporal, estas influyen directamente y se ve el nivel de correlacion.

Dividiremos el conjunto completo de individuos en dos partes . un apara entrenar el modelo, que contiene el 80% de los individuos y otra para validarlo que contiene el resto. E sto es que usamos para ajustarlo, la bondad del ajuste quedara sobrevalorada. Antes de ajustar cualquier modelo, es conveniente escalar las variables numericas y tenemos que reacondicionar las variables categoricas convirtiendolas en variables ficticias y usando la primera o la ultima categorica como comparacion.

Una variable ficticia es va a tomar valores de cero o de uno para representar cATEGORIAS O REPRESENTA UNA CONDICIION, SE UTILIZA EN ANALISI DE REGRESION para incomporar informacion cualitativa en terminos cuantitativos,

BASEORIDINAL[,classes=="numeric"]=scale(BASEORIDINAL[,classes=="numeric"])
head(BASEORIDINAL)
x=model.matrix(LUNG_CANCER~., BASEORIDINAL)
head(x)
  (Intercept) GENDERM         AGE SMOKINGYES YELLOW_FINGERSYES ANXIETYYES
1           1       1  0.77060032          0                 1          1
2           1       0 -0.44738177          1                 0          0
3           1       1  0.03981106          1                 1          0
4           1       0  0.03981106          0                 1          0
5           1       1 -1.29996923          1                 0          0
6           1       0 -1.42176744          1                 1          1
  PEER_PRESSUREYES FATIGUEYES ALLERGYYES WHEEZINGYES `ALCOHOL CONSUMING`YES
1                0          1          0           1                      1
2                1          1          0           1                      0
3                1          0          0           0                      1
4                0          0          0           1                      0
5                0          1          0           1                      1
6                1          1          1           0                      0
  `BLOOD PRESSURE` `SLEEP HOURS`        BMI
1        0.1153801    -0.2558448 -1.6192774
2       -1.5204946    -0.2558448  0.6518382
3       -0.3176456     1.3911562 -0.3831304
4       -0.4619875     0.5676557  0.6240729
5       -0.3176456    -0.2558448 -0.2102984
6       -1.3280388     0.5676557  0.5477038
  `DEGREE OF DIFFICULTY BREATHING`HIGH `DEGREE OF DIFFICULTY BREATHING`LOW
1                                    1                                   0
2                                    1                                   0
3                                    0                                   0
4                                    0                                   1
5                                    1                                   0
6                                    1                                   0
  `DEGREE OF DIFFICULTY EATING`LOW `CHEST PAIN`
1                                1    0.8910297
2                                0    0.8910297
3                                1    0.8910297
4                                0   -1.1186650
5                                0    0.8910297
6                                0   -1.1186650

Se Observa que las variables numericas reescaladas contienen mismos valores iniciales.Cada una de las variables nominales ha sido convetida en variables binarias.El numero de variables binarias es siempre el numero de categorias de la variable nomenal.Por ejemplo, la variable Grender ( don dos categorias) ha sido conveetida en Gender Male que es una variable numerica que vale 1 caundo el sexo es hombre y o cuando es mujer.El resto de variables tambien son convertidas a binarias con el numero de categorias que cada una almacena.Los parametros correspondientes a las categorias retenidascomparan a estas con la categoria eliminada. Dividiremos el conjunto completo de insividuos en dos partes un para entrenar el modelo , que contiene el 60 % de los individuos y otra para validarlo que contiene 40% de individuos.Esto es asi porque si valoramos el modelo con las mismas observaciones

tr=round(nrow(BASEORIDINAL)*0.7)
set.seed(06055849)
muestra=sample.int(nrow(BASEORIDINAL),tr)
Train.cancer=BASEORIDINAL[muestra,]
Val.cancer=BASEORIDINAL[-muestra,]

Prediccion de las Cancer de pulmon (biniaria y variables que influyenn en la misma)

Modeloa de clasisficacion

Regresion logistica

library(stats)
summary(Train.cancer)
    GENDER               AGE             SMOKING          YELLOW_FINGERS    
 Length:216         Min.   :-3.00514   Length:216         Length:216        
 Class :character   1st Qu.:-0.69098   Class :character   Class :character  
 Mode  :character   Median :-0.08199   Mode  :character   Mode  :character  
                    Mean   : 0.01500                                        
                    3rd Qu.: 0.77060                                        
                    Max.   : 2.96297                                        
   ANXIETY          PEER_PRESSURE        FATIGUE            ALLERGY         
 Length:216         Length:216         Length:216         Length:216        
 Class :character   Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character   Mode  :character  
                                                                            
                                                                            
                                                                            
   WHEEZING         ALCOHOL CONSUMING  BLOOD PRESSURE      SLEEP HOURS      
 Length:216         Length:216         Min.   :-5.85075   Min.   :-1.90285  
 Class :character   Class :character   1st Qu.:-0.55822   1st Qu.:-1.07935  
 Mode  :character   Mode  :character   Median :-0.12519   Median : 0.56766  
                                       Mean   : 0.02717   Mean   : 0.05678  
                                       3rd Qu.: 0.59652   3rd Qu.: 0.56766  
                                       Max.   : 3.77204   Max.   : 1.39116  
      BMI            DEGREE OF DIFFICULTY BREATHING DEGREE OF DIFFICULTY EATING
 Min.   :-1.619277   Length:216                     Length:216                 
 1st Qu.:-0.316447   Class :character               Class :character           
 Median : 0.335399   Mode  :character               Mode  :character           
 Mean   : 0.005465                                                             
 3rd Qu.: 0.661802                                                             
 Max.   : 1.888700                                                             
   CHEST PAIN       LUNG_CANCER       
 Min.   :-1.11867   Length:216        
 1st Qu.:-1.11867   Class :character  
 Median : 0.89103   Mode  :character  
 Mean   : 0.02574                     
 3rd Qu.: 0.89103                     
 Max.   : 0.89103                     
Train.cancer$LUNG_CANCER <- as.factor(Train.cancer$LUNG_CANCER)
levels(Train.cancer$LUNG_CANCER)
[1] "NO"  "YES"
gfit <- glm(LUNG_CANCER ~ ., data = Train.cancer, family = binomial)
summary(gfit)

Call:
glm(formula = LUNG_CANCER ~ ., family = binomial, data = Train.cancer)

Coefficients:
                                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)                          -3.12553    1.51339  -2.065 0.038900 *  
GENDERM                              -1.75524    0.96104  -1.826 0.067792 .  
AGE                                  -0.34661    0.44509  -0.779 0.436137    
SMOKINGYES                            0.29193    0.68013   0.429 0.667762    
YELLOW_FINGERSYES                     3.83594    1.14659   3.346 0.000821 ***
ANXIETYYES                            1.54866    0.79358   1.951 0.050998 .  
PEER_PRESSUREYES                     -0.60306    0.67656  -0.891 0.372736    
FATIGUEYES                            2.99727    1.04828   2.859 0.004247 ** 
ALLERGYYES                            4.45522    1.24093   3.590 0.000330 ***
WHEEZINGYES                           1.47677    0.80574   1.833 0.066830 .  
`ALCOHOL CONSUMING`YES                2.50717    1.01594   2.468 0.013593 *  
`BLOOD PRESSURE`                      0.99138    0.41921   2.365 0.018035 *  
`SLEEP HOURS`                        -0.92499    0.47288  -1.956 0.050454 .  
BMI                                   0.27521    0.41077   0.670 0.502870    
`DEGREE OF DIFFICULTY BREATHING`HIGH -0.36206    0.79172  -0.457 0.647448    
`DEGREE OF DIFFICULTY BREATHING`LOW   0.03535    0.95744   0.037 0.970550    
`DEGREE OF DIFFICULTY EATING`LOW      0.23392    0.74961   0.312 0.755002    
`CHEST PAIN`                          0.53841    0.43433   1.240 0.215107    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 142.185  on 215  degrees of freedom
Residual deviance:  64.248  on 198  degrees of freedom
AIC: 100.25

Number of Fisher Scoring iterations: 8

INTERPRETACION La salida del modelo de regresión logística binomial proporciona estimaciones de los coeficientes para cada variable predictora junto con su significancia estadística. Aquí está la descripción de las variables y su significancia en el modelo:

Intercepto (Intercept):
    Estimado: -3.12553
    Significancia: El intercepto es estadísticamente significativo con un valor p de 0.038900, lo que sugiere que la probabilidad de cáncer de pulmón difiere significativamente de cero cuando todas las demás variables son cero.

GENDERM (Género):
    Estimado: -1.75524
    Significancia: El género no es significativo en este modelo, ya que el valor p es mayor que 0.05 (0.067792).

AGE (Edad):
    Estimado: -0.34661
    Significancia: La edad no es significativa, ya que el valor p es mayor que 0.05 (0.436137).

SMOKINGYES (Fumador):
    Estimado: 0.29193
    Significancia: No es significativo (valor p > 0.05).

YELLOW_FINGERSYES (Dedos Amarillos):
    Estimado: 3.83594
    Significancia: Muy significativo con un valor p muy bajo (0.000821).

ANXIETYYES (Ansiedad):
    Estimado: 1.54866
    Significancia: Significativo con un valor p de 0.050998.

PEER_PRESSUREYES (Presión de Pares):
    Estimado: -0.60306
    Significancia: No es significativo (valor p > 0.05).

FATIGUEYES (Fatiga):
    Estimado: 2.99727
    Significancia: Muy significativo con un valor p bajo (0.004247).

ALLERGYYES (Alergias):
    Estimado: 4.45522
    Significancia: Muy significativo con un valor p muy bajo (0.000330).

WHEEZINGYES (Sibilancias):
    Estimado: 1.47677
    Significancia: Significativo con un valor p de 0.066830.

ALCOHOL CONSUMINGYES (Consumo de Alcohol):
    Estimado: 2.50717
    Significancia: Significativo con un valor p de 0.013593.

BLOOD PRESSURE (Presión Arterial):
    Estimado: 0.99138
    Significancia: Significativo con un valor p de 0.018035.

SLEEP HOURS (Horas de Sueño):
    Estimado: -0.92499
    Significancia: Significativo con un valor p de 0.050454.

BMI (Índice de Masa Corporal):
    Estimado: 0.27521
    Significancia: No es significativo (valor p > 0.05).

DEGREE OF DIFFICULTY BREATHING (Dificultad para Respirar):
    HIGH (Alto): No es significativo (valor p > 0.05).
    LOW (Bajo): No es significativo (valor p > 0.05).

DEGREE OF DIFFICULTY EATING (Dificultad para Comer):
    LOW (Bajo): No es significativo (valor p > 0.05).

CHEST PAIN (Dolor en el Pecho):
    Estimado: 0.53841
    Significancia: No es significativo (valor p > 0.05).
    

ANALISIS ANOVA

summary(BASEORIDINAL$LUNG_CANCER)
   Length     Class      Mode 
      309 character character 
BASEORIDINAL$LUNG_CANCER <- as.factor(BASEORIDINAL$LUNG_CANCER)
levels(BASEORIDINAL$LUNG_CANCER)
[1] "NO"  "YES"
class(BASEORIDINAL$LUNG_CANCER)
[1] "factor"

MAQUINAS DE VECTOS SOPORTE

Otro modelo de clasificacion binaria es el conocido como Suppory vector Machine Las paquetes que ajustan dlos modelos .Ajusyamos el modelo para nuestros datos.

VERIFICAMOS CON EL MODELO KERNEL radial

library(e1071)
## Warning: package 'e1071' was built under R version 4.3.2
fitsm1 <- svm(LUNG_CANCER~., data = Train.cancer)
summary(fitsm1)
## 
## Call:
## svm(formula = LUNG_CANCER ~ ., data = Train.cancer)
## 
## 
## Parameters:
##    SVM-Type:  C-classification 
##  SVM-Kernel:  radial 
##        cost:  1 
## 
## Number of Support Vectors:  82
## 
##  ( 60 22 )
## 
## 
## Number of Classes:  2 
## 
## Levels: 
##  NO YES