---
title: "prac2"
output:
  html_document: default
  pdf_document: default
date: "2026-03-03"
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## Ejercicio 1
Una compañía observa que la demanda de uno de sus productos cambió debido a una variación rápida de su precio por unidad. Se observa la demanda del producto (unidades por cada mil habitantes) en una región en particular sobre un intervalo bastante amplio de precios de venta (dolares). Los datos que se encuentran en el archivo company.dat.

Se trata de realizar un análisis de dichos datos, indicando una ecuación que marque la relación entre el precio del producto por unidad y la demanda del mismo.



Vamos a importar y chequear los datos.

```{r Captura de datos company, message=FALSE}
company<-read.table("./datos/company.dat",head=T)
colnames(company)
```

#### Ajuste del modelo lineal

Ajustamos el modelo de regresión lineal de las ventas del producto, $unidades$, frente al precio, $dolares$:

$unidades=\beta_0+\beta_1 dolares +\varepsilon$

```{r Ajuste del modelo lineal company, message=FALSE}
ml1<-lm(unidades~dolares,data=company)
  summary(ml1)
```

En este caso, podemos dibujar los datos y la recta ajustada:
```{r diagrama de dispersión company, message=FALSE}
plot(unidades~dolares, data=company)
abline(ml1)
```

Vamos a realizar un diagnóstico del modelo, particularmente la linealidad mediante los gráficos de diagnóstico:

```{r gráficos de diagnóstico company, message=FALSE}
layout(matrix(1:4,2))
plot(ml1)
```



***Comentarios:***




#### Ajuste del modelo polinómico

Introducimos en primer lugar el término de grado 2, ajustando el modelo:

$unidades=\beta_0+\beta_1 dolares +\beta_2 dolares^2 +\varepsilon$


```{r modelo cuadrático company, message=FALSE}
ml2<-lm(unidades~dolares+I(dolares^2),data=company)
summary(ml2)
```




***Comentarios:***




Comprobamos la significación del término de grado 3, ajustando el modelo cúbico:

$unidades=\beta_0+\beta_1 dolares +\beta_2 dolares^2 + \beta_3 dolares^3 +\varepsilon$

```{r modelo cúbico company, message=FALSE}
ml3<-lm(unidades~dolares+I(dolares^2)+I(dolares^3),data=company)
summary(ml3)
```



***Comentarios:***




#### Diagnósticos del modelo
Antes de dar por bueno el modelo cuadrático, realicemos el análisis de residuos:

```{r gráfico de residuos company, message=FALSE}
#gráficos de diagnóstico
layout(matrix(1:4,2))
plot(ml2)
```


```{r test diagnóstico company, message=FALSE}
#normalidad
shapiro.test(rstandard(ml2))

#homocedasticidad
library(lmtest)
bptest(ml2)

#errores incorrelados
library(lmtest)
dwtest(ml2)
```


***Comentarios:***




#### Análisis del modelo

```{r análisis del modelo company, message=FALSE}
summary(ml2)
```



***Comentarios:***




#### Predicciones

Vamos a estimar la demanda para un precio del producto de 14 dólares.

```{r predicciones company, message=FALSE}
predict(ml2,data.frame(dolares=14), interval="confidence")
predict(ml2,data.frame(dolares=14), interval="prediction")
```

## Ejercicio 2

Las puntuaciones de cierto examen pueden depender de las horas de estudio y las horas de ejercicio físico previas al examen. Para establecer una ecuación que relacione estas variables, se realiza un experimento con 100 estudiantes, que registran cuántas horas de estudio y ejercicio tuvieron en los días previos al examen. Posteriormente se registró también la puntuación del examen. Los datos se encuentran en el archivo examen.dat.


Vamos a importar y chequear los datos.

```{r Captura de datos examen, message=FALSE}
examen<-read.table("./datos/examen.dat",head=T)
colnames(examen)
```

#### Ajuste del modelo lineal
Ajustamos el modelo

$$Puntuacion=\beta_0 + \beta_1 \mbox{Horas_Estudio} + \beta_2 \mbox{Horas_Ejercicio} + \varepsilon$$


```{r ajuste modelo regresión lineal examen, message=FALSE}
ml4 <- lm(Puntuacion ~ Horas_Estudio+Horas_Ejercicio, data = examen)
summary(ml4)
```


Dibujemos los gráficos de residuos:

```{r gráficos de residuos examen}
layout(matrix(1:4,2))
plot(ml4)
```



***Comentarios:***







#### Ajuste del modelo de grado dos

Ajustamos el modelo con los términos de grado 2:

$$
Puntuacion=\beta_0+\beta_1 \mbox{Horas_Estudio}+\beta_2 \mbox{Horas_Ejercicio}+\beta_3 \mbox{Horas_Estudio}^2+\beta_4 \mbox{Horas_Ejercicio}^2+\beta_5 \mbox{Horas_Estudio}*\mbox{Horas_Ejercicio}+\varepsilon
$$


```{r ajuste modelo grado dos examen, message=FALSE}
ml5 <- lm(Puntuacion ~ Horas_Estudio+Horas_Ejercicio+I(Horas_Estudio^2)+I(Horas_Ejercicio^2)+I(Horas_Estudio*Horas_Ejercicio), data = examen)
```

Veamos si los nuevos términos introducidos son globalmente significativos:

```{r anova examen, message=FALSE}
#significación de los términos introducidos
anova(ml4,ml5)
```


***Comentarios:***




Realicemos un análisis del modelo:

```{r análisis modelo cuadrático examen,message=FALSE}
summary(ml5)
```


***Comentarios:***





Uno de los términos de grado 2 no es significativo, ajustemos el modelo sin dicho término y hagamos su análisis.

```{r análisis modelo cuadrático reducido examen,message=FALSE}
#ajuste del modelo de grado 2 sin el término producto
ml6 <- lm(Puntuacion ~ Horas_Estudio+Horas_Ejercicio+I(Horas_Estudio^2)+I(Horas_Ejercicio^2), data = examen)
summary(ml6)
```



***Comentarios:***





Realicemos un diagnóstico de este último modelo

```{r diagnóstico modelo final examen, message=FALSE}
#Diagnóstico del modelo
layout(matrix(1:4,2))
plot(ml6)
```


***Comentarios:***



#### Predicciones

```{r predicciones examen, message=FALSE}
#predicciones
#Estimar la puntuación de un alumno con 7 horas de estudio y 5 horas de ejercicio
predict(ml6,data.frame(Horas_Estudio=7, Horas_Ejercicio=5), interval="confidence")
predict(ml6,data.frame(Horas_Estudio=7, Horas_Ejercicio=5), interval="prediction")
```


## Ejercicio 3
En ciertas empresas se realizan pruebas de selección para conocer la aptitud para el trabajo de los aspirantes
a obtener un empleo. Resulta por tanto clave saber qué pruebas pueden predecir la aptitud para el trabajo de
una persona. En el archivo TRABAJO.DAT se encuentran las puntuaciones de un test psicotécnico (psico) y de un test
de adecuación (adec) que obtuvieron 20 individuos que fueron contratados por la compañía. También aparece el
resultado de la evaluación a que fueron sometidos estos 20 empleados tras un periodo de dos años (eval).
Analiza estos datos mediante el modelo teórico adecuado determinando si existe relación entre la evaluación y el resultado de los dos test.

## Ejercicio 4
Se pretende estudiar la relación existente entre la producción de sulfato y de nitrato en determinadas reacciones químicas. Para ello se realizan 20 de estas reacciones midiendo las cantidades de dichos compuestos producidas. Los datos registrados se encuentran en el archivo nitratosulfato.dat. Analiza estos datos utilizando para ello el modelo de regresión adecuado.
