Lucas Bianchi
2011-Feb-14 16:47 UTC
[R-es] Comparar modelo de regresión lineal y uno no lineal
Hola amigos, tengo una duda que es un poco básica de estadística, espero que no les moleste mi consulta, Estoy tratando de probar distintos modelos de regresión entre dos variables (ch_test e it). hice un modelo lineal y esto es lo que obtuve:> lm.1 <- lm(it ~ ch_test) > summary.lm(lm.1)*Call: lm(formula = it ~ ch_test) Residuals: Min 1Q Median 3Q Max -5.6116 -0.9904 -0.0959 1.6762 4.6369 ** * *Coefficients: * * Estimate Std. Error t value Pr(>|t|) (Intercept) -18.99132 11.25911 -1.687 0.1355 ch_test 0.24969 0.08222 3.037 0.0189 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.753 on 7 degrees of freedom Multiple R-squared: 0.5685, Adjusted R-squared: 0.5069 * *F-statistic: 9.222 on 1 and 7 DF, p-value: 0.01893 * * * El asunto es que quería probar tambien con un modelo escponencial (entre algún otro), obtuve lo siguiente:* * *> reg.exp <- nls(it ~ a*I(exp(1)^(b*ch_test)), data=datos,start=list(a=1,b=0), trace=T) * *> summary(reg.exp)* * 1989.75 : 1 0 1957.702 : 0.375272187 0.007802838 1648.346 : 0.25268773 0.01593421 1214.266 : 0.37483124 0.01746963 701.8665 : 0.5974365 0.0178336 241.8147 : 0.93081994 0.01789755 92.1678 : 1.26370672 0.01789614 92.1678 : 1.26371861 0.01789645 Formula: it ~ a * I(exp(1)^(b * ch_test)) Parameters: Estimate Std. Error t value Pr(>|t|) a 1.263719 1.056187 1.196 0.2705 b 0.017896 0.005793 3.089 0.0176 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 3.629 on 7 degrees of freedom Number of iterations to convergence: 7 Achieved convergence tolerance: 9.067e-07 * * * ¿Cómo puedo hacer para compararlos? siendo que en los modelos no lineales no conviene usar r² para hacerlo? ¿Sería correcto que compare el resultado que obtengo con deviance(lm.1) vs deviance(reg.exp), es decir, comparar la suma de los cuadrados de los residuales de cada modelo?* * ¿Me convendría linealizar el modelo exponencial y comparar los R²? Perdón por consulta tan simple, es que estoy tratando de aprender estadística y a usar R al mismo tiempo. Muchas Gracias, Lucas. [[alternative HTML version deleted]]
Gregorio R. Serrano
2011-Feb-14 17:34 UTC
[R-es] Comparar modelo de regresión lineal y uno no lineal
Hola. El modelo 2 es linealizable, así que no ganas nada por estimarlo mediante mínimos cuadrados no lineales y obtendrías las mismas estimaciones con lm(log(it)~log(ch_test)). Para la especificación del modelo (la forma funcional) te sugiero que pintes los datos, eso debería ser informativo sobre si la relación es aproximadamente lineal o logarítmica. Un saludo Gregorio R. Serrano El 14 de febrero de 2011 17:47, Lucas Bianchi <bianchi_lucas@yahoo.com.ar>escribió:> Hola amigos, > tengo una duda que es un poco básica de estadística, espero que no les > moleste mi consulta, > Estoy tratando de probar distintos modelos de regresión entre dos variables > (ch_test e it). > > hice un modelo lineal y esto es lo que obtuve: > > > lm.1 <- lm(it ~ ch_test) > > summary.lm(lm.1) > > *Call: > lm(formula = it ~ ch_test) > > Residuals: > Min 1Q Median 3Q Max > -5.6116 -0.9904 -0.0959 1.6762 4.6369 > ** > * > *Coefficients: > * > * Estimate Std. Error t value Pr(>|t|) > (Intercept) -18.99132 11.25911 -1.687 0.1355 > ch_test 0.24969 0.08222 3.037 0.0189 * > --- > Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 > > Residual standard error: 3.753 on 7 degrees of freedom > Multiple R-squared: 0.5685, Adjusted R-squared: 0.5069 > * > *F-statistic: 9.222 on 1 and 7 DF, p-value: 0.01893 * > * > * > El asunto es que quería probar tambien con un modelo escponencial (entre > algún otro), obtuve lo siguiente:* > * > * > > reg.exp <- nls(it ~ a*I(exp(1)^(b*ch_test)), data=datos, > start=list(a=1,b=0), trace=T) > * > *> summary(reg.exp)* > * > 1989.75 : 1 0 > 1957.702 : 0.375272187 0.007802838 > 1648.346 : 0.25268773 0.01593421 > 1214.266 : 0.37483124 0.01746963 > 701.8665 : 0.5974365 0.0178336 > 241.8147 : 0.93081994 0.01789755 > 92.1678 : 1.26370672 0.01789614 > 92.1678 : 1.26371861 0.01789645 > > Formula: it ~ a * I(exp(1)^(b * ch_test)) > > Parameters: > Estimate Std. Error t value Pr(>|t|) > a 1.263719 1.056187 1.196 0.2705 > b 0.017896 0.005793 3.089 0.0176 * > --- > Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 > > Residual standard error: 3.629 on 7 degrees of freedom > > Number of iterations to convergence: 7 > Achieved convergence tolerance: 9.067e-07 > * > * > * > ¿Cómo puedo hacer para compararlos? siendo que en los modelos no lineales > no > conviene usar r² para hacerlo? > ¿Sería correcto que compare el resultado que obtengo con deviance(lm.1) vs > deviance(reg.exp), es decir, comparar la suma de los cuadrados de los > residuales de cada modelo?* > * > ¿Me convendría linealizar el modelo exponencial y comparar los R²? > > Perdón por consulta tan simple, es que estoy tratando de aprender > estadística y a usar R al mismo tiempo. > > Muchas Gracias, > > Lucas. > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >-- Dr. Gregorio R. Serrano Dpto. Economía Cuantitativa (UCM) Voz:+34 91394 2361 Fax:+34 91394 2591 http://www.grserrano.es [[alternative HTML version deleted]]
Gregorio R. Serrano
2011-Feb-14 17:53 UTC
[R-es] Comparar modelo de regresión lineal y uno no lineal
No, no debes comparar los R^2, la variable dependiente no es la misma, así que no es una comparación "justa", aunque no dejaría de mirarlos. Lo de pintar los datos pues ... plot(ch_test, it) y plot(log(ch_test), log(it)) y uno debería tener un aspecto más lineal que el otro ... Un saludo Gregorio R. Serrano El 14 de febrero de 2011 18:43, Lucas Bianchi <bianchi_lucas@yahoo.com.ar>escribió:> Hola Gregorio, > creo que haré eso, linealizar el segundo modelo, en ese caso ¿puedo > comparar los R² sin problemas, no? > > Perdón, pero ¿qué es lo que querés decir con "pintar los datos"? > > Muchas Gracias, > > un saludo, > > Lucas. > > El 14 de febrero de 2011 14:34, Gregorio R. Serrano <grserrano@ccee.ucm.es > > escribió: > > Hola. >> >> El modelo 2 es linealizable, así que no ganas nada por estimarlo mediante >> mínimos cuadrados no lineales y obtendrías las mismas estimaciones con >> lm(log(it)~log(ch_test)). Para la especificación del modelo (la forma >> funcional) te sugiero que pintes los datos, eso debería ser informativo >> sobre si la relación es aproximadamente lineal o logarítmica. >> >> Un saludo >> Gregorio R. Serrano >> >> >> El 14 de febrero de 2011 17:47, Lucas Bianchi <bianchi_lucas@yahoo.com.ar >> > escribió: >> >>> Hola amigos, >>> tengo una duda que es un poco básica de estadística, espero que no les >>> moleste mi consulta, >>> Estoy tratando de probar distintos modelos de regresión entre dos >>> variables >>> (ch_test e it). >>> >>> hice un modelo lineal y esto es lo que obtuve: >>> >>> > lm.1 <- lm(it ~ ch_test) >>> > summary.lm(lm.1) >>> >>> *Call: >>> lm(formula = it ~ ch_test) >>> >>> Residuals: >>> Min 1Q Median 3Q Max >>> -5.6116 -0.9904 -0.0959 1.6762 4.6369 >>> ** >>> * >>> *Coefficients: >>> * >>> * Estimate Std. Error t value Pr(>|t|) >>> (Intercept) -18.99132 11.25911 -1.687 0.1355 >>> ch_test 0.24969 0.08222 3.037 0.0189 * >>> --- >>> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 >>> >>> Residual standard error: 3.753 on 7 degrees of freedom >>> Multiple R-squared: 0.5685, Adjusted R-squared: 0.5069 >>> * >>> *F-statistic: 9.222 on 1 and 7 DF, p-value: 0.01893 * >>> * >>> * >>> El asunto es que quería probar tambien con un modelo escponencial (entre >>> algún otro), obtuve lo siguiente:* >>> * >>> * >>> > reg.exp <- nls(it ~ a*I(exp(1)^(b*ch_test)), data=datos, >>> start=list(a=1,b=0), trace=T) >>> * >>> *> summary(reg.exp)* >>> * >>> 1989.75 : 1 0 >>> 1957.702 : 0.375272187 0.007802838 >>> 1648.346 : 0.25268773 0.01593421 >>> 1214.266 : 0.37483124 0.01746963 >>> 701.8665 : 0.5974365 0.0178336 >>> 241.8147 : 0.93081994 0.01789755 >>> 92.1678 : 1.26370672 0.01789614 >>> 92.1678 : 1.26371861 0.01789645 >>> >>> Formula: it ~ a * I(exp(1)^(b * ch_test)) >>> >>> Parameters: >>> Estimate Std. Error t value Pr(>|t|) >>> a 1.263719 1.056187 1.196 0.2705 >>> b 0.017896 0.005793 3.089 0.0176 * >>> --- >>> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 >>> >>> Residual standard error: 3.629 on 7 degrees of freedom >>> >>> Number of iterations to convergence: 7 >>> Achieved convergence tolerance: 9.067e-07 >>> * >>> * >>> * >>> ¿Cómo puedo hacer para compararlos? siendo que en los modelos no lineales >>> no >>> conviene usar r² para hacerlo? >>> ¿Sería correcto que compare el resultado que obtengo con deviance(lm.1) >>> vs >>> deviance(reg.exp), es decir, comparar la suma de los cuadrados de los >>> residuales de cada modelo?* >>> * >>> ¿Me convendría linealizar el modelo exponencial y comparar los R²? >>> >>> Perdón por consulta tan simple, es que estoy tratando de aprender >>> estadística y a usar R al mismo tiempo. >>> >>> Muchas Gracias, >>> >>> Lucas. >>> >>> [[alternative HTML version deleted]] >>> >>> >>> _______________________________________________ >>> R-help-es mailing list >>> R-help-es@r-project.org >>> https://stat.ethz.ch/mailman/listinfo/r-help-es >>> >>> >> >> >> -- >> Dr. Gregorio R. Serrano >> Dpto. Economía Cuantitativa (UCM) >> Voz:+34 91394 2361 >> Fax:+34 91394 2591 >> http://www.grserrano.es >> > >-- Dr. Gregorio R. Serrano Dpto. Economía Cuantitativa (UCM) Voz:+34 91394 2361 Fax:+34 91394 2591 http://www.grserrano.es [[alternative HTML version deleted]]