Buenos días: Supongamos que tengo este modelo: y_model = lm(y~ x1 + x2 + x3 + x4) summary(y_model) devuelve, entre otros valores, el "Multiple R-squared". Mi pregunta es la siguiente: ¿Cómo puedo obtener la contribución parcial (de cada variable x1, x2, x3, x4) a ese Multiple R-Squared? Gracias. Un saludo, Ana
Hola, Hace unos años se hizo la misma pregunta [1]. Ahora la función "ols()" está en el paquete "rms". [1]: http://r.789695.n4.nabble.com/Ask-for-functions-to-obtain-partial-R-square-squared-partial-correlation-coefficients-td832637.html Saludos, Carlos Ortega www.qualityexcellence.es El 16 de abril de 2012 10:27, Ana Pérez V. <anapv78@yahoo.es> escribió:> Buenos días: > > Supongamos que tengo este modelo: > > y_model = lm(y~ x1 + x2 + x3 + x4) > > summary(y_model) devuelve, entre otros valores, el "Multiple R-squared". > > Mi pregunta es la siguiente: ¿Cómo puedo obtener la contribución parcial > (de cada variable x1, x2, x3, x4) a ese Multiple R-Squared? > > > Gracias. > > Un saludo, > Ana > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Hola, Un ejemplo sintético de esto podría ser este:> x1 <- runif(200)> x2 <- runif(200)> x3 <- runif(200)> x4 <- runif(200)> y <- x1 + x2 + rnorm(200)> > > f <- ols(y ~ x1 + x2 + x3 + x4) > p <- plot(anova(f), what=''partial R2'') > p x2 x1 x3 x40.135473784 0.129309562 0.011969487 0.002554869 > No sé cómo de complicado puede ser tu modelo, pero vaya la estructura de definición es equivalente como ves a la que se hace con lm. Saludos, Carlos Ortega www.qualityexcellence.es El 16 de abril de 2012 21:56, Ana Pérez V. <anapv78@yahoo.es> escribió:> Gracias, Carlos. > > Lo he intentado y me da un error: > > Error en if (!length(fname) || !any(fname == zname)) { : > valor ausente donde TRUE/FALSE es necesario > Supongo que me falta algún parámetro de entrada. > > Ya os comentaré en qué queda esta hazaña, o si alguien tiene alguna > sugerencia acerca del error también es bienvenida. > > Un saludo. > Ana > > --- El *lun, 16/4/12, Carlos Ortega <cof@qualityexcellence.es>* escribió: > > > De: Carlos Ortega <cof@qualityexcellence.es> > Asunto: Re: [R-es] Duda Multiple R-squared > Para: "Ana Pérez V." <anapv78@yahoo.es> > CC: r-help-es@r-project.org > Fecha: lunes, 16 de abril, 2012 11:45 > > > Hola, > > Hace unos años se hizo la misma pregunta [1]. > Ahora la función "ols()" está en el paquete "rms". > > [1]: > http://r.789695.n4.nabble.com/Ask-for-functions-to-obtain-partial-R-square-squared-partial-correlation-coefficients-td832637.html > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 16 de abril de 2012 10:27, Ana Pérez V. <anapv78@yahoo.es<http://es.mc298.mail.yahoo.com/mc/compose?to=anapv78@yahoo.es> > > escribió: > > Buenos días: > > Supongamos que tengo este modelo: > > y_model = lm(y~ x1 + x2 + x3 + x4) > > summary(y_model) devuelve, entre otros valores, el "Multiple R-squared". > > Mi pregunta es la siguiente: ¿Cómo puedo obtener la contribución parcial > (de cada variable x1, x2, x3, x4) a ese Multiple R-Squared? > > > Gracias. > > Un saludo, > Ana > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org<http://es.mc298.mail.yahoo.com/mc/compose?to=R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Hola, Carlos: En el ejemplo que me remites, me surge una duda: la suma de los valores parciales que guardamos en p (en este caso, 0.2377), ¿no debería ser igual al valor del "Multiple R-squared" que obtenemos mediante ols y mediante lm?. Incluyo los resultados: fl <- lm(y ~ x1 + x2 + x3 + x4)> summary(fl)Call: lm(formula = y ~ x1 + x2 + x3 + x4) Residuals: Min 1Q Median 3Q Max -3.9990 -0.6635 -0.0213 0.6788 2.5588 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -0.7600 0.2779 -2.734 0.00683 ** x1 1.4186 0.2700 5.254 3.89e-07 *** x2 1.4450 0.2614 5.527 1.03e-07 *** x3 0.3147 0.2653 1.186 0.23697 x4 0.1613 0.2528 0.638 0.52417 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1.05 on 195 degrees of freedom Multiple R-squared: 0.2268, Adjusted R-squared: 0.2109 F-statistic: 14.3 on 4 and 195 DF, p-value: 2.984e-10 Es decir, con lm obtenemos un valor de 0.2268, que coincide con el obtenido mediante ols: f <- ols(y ~ x1 + x2 + x3 + x4)> fLinear Regression Model ols(formula = y ~ x1 + x2 + x3 + x4) Model Likelihood Discrimination Ratio Test Indexes Obs 200 LR chi2 51.43 R2 0.227 sigma 1.0502 d.f. 4 R2 adj 0.211 d.f. 195 Pr(> chi2) 0.0000 g 0.643 Residuals Min 1Q Median 3Q Max -3.99896 -0.66351 -0.02131 0.67881 2.55884 Coef S.E. t Pr(>|t|) Intercept -0.7600 0.2779 -2.73 0.0068 x1 1.4186 0.2700 5.25 <0.0001 x2 1.4450 0.2614 5.53 <0.0001 x3 0.3147 0.2653 1.19 0.2370 x4 0.1613 0.2528 0.64 0.5242 Conclusión: lm y ols caminan juntas en cuanto al valor "global", pero los valores parciales me confunden... Respecto a mi ejemplo, todavía no he conseguido ponerlo en marcha, pero en teoría estoy aplicando bien la idea. Es un simple y ~ x1 + x2 + x3 + x4, donde x1 y x3 son cosenoidales y x2 y x4 son senoidales. A ver si descubro dónde está el quid de la cuestión. Muchas gracias. Saludos. Ana --- El lun, 16/4/12, Carlos Ortega <cof@qualityexcellence.es> escribió: De: Carlos Ortega <cof@qualityexcellence.es> Asunto: Re: [R-es] Duda Multiple R-squared Para: "Ana Pérez V." <anapv78@yahoo.es> CC: r-help-es@r-project.org Fecha: lunes, 16 de abril, 2012 23:24 Hola, Un ejemplo sintético de esto podría ser este:> x1 <- runif(200) > x2 <- runif(200) > x3 <- runif(200) > x4 <- runif(200) > y <- x1 + x2 + rnorm(200) > > > f <- ols(y ~ x1 + x2 + x3 + x4) > p <- plot(anova(f), what=''partial R2'') > px2 x1 x3 x4 0.135473784 0.129309562 0.011969487 0.002554869>No sé cómo de complicado puede ser tu modelo, pero vaya la estructura de definición es equivalente como ves a la que se hace con lm. Saludos, Carlos Ortega www.qualityexcellence.es El 16 de abril de 2012 21:56, Ana Pérez V. <anapv78@yahoo.es> escribió: Gracias, Carlos. Lo he intentado y me da un error: Error en if (!length(fname) || !any(fname == zname)) { : valor ausente donde TRUE/FALSE es necesario Supongo que me falta algún parámetro de entrada. Ya os comentaré en qué queda esta hazaña, o si alguien tiene alguna sugerencia acerca del error también es bienvenida. Un saludo. Ana --- El lun, 16/4/12, Carlos Ortega <cof@qualityexcellence.es> escribió: De: Carlos Ortega <cof@qualityexcellence.es> Asunto: Re: [R-es] Duda Multiple R-squared Para: "Ana Pérez V." <anapv78@yahoo.es> CC: r-help-es@r-project.org Fecha: lunes, 16 de abril, 2012 11:45 Hola, Hace unos años se hizo la misma pregunta [1]. Ahora la función "ols()" está en el paquete "rms". [1]: http://r.789695.n4.nabble.com/Ask-for-functions-to-obtain-partial-R-square-squared-partial-correlation-coefficients-td832637.html Saludos, Carlos Ortega www.qualityexcellence.es El 16 de abril de 2012 10:27, Ana Pérez V. <anapv78@yahoo.es> escribió: Buenos días: Supongamos que tengo este modelo: y_model = lm(y~ x1 + x2 + x3 + x4) summary(y_model) devuelve, entre otros valores, el "Multiple R-squared". Mi pregunta es la siguiente: ¿Cómo puedo obtener la contribución parcial (de cada variable x1, x2, x3, x4) a ese Multiple R-Squared? Gracias. Un saludo, Ana _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Hola Ana, He estado mirando más despacio este tema y hay una forma bastante más fácil y directa de hacerlo. En vez de utilizar la librería "rms" se trataría de utilizar la librería "leaps". En esta librería mediante la función "regsubsets" puedes forzar todas las combinaciones posibles de las variables y para cada iteración se calculan diferentes parámetros entre ellos el R2. De esta forma puedes saber en cada iteración lo que una variable contribuye al R2 total. Adjunto un ejemplo reproducible: ##############################################> library(leaps)> data(swiss)> b<-regsubsets(Fertility~.,data=swiss,nbest=5, method="exhaustive")> summary(b)Subset selection objectCall: regsubsets.formula(Fertility ~ ., data = swiss, nbest = 5, method = "exhaustive") 5 Variables (and intercept) Forced in Forced out Agriculture FALSE FALSE Examination FALSE FALSE Education FALSE FALSE Catholic FALSE FALSE Infant.Mortality FALSE FALSE 5 subsets of each size up to 5 Selection Algorithm: exhaustive Agriculture Examination Education Catholic Infant.Mortality 1 ( 1 ) " " " " "*" " " " " 1 ( 2 ) " " "*" " " " " " " 1 ( 3 ) " " " " " " "*" " " 1 ( 4 ) " " " " " " " " "*" 1 ( 5 ) "*" " " " " " " " " 2 ( 1 ) " " " " "*" "*" " " 2 ( 2 ) " " " " "*" " " "*" 2 ( 3 ) " " "*" " " " " "*" 2 ( 4 ) " " "*" "*" " " " " 2 ( 5 ) "*" " " "*" " " " " 3 ( 1 ) " " " " "*" "*" "*" 3 ( 2 ) "*" " " "*" "*" " " 3 ( 3 ) " " "*" "*" " " "*" 3 ( 4 ) " " "*" "*" "*" " " 3 ( 5 ) "*" " " "*" " " "*" 4 ( 1 ) "*" " " "*" "*" "*" 4 ( 2 ) " " "*" "*" "*" "*" 4 ( 3 ) "*" "*" "*" "*" " " 4 ( 4 ) "*" "*" "*" " " "*" 4 ( 5 ) "*" "*" " " "*" "*" 5 ( 1 ) "*" "*" "*" "*" "*" > summary(b)$rsq [1] 0.4406156 0.4171645 0.2150035 0.1735189 0.1246649 0.5745071 [7] 0.5647800 0.5363016 0.5054845 0.4492484 0.6625438 0.6422541 [13] 0.6190960 0.5748498 0.5660833 0.6993476 0.6638654 0.6497897 [19] 0.6443624 0.5447723 0.7067350 ############################################## Por si quieres ver una alternativa adicional muy parecida a la de esta librería (leaps), puedes consultar el capítulo 9 de este libro: http://www.amazon.com/An-Companion-Linear-Statistical-Models/dp/1439873658/ref=sr_1_fkmr2_1?ie=UTF8&qid=1334687956&sr=8-1-fkmr2 Y el código aquí: http://www.crcpress.com/product/isbn/9781439873656 bajo "Download Updates". Saludos, Carlos Ortega www.qualityexcellence.es El 17 de abril de 2012 00:07, Ana Pérez V. <anapv78@yahoo.es> escribió:> Hola, Carlos: > > En el ejemplo que me remites, me surge una duda: la suma de los valores > parciales que guardamos en p (en este caso, 0.2377), ¿no debería ser igual > al valor del "Multiple R-squared" que obtenemos mediante ols y mediante lm?. > > Incluyo los resultados: > > fl <- lm(y ~ x1 + x2 + x3 + x4) > > summary(fl) > Call: > lm(formula = y ~ x1 + x2 + x3 + x4) > Residuals: > Min 1Q Median 3Q Max > -3.9990 -0.6635 -0.0213 0.6788 2.5588 > Coefficients: > Estimate Std. Error t value Pr(>|t|) > (Intercept) -0.7600 0.2779 -2.734 0.00683 ** > x1 1.4186 0.2700 5.254 3.89e-07 *** > x2 1.4450 0.2614 5.527 1.03e-07 *** > x3 0.3147 0.2653 1.186 0.23697 > x4 0.1613 0.2528 0.638 0.52417 > --- > Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 > Residual standard error: 1.05 on 195 degrees of freedom > Multiple R-squared: 0.2268, Adjusted R-squared: 0.2109 > F-statistic: 14.3 on 4 and 195 DF, p-value: 2.984e-10 > Es decir, con lm obtenemos un valor de 0.2268, que coincide con el > obtenido mediante ols: > > f <- ols(y ~ x1 + x2 + x3 + x4) > > f > Linear Regression Model > ols(formula = y ~ x1 + x2 + x3 + x4) > Model Likelihood Discrimination > Ratio Test Indexes > Obs 200 LR chi2 51.43 R2 0.227 > sigma 1.0502 d.f. 4 R2 adj 0.211 > d.f. 195 Pr(> chi2) 0.0000 g 0.643 > Residuals > Min 1Q Median 3Q Max > -3.99896 -0.66351 -0.02131 0.67881 2.55884 > Coef S.E. t Pr(>|t|) > Intercept -0.7600 0.2779 -2.73 0.0068 > x1 1.4186 0.2700 5.25 <0.0001 > x2 1.4450 0.2614 5.53 <0.0001 > x3 0.3147 0.2653 1.19 0.2370 > x4 0.1613 0.2528 0.64 0.5242 > Conclusión: lm y ols caminan juntas en cuanto al valor "global", pero los > valores parciales me confunden... > > Respecto a mi ejemplo, todavía no he conseguido ponerlo en marcha, pero en > teoría estoy aplicando bien la idea. Es un simple y ~ x1 + x2 + x3 + x4, > donde x1 y x3 son cosenoidales y x2 y x4 son senoidales. A ver si descubro > dónde está el quid de la cuestión. > > Muchas gracias. > > Saludos. > > Ana > > > > > --- El *lun, 16/4/12, Carlos Ortega <cof@qualityexcellence.es>* escribió: > > > De: Carlos Ortega <cof@qualityexcellence.es> > Asunto: Re: [R-es] Duda Multiple R-squared > Para: "Ana Pérez V." <anapv78@yahoo.es> > CC: r-help-es@r-project.org > Fecha: lunes, 16 de abril, 2012 23:24 > > > Hola, > > Un ejemplo sintético de esto podría ser este: > > > x1 <- runif(200)> x2 <- runif(200)> x3 <- runif(200)> x4 <- runif(200)> y <- x1 + x2 + rnorm(200)> > > f <- ols(y ~ x1 + x2 + x3 + x4) > p <- plot(anova(f), what=''partial R2'') > p x2 x1 x3 x4 > 0.135473784 0.129309562 0.011969487 0.002554869 > > > > No sé cómo de complicado puede ser tu modelo, pero vaya la estructura de definición es equivalente > como ves a la que se hace con lm. > > > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 16 de abril de 2012 21:56, Ana Pérez V. <anapv78@yahoo.es<http://es.mc298.mail.yahoo.com/mc/compose?to=anapv78@yahoo.es> > > escribió: > > Gracias, Carlos. > > Lo he intentado y me da un error: > > Error en if (!length(fname) || !any(fname == zname)) { : > valor ausente donde TRUE/FALSE es necesario > Supongo que me falta algún parámetro de entrada. > > Ya os comentaré en qué queda esta hazaña, o si alguien tiene alguna > sugerencia acerca del error también es bienvenida. > > Un saludo. > Ana > > --- El *lun, 16/4/12, Carlos Ortega <cof@qualityexcellence.es<http://es.mc298.mail.yahoo.com/mc/compose?to=cof@qualityexcellence.es> > >* escribió: > > > De: Carlos Ortega <cof@qualityexcellence.es<http://es.mc298.mail.yahoo.com/mc/compose?to=cof@qualityexcellence.es> > > > Asunto: Re: [R-es] Duda Multiple R-squared > Para: "Ana Pérez V." <anapv78@yahoo.es<http://es.mc298.mail.yahoo.com/mc/compose?to=anapv78@yahoo.es> > > > CC: r-help-es@r-project.org<http://es.mc298.mail.yahoo.com/mc/compose?to=r-help-es@r-project.org> > Fecha: lunes, 16 de abril, 2012 11:45 > > > Hola, > > Hace unos años se hizo la misma pregunta [1]. > Ahora la función "ols()" está en el paquete "rms". > > [1]: > http://r.789695.n4.nabble.com/Ask-for-functions-to-obtain-partial-R-square-squared-partial-correlation-coefficients-td832637.html > > Saludos, > Carlos Ortega > www.qualityexcellence.es > > El 16 de abril de 2012 10:27, Ana Pérez V. <anapv78@yahoo.es<http://es.mc298.mail.yahoo.com/mc/compose?to=anapv78@yahoo.es> > > escribió: > > Buenos días: > > Supongamos que tengo este modelo: > > y_model = lm(y~ x1 + x2 + x3 + x4) > > summary(y_model) devuelve, entre otros valores, el "Multiple R-squared". > > Mi pregunta es la siguiente: ¿Cómo puedo obtener la contribución parcial > (de cada variable x1, x2, x3, x4) a ese Multiple R-Squared? > > > Gracias. > > Un saludo, > Ana > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org<http://es.mc298.mail.yahoo.com/mc/compose?to=R-help-es@r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > > > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es > >-- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]
Mil gracias, Carlos. Lo probaré en los próximos días y os comento. Un saludo. Ana --- El mar, 17/4/12, Carlos Ortega <cof@qualityexcellence.es> escribió: De: Carlos Ortega <cof@qualityexcellence.es> Asunto: Re: [R-es] Duda Multiple R-squared Para: "Ana Pérez V." <anapv78@yahoo.es> CC: r-help-es@r-project.org Fecha: martes, 17 de abril, 2012 20:46 Hola Ana, He estado mirando más despacio este tema y hay una forma bastante más fácil y directa de hacerlo. En vez de utilizar la librería "rms" se trataría de utilizar la librería "leaps". En esta librería mediante la función "regsubsets" puedes forzar todas las combinaciones posibles de las variables y para cada iteración se calculan diferentes parámetros entre ellos el R2. De esta forma puedes saber en cada iteración lo que una variable contribuye al R2 total. Adjunto un ejemplo reproducible: ##############################################> library(leaps) > data(swiss) > b<-regsubsets(Fertility~.,data=swiss,nbest=5, method="exhaustive") > summary(b)Subset selection object Call: regsubsets.formula(Fertility ~ ., data = swiss, nbest = 5, method = "exhaustive") 5 Variables (and intercept) Forced in Forced out Agriculture FALSE FALSE Examination FALSE FALSE Education FALSE FALSE Catholic FALSE FALSE Infant.Mortality FALSE FALSE 5 subsets of each size up to 5 Selection Algorithm: exhaustive Agriculture Examination Education Catholic Infant.Mortality 1 ( 1 ) " " " " "*" " " " " 1 ( 2 ) " " "*" " " " " " " 1 ( 3 ) " " " " " " "*" " " 1 ( 4 ) " " " " " " " " "*" 1 ( 5 ) "*" " " " " " " " " 2 ( 1 ) " " " " "*" "*" " " 2 ( 2 ) " " " " "*" " " "*" 2 ( 3 ) " " "*" " " " " "*" 2 ( 4 ) " " "*" "*" " " " " 2 ( 5 ) "*" " " "*" " " " " 3 ( 1 ) " " " " "*" "*" "*" 3 ( 2 ) "*" " " "*" "*" " " 3 ( 3 ) " " "*" "*" " " "*" 3 ( 4 ) " " "*" "*" "*" " " 3 ( 5 ) "*" " " "*" " " "*" 4 ( 1 ) "*" " " "*" "*" "*" 4 ( 2 ) " " "*" "*" "*" "*" 4 ( 3 ) "*" "*" "*" "*" " " 4 ( 4 ) "*" "*" "*" " " "*" 4 ( 5 ) "*" "*" " " "*" "*" 5 ( 1 ) "*" "*" "*" "*" "*"> summary(b)$rsq[1] 0.4406156 0.4171645 0.2150035 0.1735189 0.1246649 0.5745071 [7] 0.5647800 0.5363016 0.5054845 0.4492484 0.6625438 0.6422541 [13] 0.6190960 0.5748498 0.5660833 0.6993476 0.6638654 0.6497897 [19] 0.6443624 0.5447723 0.7067350 ############################################## Por si quieres ver una alternativa adicional muy parecida a la de esta librería (leaps), puedes consultar el capítulo 9 de este libro: http://www.amazon.com/An-Companion-Linear-Statistical-Models/dp/1439873658/ref=sr_1_fkmr2_1?ie=UTF8&qid=1334687956&sr=8-1-fkmr2 Y el código aquí: http://www.crcpress.com/product/isbn/9781439873656 bajo "Download Updates". Saludos,Carlos Ortegawww.qualityexcellence.es El 17 de abril de 2012 00:07, Ana Pérez V. <anapv78@yahoo.es> escribió: Hola, Carlos: En el ejemplo que me remites, me surge una duda: la suma de los valores parciales que guardamos en p (en este caso, 0.2377), ¿no debería ser igual al valor del "Multiple R-squared" que obtenemos mediante ols y mediante lm?. Incluyo los resultados: fl <- lm(y ~ x1 + x2 + x3 + x4)> summary(fl)Call: lm(formula = y ~ x1 + x2 + x3 + x4) Residuals: Min 1Q Median 3Q Max -3.9990 -0.6635 -0.0213 0.6788 2.5588 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -0.7600 0.2779 -2.734 0.00683 ** x1 1.4186 0.2700 5.254 3.89e-07 *** x2 1.4450 0.2614 5.527 1.03e-07 *** x3 0.3147 0.2653 1.186 0.23697 x4 0.1613 0.2528 0.638 0.52417 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 1.05 on 195 degrees of freedom Multiple R-squared: 0.2268, Adjusted R-squared: 0.2109 F-statistic: 14.3 on 4 and 195 DF, p-value: 2.984e-10 Es decir, con lm obtenemos un valor de 0.2268, que coincide con el obtenido mediante ols: f <- ols(y ~ x1 + x2 + x3 + x4)> fLinear Regression Model ols(formula = y ~ x1 + x2 + x3 + x4) Model Likelihood Discrimination Ratio Test Indexes Obs 200 LR chi2 51.43 R2 0.227 sigma 1.0502 d.f. 4 R2 adj 0.211 d.f. 195 Pr(> chi2) 0.0000 g 0.643 Residuals Min 1Q Median 3Q Max -3.99896 -0.66351 -0.02131 0.67881 2.55884 Coef S.E. t Pr(>|t|) Intercept -0.7600 0.2779 -2.73 0.0068 x1 1.4186 0.2700 5.25 <0.0001 x2 1.4450 0.2614 5.53 <0.0001 x3 0.3147 0.2653 1.19 0.2370 x4 0.1613 0.2528 0.64 0.5242 Conclusión: lm y ols caminan juntas en cuanto al valor "global", pero los valores parciales me confunden... Respecto a mi ejemplo, todavía no he conseguido ponerlo en marcha, pero en teoría estoy aplicando bien la idea. Es un simple y ~ x1 + x2 + x3 + x4, donde x1 y x3 son cosenoidales y x2 y x4 son senoidales. A ver si descubro dónde está el quid de la cuestión. Muchas gracias. Saludos. Ana --- El lun, 16/4/12, Carlos Ortega <cof@qualityexcellence.es> escribió: De: Carlos Ortega <cof@qualityexcellence.es> Asunto: Re: [R-es] Duda Multiple R-squared Para: "Ana Pérez V." <anapv78@yahoo.es> CC: r-help-es@r-project.org Fecha: lunes, 16 de abril, 2012 23:24 Hola, Un ejemplo sintético de esto podría ser este:> x1 <- runif(200) > x2 <- runif(200) > x3 <- runif(200) > x4 <- runif(200) > y <- x1 + x2 + rnorm(200) > > > f <- ols(y ~ x1 + x2 + x3 + x4) > p <- plot(anova(f), what=''partial R2'') > px2 x1 x3 x4 0.135473784 0.129309562 0.011969487 0.002554869>No sé cómo de complicado puede ser tu modelo, pero vaya la estructura de definición es equivalente como ves a la que se hace con lm. Saludos, Carlos Ortega www.qualityexcellence.es El 16 de abril de 2012 21:56, Ana Pérez V. <anapv78@yahoo.es> escribió: Gracias, Carlos. Lo he intentado y me da un error: Error en if (!length(fname) || !any(fname == zname)) { : valor ausente donde TRUE/FALSE es necesario Supongo que me falta algún parámetro de entrada. Ya os comentaré en qué queda esta hazaña, o si alguien tiene alguna sugerencia acerca del error también es bienvenida. Un saludo. Ana --- El lun, 16/4/12, Carlos Ortega <cof@qualityexcellence.es> escribió: De: Carlos Ortega <cof@qualityexcellence.es> Asunto: Re: [R-es] Duda Multiple R-squared Para: "Ana Pérez V." <anapv78@yahoo.es> CC: r-help-es@r-project.org Fecha: lunes, 16 de abril, 2012 11:45 Hola, Hace unos años se hizo la misma pregunta [1]. Ahora la función "ols()" está en el paquete "rms". [1]: http://r.789695.n4.nabble.com/Ask-for-functions-to-obtain-partial-R-square-squared-partial-correlation-coefficients-td832637.html Saludos, Carlos Ortega www.qualityexcellence.es El 16 de abril de 2012 10:27, Ana Pérez V. <anapv78@yahoo.es> escribió: Buenos días: Supongamos que tengo este modelo: y_model = lm(y~ x1 + x2 + x3 + x4) summary(y_model) devuelve, entre otros valores, el "Multiple R-squared". Mi pregunta es la siguiente: ¿Cómo puedo obtener la contribución parcial (de cada variable x1, x2, x3, x4) a ese Multiple R-Squared? Gracias. Un saludo, Ana _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Saludos, Carlos Ortega www.qualityexcellence.es -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]]