Daniel Arismendi
2012-Jun-22 17:28 UTC
[R-es] convertir el resultado de un regresión lineal en una función
Saludos a todos los miembros de la comunidad. Estoy en estos momentos intentando resolver un problemita con R (una metodología que tengo que repetir cerca de 100 veces con un conjunto de datos) y me gustaría convertir el resultado de una regresión lineal en una función que pueda ser integrada posteriormente, es decir: Tengo los siguiente: >file <- commandArgs(trailingOnly=TRUE) >options(digits=16) >options(max.print=5.5E5) >x <- seq(50001,100000,1) >datos <- read.table(file) >attach(datos) >ajust <- lm(V1~x,data=datos) >ajust. Hasta aquí no tengo problemas y se resolver integrales de manera numérica en R de manera aislada, por ejemplo:>## define the integrated function >integrand <- function(x) {1/((x+1)*sqrt(x))} >## integrate the function from 0 to infinity >integrate(integrand, lower = 0, upper = Inf)Cuando quiero intentar relacionar ambas cosas en una sola, no tengo idea de como pasar el resultado que arroja "ajust" y convertirlo en una función que pueda integrarse usando el ejemplo que os muestro arriba. Alguna idea de como pudiera empezar para resolver este problemilla.! Gracias de antemano. -- *Daniel Arismendi * [[alternative HTML version deleted]]
Carlos J. Gil Bellosta
2012-Jun-22 18:08 UTC
[R-es] convertir el resultado de un regresión lineal en una función
Hola, ¿qué tal? Consulta ?predict y construye una función con él. Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 22 de junio de 2012 19:28, Daniel Arismendi <darismendi en cmc.org.ve> escribió:> Saludos a todos los miembros de la comunidad. > > Estoy en estos momentos intentando resolver un problemita con R (una > metodología que tengo que repetir cerca de 100 veces con un conjunto de > datos) y me gustaría convertir el resultado de una regresión lineal en una > función que pueda ser integrada posteriormente, es decir: > > Tengo los siguiente: > >file <- commandArgs(trailingOnly=TRUE) > >options(digits=16) > >options(max.print=5.5E5) > >x <- seq(50001,100000,1) > >datos <- read.table(file) > >attach(datos) > >ajust <- lm(V1~x,data=datos) > >ajust. > > Hasta aquí no tengo problemas y se resolver integrales de manera numérica > en R de manera aislada, por ejemplo: > >>## define the integrated function >>integrand <- function(x) {1/((x+1)*sqrt(x))} >>## integrate the function from 0 to infinity >>integrate(integrand, lower = 0, upper = Inf) > > Cuando quiero intentar relacionar ambas cosas en una sola, no tengo idea de > como pasar el resultado que arroja "ajust" y convertirlo en una función que > pueda integrarse usando el ejemplo que os muestro arriba. > > Alguna idea de como pudiera empezar para resolver este problemilla.! > > Gracias de antemano. > > > > -- > *Daniel Arismendi > * > > [[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 >
Argel Gastélum Arellánez
2012-Jun-22 22:04 UTC
[R-es] convertir el resultado de un regresión lineal en una función
Hola Daniel, tal vez esto te pueda servir... El 22/06/12 12:28, Daniel Arismendi escribió:> Saludos a todos los miembros de la comunidad. > > Estoy en estos momentos intentando resolver un problemita con R (una > metodología que tengo que repetir cerca de 100 veces con un conjunto de > datos) y me gustaría convertir el resultado de una regresión lineal en una > función que pueda ser integrada posteriormente, es decir: > > Tengo los siguiente: > >file<- commandArgs(trailingOnly=TRUE) > >options(digits=16) > >options(max.print=5.5E5) > >x<- seq(50001,100000,1) > >datos<- read.table(file) > >attach(datos) > >ajust<- lm(V1~x,data=datos) > >ajust. > > Hasta aquí no tengo problemas y se resolver integrales de manera numérica > en R de manera aislada, por ejemplo: > >> ## define the integrated function >> integrand<- function(x) {1/((x+1)*sqrt(x))} >> ## integrate the function from 0 to infinity >> integrate(integrand, lower = 0, upper = Inf) > Cuando quiero intentar relacionar ambas cosas en una sola, no tengo idea de > como pasar el resultado que arroja "ajust" y convertirlo en una función que > pueda integrarse usando el ejemplo que os muestro arriba. > > Alguna idea de como pudiera empezar para resolver este problemilla.! > > Gracias de antemano. ># Datos x <- c(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20) V1 <- c(1, 3, 2, 7, 9, 11, 13, 12, 15, 19, 22) datos <- data.frame(x, V1) # Modelo lineal: ajust <- lm(V1 ~ x, data = datos) ajust ## define the integrated function integrand <- function(x) {(ajust$coefficients["x"]) * x + ajust$coefficients["(Intercept)"]} integrand ## integrate the function from 0 to infinity integrate(integrand, lower = 0, upper = 20)
Argel Gastélum Arellánez
2012-Jun-22 22:58 UTC
[R-es] convertir el resultado de un regresión lineal en una función
El 22/06/12 17:04, Argel Gastélum Arellánez escribió:> Hola Daniel, tal vez esto te pueda servir... > > El 22/06/12 12:28, Daniel Arismendi escribió: >> Saludos a todos los miembros de la comunidad. >> >> Estoy en estos momentos intentando resolver un problemita con R (una >> metodología que tengo que repetir cerca de 100 veces con un conjunto de >> datos) y me gustaría convertir el resultado de una regresión lineal >> en una >> función que pueda ser integrada posteriormente, es decir: >> >> Tengo los siguiente: >> >file<- commandArgs(trailingOnly=TRUE) >> >options(digits=16) >> >options(max.print=5.5E5) >> >x<- seq(50001,100000,1) >> >datos<- read.table(file) >> >attach(datos) >> >ajust<- lm(V1~x,data=datos) >> >ajust. >> >> Hasta aquí no tengo problemas y se resolver integrales de manera >> numérica >> en R de manera aislada, por ejemplo: >> >>> ## define the integrated function >>> integrand<- function(x) {1/((x+1)*sqrt(x))} >>> ## integrate the function from 0 to infinity >>> integrate(integrand, lower = 0, upper = Inf) >> Cuando quiero intentar relacionar ambas cosas en una sola, no tengo >> idea de >> como pasar el resultado que arroja "ajust" y convertirlo en una >> función que >> pueda integrarse usando el ejemplo que os muestro arriba. >> >> Alguna idea de como pudiera empezar para resolver este problemilla.! >> >> Gracias de antemano. >> > > # Datos > > x <- c(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20) > > V1 <- c(1, 3, 2, 7, 9, 11, 13, 12, 15, 19, 22) > > datos <- data.frame(x, V1) > > # Modelo lineal: > > ajust <- lm(V1 ~ x, data = datos) > > ajust > > ## define the integrated function > integrand <- function(x) {(ajust$coefficients["x"]) * x + > ajust$coefficients["(Intercept)"]} > > integrand > > ## integrate the function from 0 to infinity > integrate(integrand, lower = 0, upper = 20)# Otra forma es usar "predict": integrand.2 <- function(x) {predict(object = ajust, newdata = data.frame(x))} integrate(integrand.2, lower = 0, upper = 20)
Marcuzzi, Javier Rubén
2012-Jun-29 17:41 UTC
[R-es] convertir el resultado de un regresión lineal en una función
Estimados: Dato unos correos anteriores, y aclarando que nunca use esta parte de la tecnología matemática se me ocurrió leer algo y realizar ejercicios, pero hay algo que no comprendí correctamente, al correr el código seguramente se darán cuenta de un error muy básico, casi matemáticamente imperdonable, pero hay algo en R que no comprendí. # Datos x <- 1:10 V1 <- x+x datos <- data.frame(x, V1) plot(datos) # Modelo lineal: ajust <- lm(V1 ~ x, data = datos) ajust ## define the integrated function integrand <- function(x) {(ajust$coefficients["x"]) * x + ajust$coefficients["(Intercept)"]} integrand ## integrate the function from 0 to infinity integrate(integrand, lower = 0, upper = 2) # Otra forma es usar "predict": integrand.2 <- function(x) {predict(object = ajust, newdata = data.frame(x))} integrate(integrand.2, lower = 0, upper = 2) predict(object = ajust, newdata = data.frame(x)) xx<-2 integrand(xx) # mi duda o incomprención # viendo los datos, para xx igual a 2, tengo x 1 y x2, con valores de 2 y 4 # cumando a lo que corresponde a x1 y x2 es 6 # algo no comprendi bien -----Mensaje original----- From: Argel Gastélum Arellánez Sent: Friday, June 22, 2012 7:58 PM To: r-help-es en r-project.org Subject: Re: [R-es] convertir el resultado de un regresión lineal en una función El 22/06/12 17:04, Argel Gastélum Arellánez escribió:> Hola Daniel, tal vez esto te pueda servir... > > El 22/06/12 12:28, Daniel Arismendi escribió: >> Saludos a todos los miembros de la comunidad. >> >> Estoy en estos momentos intentando resolver un problemita con R (una >> metodología que tengo que repetir cerca de 100 veces con un conjunto de >> datos) y me gustaría convertir el resultado de una regresión lineal en >> una >> función que pueda ser integrada posteriormente, es decir: >> >> Tengo los siguiente: >> >file<- commandArgs(trailingOnly=TRUE) >> >options(digits=16) >> >options(max.print=5.5E5) >> >x<- seq(50001,100000,1) >> >datos<- read.table(file) >> >attach(datos) >> >ajust<- lm(V1~x,data=datos) >> >ajust. >> >> Hasta aquí no tengo problemas y se resolver integrales de manera numérica >> en R de manera aislada, por ejemplo: >> >>> ## define the integrated function >>> integrand<- function(x) {1/((x+1)*sqrt(x))} >>> ## integrate the function from 0 to infinity >>> integrate(integrand, lower = 0, upper = Inf) >> Cuando quiero intentar relacionar ambas cosas en una sola, no tengo idea >> de >> como pasar el resultado que arroja "ajust" y convertirlo en una función >> que >> pueda integrarse usando el ejemplo que os muestro arriba. >> >> Alguna idea de como pudiera empezar para resolver este problemilla.! >> >> Gracias de antemano. >> > > # Datos > > x <- c(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20) > > V1 <- c(1, 3, 2, 7, 9, 11, 13, 12, 15, 19, 22) > > datos <- data.frame(x, V1) > > # Modelo lineal: > > ajust <- lm(V1 ~ x, data = datos) > > ajust > > ## define the integrated function > integrand <- function(x) {(ajust$coefficients["x"]) * x + > ajust$coefficients["(Intercept)"]} > > integrand > > ## integrate the function from 0 to infinity > integrate(integrand, lower = 0, upper = 20)# Otra forma es usar "predict": integrand.2 <- function(x) {predict(object = ajust, newdata data.frame(x))} integrate(integrand.2, lower = 0, upper = 20) _______________________________________________ R-help-es mailing list R-help-es en r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es
Javier Marcuzzi
2012-Jun-30 04:20 UTC
[R-es] convertir el resultado de un regresión lineal en una función
Disculpen, ya está. Comprendí, estaba calculando el área bajo la curva, no la suma (o en todos casos sumando con interpolación entre un montón de puntos intermedios). Listo, me equivoqué en grande, ahora comprendo mi error. Javier El 29 de junio de 2012 14:41, Marcuzzi, Javier Rubén < javier.ruben.marcuzzi@gmail.com> escribió:> Estimados: > > Dato unos correos anteriores, y aclarando que nunca use esta parte de la > tecnología matemática se me ocurrió leer algo y realizar ejercicios, pero > hay algo que no comprendí correctamente, al correr el código seguramente se > darán cuenta de un error muy básico, casi matemáticamente imperdonable, > pero hay algo en R que no comprendí. > # Datos > x <- 1:10 > V1 <- x+x > datos <- data.frame(x, V1) > plot(datos) > > > # Modelo lineal: > ajust <- lm(V1 ~ x, data = datos) > ajust > > ## define the integrated function > integrand <- function(x) {(ajust$coefficients["x"]) * x + > ajust$coefficients["(**Intercept)"]} > integrand > > ## integrate the function from 0 to infinity > integrate(integrand, lower = 0, upper = 2) > > > # Otra forma es usar "predict": > integrand.2 <- function(x) {predict(object = ajust, newdata > data.frame(x))} > > integrate(integrand.2, lower = 0, upper = 2) > > predict(object = ajust, newdata = data.frame(x)) > xx<-2 > integrand(xx) > > # mi duda o incomprención > # viendo los datos, para xx igual a 2, tengo x 1 y x2, con valores de 2 y > 4 > # cumando a lo que corresponde a x1 y x2 es 6 > # algo no comprendi bien > > -----Mensaje original----- From: Argel Gastélum Arellánez > Sent: Friday, June 22, 2012 7:58 PM > To: r-help-es@r-project.org > Subject: Re: [R-es] convertir el resultado de un regresión lineal en una > función > > > > > El 22/06/12 17:04, Argel Gastélum Arellánez escribió: > >> Hola Daniel, tal vez esto te pueda servir... >> >> El 22/06/12 12:28, Daniel Arismendi escribió: >> >>> Saludos a todos los miembros de la comunidad. >>> >>> Estoy en estos momentos intentando resolver un problemita con R (una >>> metodología que tengo que repetir cerca de 100 veces con un conjunto de >>> datos) y me gustaría convertir el resultado de una regresión lineal en >>> una >>> función que pueda ser integrada posteriormente, es decir: >>> >>> Tengo los siguiente: >>> >file<- commandArgs(trailingOnly=TRUE) >>> >options(digits=16) >>> >options(max.print=5.5E5) >>> >x<- seq(50001,100000,1) >>> >datos<- read.table(file) >>> >attach(datos) >>> >ajust<- lm(V1~x,data=datos) >>> >ajust. >>> >>> Hasta aquí no tengo problemas y se resolver integrales de manera numérica >>> en R de manera aislada, por ejemplo: >>> >>> ## define the integrated function >>>> integrand<- function(x) {1/((x+1)*sqrt(x))} >>>> ## integrate the function from 0 to infinity >>>> integrate(integrand, lower = 0, upper = Inf) >>>> >>> Cuando quiero intentar relacionar ambas cosas en una sola, no tengo idea >>> de >>> como pasar el resultado que arroja "ajust" y convertirlo en una función >>> que >>> pueda integrarse usando el ejemplo que os muestro arriba. >>> >>> Alguna idea de como pudiera empezar para resolver este problemilla.! >>> >>> Gracias de antemano. >>> >>> >> # Datos >> >> x <- c(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20) >> >> V1 <- c(1, 3, 2, 7, 9, 11, 13, 12, 15, 19, 22) >> >> datos <- data.frame(x, V1) >> >> # Modelo lineal: >> >> ajust <- lm(V1 ~ x, data = datos) >> >> ajust >> >> ## define the integrated function >> integrand <- function(x) {(ajust$coefficients["x"]) * x + >> ajust$coefficients["(**Intercept)"]} >> >> integrand >> >> ## integrate the function from 0 to infinity >> integrate(integrand, lower = 0, upper = 20) >> > > # Otra forma es usar "predict": > integrand.2 <- function(x) {predict(object = ajust, newdata > data.frame(x))} > > integrate(integrand.2, lower = 0, upper = 20) > > ______________________________**_________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/**listinfo/r-help-es<https://stat.ethz.ch/mailman/listinfo/r-help-es> >[[alternative HTML version deleted]]