Implementar una rutina en R que permita estimar un modelo de regresión
lineal omitiendo un registro. Use el archivo de datos Datos_Trabajo_R.xlsx.
Observación: si el archivo contiene n registros, entonces se estimarán n
regresiones con (n-1) registros cada una.
El programa deberá mostrar un gráfico de dispersión cuyo eje X serÃa el
número de regresión y el eje Y el valor de la pendiente de la regresión.
¿Cuál es el valor de la pendiente más grande y más pequeña?, ¿A qué
registros están asociados estas pendientes?
Calcule la pendiente promedio de todas las regresiones; y compare está
pendiente con la pendiente de la regresión con todas las observaciones.
setwd("D:/ECONOMÃA UNFV/Software/R/R intermedio")
library(readxl)
data2 = read_excel("Datos_Trabajo_R 1.xlsx")
data1 = read_excel("Datos_Trabajo_R 2.xlsx")
# regresion lineal
n = 15
k = 1
numreg= c()
penreg= c()
for(i in 1:n){
Y = data.matrix(data1["Y"], rownames.force = NA)
Y = Y[1:n,]
uno = matrix(1,n,1)
X = cbind(uno,data.matrix(data1["X"], rownames.force = NA))
X = X[1:n,]
# estimacion de los parametros
B = solve(t(X)%*%X)%*%t(X)%*%Y
B= B[-2,]
pendreg = B
numreg = n
data1["Y"]
data1["Y[1,]"]
}
problema que tengo es de los valores de las pendientes, pero me falta que
este sea un bucle y haga lo que me pida es decir que la regresion numero 1
pendiente tal y asi sucesivamente
[R-es] BUCLE REGRESION
2 messages · Jhon Vidal Figueroa Céspedes, Carlos Ortega
Hola, Muy probablemente encontrarás más ayuda en la lista si en vez de plantear tu duda como si nos dieras una asignación, mostraras un poco más de "netetiquette". Dijeras cuál es tu problema, qué has podido plantear y si ya has hecho algo, qué problema estás teniendo, adjuntaras datos de ejemplo.. Y yendo a tu problema, - ¿has sido capaz de hacer este cálculo que quieres con un primer ejemplo/caso?. - ¿Sabes que en R para realizar un modelo lineal tienes la función "lm()"?. - Y que con la función "coefficients()" puedes obtener la pendiente y la ordenada en el origen?. - Tu problema entonces se reduce a seleccionar un subconjunto de datos, usar "lm()" y "coefficients()" y guardar el resultado de coefficients en cada ciclo. Seguro que en tu siguiente duda, tu nivel de "netetiquette" será mucho mayor... :-). Saludos, Carlos Ortega www.qualityexcellence.es El jue., 7 feb. 2019 a las 19:52, Jhon Vidal Figueroa Céspedes (< asrodeno18 en gmail.com>) escribió:
Implementar una rutina en R que permita estimar un modelo de regresión
lineal omitiendo un registro. Use el archivo de datos Datos_Trabajo_R.xlsx.
Observación: si el archivo contiene n registros, entonces se estimarán n
regresiones con (n-1) registros cada una.
El programa deberá mostrar un gráfico de dispersión cuyo eje X serÃa el
número de regresión y el eje Y el valor de la pendiente de la regresión.
¿Cuál es el valor de la pendiente más grande y más pequeña?, ¿A qué
registros están asociados estas pendientes?
Calcule la pendiente promedio de todas las regresiones; y compare está
pendiente con la pendiente de la regresión con todas las observaciones.
setwd("D:/ECONOMÃA UNFV/Software/R/R intermedio")
library(readxl)
data2 = read_excel("Datos_Trabajo_R 1.xlsx")
data1 = read_excel("Datos_Trabajo_R 2.xlsx")
# regresion lineal
n = 15
k = 1
numreg= c()
penreg= c()
for(i in 1:n){
Y = data.matrix(data1["Y"], rownames.force = NA)
Y = Y[1:n,]
uno = matrix(1,n,1)
X = cbind(uno,data.matrix(data1["X"], rownames.force = NA))
X = X[1:n,]
# estimacion de los parametros
B = solve(t(X)%*%X)%*%t(X)%*%Y
B= B[-2,]
pendreg = B
numreg = n
data1["Y"]
data1["Y[1,]"]
}
problema que tengo es de los valores de las pendientes, pero me falta que
este sea un bucle y haga lo que me pida es decir que la regresion numero 1
pendiente tal y asi sucesivamente
[[alternative HTML version deleted]]
_______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]