Hola estoy empezando a usar el programa R, y necesito ayuda con este ejercicio que no consigo resolver. Espero que puedan ayudarme.
Crear una función que permita ajustar los siguientes modelos de regresión simple:
Lineal Y= a + b*X
Exponencial Y=exp(a+b*X)
Potencial Y=a*X^b
En la creación de la función tendremos en cuenta lo siguiente:
- La función tendrá tres argumentos: los vectores con los datos de la variable de respuesta (y) y la explicativa (x) y el tipo de regresión a realizar (tipo), de este modo el usuario ejecutará la función pasando los datos para la regresión y el tipo con valor 1, 2 ó 3 en el caso en que se quiera la regresión lineal, exponencial o potencial, respectivamente. Por defecto el argumento “tipo” se definirá como 1.
- Se controlará que los vectores x e y tengan la misma longitud y los cálculos se realizarán eliminado los posibles datos faltantes (NA) en los vectores de forma adecuada.
- Para ajustar el modelo lineal se utilizará la función lm().
- Para ajustar los otros dos modelos bastará con linealizar el modelo tomando logaritmos y después se utilizará la función lm(). Así, para el modelo exponencial consideramos el modelo transformado log(Y) = a + b* X, con lo cual podremos obtener la estimación de los parámetros “a” y “b” mediante lm() pero considerando como vectores de datos “x” y “log(y)”. Para el modelo potencial consideraremos la transformación log(Y)= log(a)+b*log(X) de modo que el logaritmo del parámetro ”a” y el parámetro “b” los estimaremos aplicando la función lm() a los datos log(x) y log(y).
- La función devolverá una lista con los valores estimados de “a” y “b” y creará un gráfico de dispersión de los datos superponiendo la curva correspondiente al modelo ajustado.
- Para probar la función considerar los datos siguientes:
x<- c(0.2,0.1,0.7,0.8,1.1,1.3,2.4,2.9,3.5,NA,3.9,3.5)
y<-c(25.3,26.7,31.4,33.5,39.7,40.6,45.5,56.8,75.4,80.1,97.2,NA)