Buenas tardes para todos, Estoy trabajando con una tabla de datos que contiene una variable ordinal (X) y otra nominal (Y). La primera tiene categorias n1,n2, n3 y n4 siendo n4 la de mayor gravedad, y la segunda tiene categorias A, B, C, D (el orden no importa). Me gustaría determinar la correlación entre X y Y utilizando R (por supuesto!) y sin perder la información ordinal que contiene X. En CRAN encontré que una opción podría ser la librería polycor pero desafortunadamente las funciones que se encuentran allí no aplican para cuando X es ordinal y Y es nominal. En [1] sugieren utilizar el coeficiente de correlación "Rank-Biserial" pero mis datos tienen más de dos categorías en ambas variables. Podría alguien sugerirme alguna otra librería / función en R que pueda utilizar? Muchas gracias por su tiempo, Jorge Ivan Velez [1] http://www.andrews.edu/~calkins/math/edrm611/edrm13.htm [[alternative HTML version deleted]]
Pablo Emilio Verde
2009-Sep-29 09:19 UTC
[R-es] Re: Correlación entre X (ordinal) y Y (nomial)
Hola Jorge, En el Wikipedia acabo de leer: "la correlación indica la fuerza y la dirección de una relación lineal entre dos variables aleatorias". En el caso de variables aleatores que no son continuas, parece que el concepto de correlacion es mas misterioso. En la version en ingles de este articulo de Wiki aprace: "The polychoric correlation is another correlation applied to ordinal data ..." Cuando vi la palabra "polychoric" pense que se referia a alguna substancia quimica ... Bueno, te doy una sugerencia sobre tu problema, que en definitiva queres medir asociacion entre Y y X. Aparte de usar un test Chi^2 de asociacion entre X e Y, una posibiliadad es utilizar regresion. Para la asociacion Pr(X|Y) podes aplicar: "Proportional-odds" con la funcion "polr( X ~ Y )" que esta en el paquete "MASS". Para la asociacion Pr(Y|X) regresion multinomial con la funcion "multinom(Y ~X)" del paquete "nnet". Los coeficientes de estos modelos representan "logOdds" asi que estan centrados en 0. Esta estrategia tiene el efecto colateral de que podes analizar si los modelos ajustan tus datos o no (e.g. residuos etc.). Uno esperaria que los resulatados en una direccion y la otra sean similares, y dependera de la forma que quieras presentar los resultados elegir uno u otro. En una situacion mas complicada en la que te den distintos resultados Pr(Y|X) y Pr(X|Y) creo que deberias investigar como han sido generados estos datos. Espero que te sirva. Saludos. Pablo ----- Original Message ----- From: "Jorge Ivan Velez" <jorgeivanvelez en gmail.com> To: "R-help-es" <r-help-es en r-project.org> Sent: Tuesday, September 29, 2009 12:19 AM Subject: [R-es] Correlación entre X (ordinal) y Y (nomial) Buenas tardes para todos, Estoy trabajando con una tabla de datos que contiene una variable ordinal (X) y otra nominal (Y). La primera tiene categorias n1,n2, n3 y n4 siendo n4 la de mayor gravedad, y la segunda tiene categorias A, B, C, D (el orden no importa). Me gustaría determinar la correlación entre X y Y utilizando R (por supuesto!) y sin perder la información ordinal que contiene X. En CRAN encontré que una opción podría ser la librería polycor pero desafortunadamente las funciones que se encuentran allí no aplican para cuando X es ordinal y Y es nominal. En [1] sugieren utilizar el coeficiente de correlación "Rank-Biserial" pero mis datos tienen más de dos categorías en ambas variables. Podría alguien sugerirme alguna otra librería / función en R que pueda utilizar? Muchas gracias por su tiempo, Jorge Ivan Velez [1] http://www.andrews.edu/~calkins/math/edrm611/edrm13.htm [[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
Carlos J. Gil Bellosta
2009-Sep-29 09:55 UTC
[R-es] Correlación entre X (ordinal) y Y (nomial)
Hola, ¿qué tal? Me cuesta cierto trabajo imaginar una definición de correlación entre dos variables si una de ellas es nominal desordenada que recoja la idea general de cuantificar "en qué medida crece (o decrece) Y cuando crece X"... Un saludo, Carlos J. Gil Bellosta http://www.datanalytics.com El día 29 de septiembre de 2009 00:19, Jorge Ivan Velez <jorgeivanvelez en gmail.com> escribió:> Buenas tardes para todos, > > Estoy trabajando con una tabla de datos que contiene una variable ordinal > (X) y otra nominal (Y). La primera tiene categorias n1,n2, n3 y n4 siendo n4 > la de mayor gravedad, y la segunda tiene categorias A, B, C, D (el orden no > importa). > > Me gustaría determinar la correlación entre X y Y utilizando R (por > supuesto!) y sin perder la información ordinal que contiene X. En CRAN > encontré que una opción podría ser la librería polycor pero > desafortunadamente las funciones que se encuentran allí no aplican para > cuando X es ordinal y Y es nominal. En [1] sugieren utilizar el coeficiente > de correlación "Rank-Biserial" pero mis datos tienen más de dos categorías > en ambas variables. > > Podría alguien sugerirme alguna otra librería / función en R que pueda > utilizar? > > Muchas gracias por su tiempo, > > Jorge Ivan Velez > [1] http://www.andrews.edu/~calkins/math/edrm611/edrm13.htm > > [[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 > >
Hola, quizás podría valer un coeficiente de asociación entre una variable cualitativa y otra cuantitativa, asumiendo que la ordinal se puede considerar como cuantitativa de alguna manera (al estilo del índice de Likert). Un coeficiente posible es el coeficiente eta: "A measure of association that ranges from 0 to 1, with 0 indicating no association between the row and column variables and values close to 1 indicating a high degree of association. Eta is appropriate for a dependent variable measured on an interval scale (for example, income) and an independent variable with a limited number of categories (for example, gender). Two eta values are computed: one treats the row variable as the interval variable, and the other treats the column variable as the interval variable" O bien en http://faculty.chass.ncsu.edu/garson/PA765/eta.htm Saludos> Hola, ¿qué tal? > > Me cuesta cierto trabajo imaginar una definición de correlación entre > dos variables si una de ellas es nominal desordenada que recoja la > idea general de cuantificar "en qué medida crece (o decrece) Y cuando > crece X"... > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > El día 29 de septiembre de 2009 00:19, Jorge Ivan Velez > <jorgeivanvelez en gmail.com> escribió: >> Buenas tardes para todos, >> >> Estoy trabajando con una tabla de datos que contiene una variable ordinal >> (X) y otra nominal (Y). La primera tiene categorias n1,n2, n3 y n4 siendo n4 >> la de mayor gravedad, y la segunda tiene categorias A, B, C, D (el orden no >> importa). >> >> Me gustaría determinar la correlación entre X y Y utilizando R (por >> supuesto!) y sin perder la información ordinal que contiene X. En CRAN >> encontré que una opción podría ser la librería polycor pero >> desafortunadamente las funciones que se encuentran allí no aplican para >> cuando X es ordinal y Y es nominal. En [1] sugieren utilizar el coeficiente >> de correlación "Rank-Biserial" pero mis datos tienen más de dos categorías >> en ambas variables. >> >> Podría alguien sugerirme alguna otra librería / función en R que pueda >> utilizar? >> >> Muchas gracias por su tiempo, >> >> Jorge Ivan Velez >> [1] http://www.andrews.edu/~calkins/math/edrm611/edrm13.htm >> >> [[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 >> >> > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >jm~ _______________________________ J. Miguel Marin http://www.est.uc3m.es/jmmarin Dep. of Statistics University Carlos III of Madrid Spain (E.U.)
Empezando por el final, querido Carlos: A mí no me cuesta nada una definición de correlación entre cualquier tipo de variables: una medida de la intensidad de la relación entre dos variables. En un extremo de las posibilidades estaría la independencia y en el otro una relación puramente determinista. En el caso del ejemplo de Jorge podría ser n1 -> A, n2 -> B, n3 -> C y n4 -> D. O por supuesto cualquier otra combinación. Otra cuestión sería buscar una función de regresión que nos llevaría directamente a una función discriminante o a una regresión logística multinomial. Pero volviendo al problema de la correlación que es mucho más sencillo la medida clásica "Coeficiente de contingencia de Pearson" se obtendría a partir de la tabla de contingencia en este caso 4x4 y su valor es: P = sqrt( (ji^2 / N) / (1 + ji^2 /N) ) = sqrt( ji^2 / (N + ji^2) ) Everitt, B.S.; 1977, "The Analysis of Contingency Tables" Es una medida en la que 0 significa independencia, pero que lamentablemete su limite superior no es 1 sino sqrt( (q-1)/ q), donde q es el menor número entre el número de filas y el de columnas. En el caso de Jorge el límite superior de esta función es: sqrt( 3/ 4) = 0.866 No es exactamente 1 el máximo pero para cuatro valores no está mal. Hay muchas medidas más y algunas muy clásicas aparecen en el libro de Everitt que cito. Para su aplicación en R la función a utilizar es evidentemente "chisq.test" del páquete básico "stats" El tema da para mucho más a partir de la regresión logística multinomial, pero como primera medida haber hecho una aportación suficiente. Un saludo. Carlos J. Gil Bellosta escribió:> Hola, ¿qué tal? > > Me cuesta cierto trabajo imaginar una definición de correlación entre > dos variables si una de ellas es nominal desordenada que recoja la > idea general de cuantificar "en qué medida crece (o decrece) Y cuando > crece X"... > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > El día 29 de septiembre de 2009 00:19, Jorge Ivan Velez > <jorgeivanvelez@gmail.com> escribió: > >> Buenas tardes para todos, >> >> Estoy trabajando con una tabla de datos que contiene una variable ordinal >> (X) y otra nominal (Y). La primera tiene categorias n1,n2, n3 y n4 siendo n4 >> la de mayor gravedad, y la segunda tiene categorias A, B, C, D (el orden no >> importa). >> >> Me gustaría determinar la correlación entre X y Y utilizando R (por >> supuesto!) y sin perder la información ordinal que contiene X. En CRAN >> encontré que una opción podría ser la librería polycor pero >> desafortunadamente las funciones que se encuentran allí no aplican para >> cuando X es ordinal y Y es nominal. En [1] sugieren utilizar el coeficiente >> de correlación "Rank-Biserial" pero mis datos tienen más de dos categorías >> en ambas variables. >> >> Podría alguien sugerirme alguna otra librería / función en R que pueda >> utilizar? >> >> Muchas gracias por su tiempo, >> >> Jorge Ivan Velez >> [1] http://www.andrews.edu/~calkins/math/edrm611/edrm13.htm >> >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >> > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Empezando por el final, querido Carlos: A mí no me cuesta nada una definición de correlación entre cualquier tipo de variables: una medida de la intensidad de la relación entre dos variables. En un extremo de las posibilidades estaría la independencia y en el otro una relación puramente determinista. En el caso del ejemplo de Jorge podría ser n1 -> A, n2 -> B, n3 -> C y n4 -> D. O por supuesto cualquier otra combinación. Otra cuestión sería buscar una función de regresión que nos llevaría directamente a una función discriminante o a una regresión logística multinomial. Pero volviendo al problema de la correlación que es mucho más sencillo la medida clásica "Coeficiente de contingencia de Pearson" se obtendría a partir de la tabla de contingencia en este caso 4x4 y su valor es: P = sqrt( (ji^2 / N) / (1 + ji^2 /N) ) = sqrt( ji^2 / (N + ji^2) ) Everitt, B.S.; 1977, "The Analysis of Contingency Tables" Es una medida en la que 0 significa independencia, pero que lamentablemete su limite superior no es 1 sino sqrt( (q-1)/ q), donde q es el menor número entre el número de filas y el de columnas. En el caso de Jorge el límite superior de esta función es: sqrt( 3/ 4) = 0.866 No es exactamente 1 el máximo pero para cuatro valores no está mal. Hay muchas medidas más y algunas muy clásicas aparecen en el libro de Everitt que cito. Para su aplicación en R la función a utilizar es evidentemente "chisq.test" del páquete básico "stats" El tema da para mucho más a partir de la regresión logística multinomial, pero como primera medida haber hecho una aportación suficiente. Un saludo. Carlos J. Gil Bellosta escribió:> Hola, ¿qué tal? > > Me cuesta cierto trabajo imaginar una definición de correlación entre > dos variables si una de ellas es nominal desordenada que recoja la > idea general de cuantificar "en qué medida crece (o decrece) Y cuando > crece X"... > > Un saludo, > > Carlos J. Gil Bellosta > http://www.datanalytics.com > > > El día 29 de septiembre de 2009 00:19, Jorge Ivan Velez > <jorgeivanvelez@gmail.com> escribió: > >> Buenas tardes para todos, >> >> Estoy trabajando con una tabla de datos que contiene una variable ordinal >> (X) y otra nominal (Y). La primera tiene categorias n1,n2, n3 y n4 siendo n4 >> la de mayor gravedad, y la segunda tiene categorias A, B, C, D (el orden no >> importa). >> >> Me gustaría determinar la correlación entre X y Y utilizando R (por >> supuesto!) y sin perder la información ordinal que contiene X. En CRAN >> encontré que una opción podría ser la librería polycor pero >> desafortunadamente las funciones que se encuentran allí no aplican para >> cuando X es ordinal y Y es nominal. En [1] sugieren utilizar el coeficiente >> de correlación "Rank-Biserial" pero mis datos tienen más de dos categorías >> en ambas variables. >> >> Podría alguien sugerirme alguna otra librería / función en R que pueda >> utilizar? >> >> Muchas gracias por su tiempo, >> >> Jorge Ivan Velez >> [1] http://www.andrews.edu/~calkins/math/edrm611/edrm13.htm >> >> [[alternative HTML version deleted]] >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es@r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> >> >> > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola! Una posibilidad es alguna versión de análisis en correspondencias! Cuando has elegido la versión apropiado, usas simplemente la correlación canónica ... Un paquete que puede ser útil es el de Jan deLeuww (?), homals, puedes hacer CA con muchas restricciones extra, como lo de monotonia (implementado, creo, con splines monótonas). Un truco que yo he encontrado útil es imprimir la tabla de contingencia con las categórias reordenados de acuerdo a los escores. Kjetil 2009/9/29 Pepe Trujillo <pepetrujo en gmail.com>:> Empezando por el final, querido Carlos: > > A mí no me cuesta nada una definición de correlación entre cualquier > tipo de variables: una medida de la intensidad de la relación entre dos > variables. > > En un extremo de las posibilidades estaría la independencia y en el otro > una relación puramente determinista. En el caso del ejemplo de Jorge > podría ser n1 -> A, n2 -> B, n3 -> C y n4 -> D. O por supuesto > cualquier otra combinación. Otra cuestión sería buscar una función de > regresión que nos llevaría directamente a una función discriminante o a > una regresión logística multinomial. > > Pero volviendo al problema de la correlación que es mucho más sencillo > la medida clásica "Coeficiente de contingencia de Pearson" se obtendría > a partir de la tabla de contingencia en este caso 4x4 y su valor es: > > P = sqrt( (ji^2 / N) / (1 + ji^2 /N) ) = sqrt( ji^2 / (N + ji^2) ) > Everitt, B.S.; 1977, "The Analysis of Contingency Tables" > > Es una medida en la que 0 significa independencia, pero que > lamentablemete su limite superior no es 1 sino sqrt( (q-1)/ q), donde q > es el menor número entre el número de filas y el de columnas. En el caso > de Jorge el límite superior de esta función es: > > sqrt( 3/ 4) = 0.866 > > No es exactamente 1 el máximo pero para cuatro valores no está mal. > > Hay muchas medidas más y algunas muy clásicas aparecen en el libro de > Everitt que cito. > > Para su aplicación en R la función a utilizar es evidentemente > "chisq.test" del páquete básico "stats" > > El tema da para mucho más a partir de la regresión logística > multinomial, pero como primera medida haber hecho una aportación suficiente. > > Un saludo. > > > > Carlos J. Gil Bellosta escribió: >> Hola, ¿qué tal? >> >> Me cuesta cierto trabajo imaginar una definición de correlación entre >> dos variables si una de ellas es nominal desordenada que recoja la >> idea general de cuantificar "en qué medida crece (o decrece) Y cuando >> crece X"... >> >> Un saludo, >> >> Carlos J. Gil Bellosta >> http://www.datanalytics.com >> >> >> El día 29 de septiembre de 2009 00:19, Jorge Ivan Velez >> <jorgeivanvelez en gmail.com> escribió: >> >>> Buenas tardes para todos, >>> >>> Estoy trabajando con una tabla de datos que contiene una variable ordinal >>> (X) y otra nominal (Y). La primera tiene categorias n1,n2, n3 y n4 siendo n4 >>> la de mayor gravedad, y la segunda tiene categorias A, B, C, D (el orden no >>> importa). >>> >>> Me gustaría determinar la correlación entre X y Y utilizando R (por >>> supuesto!) y sin perder la información ordinal que contiene X. En CRAN >>> encontré que una opción podría ser la librería polycor pero >>> desafortunadamente las funciones que se encuentran allí no aplican para >>> cuando X es ordinal y Y es nominal. En [1] sugieren utilizar el coeficiente >>> de correlación "Rank-Biserial" pero mis datos tienen más de dos categorías >>> en ambas variables. >>> >>> Podría alguien sugerirme alguna otra librería / función en R que pueda >>> utilizar? >>> >>> Muchas gracias por su tiempo, >>> >>> Jorge Ivan Velez >>> [1] http://www.andrews.edu/~calkins/math/edrm611/edrm13.htm >>> >>> [[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 >>> >>> >>> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > [[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 > >-- "... an entire human genome would fit on a music CD." --- www.thinkgene.com