Listwise warning with ANOVA and other analysis, for several DV in a hit
When you need to estimate several ANOVA, ROC curve, even maybe with T TEST, and you replace in the depedent variable section for more than one variable, like this:
UNIANOVA
VARD1 VARD2 BY group
/METHOD=SSTYPE(3)
/INTERCEPT=INCLUDE
/POSTHOC=group(BONFERRONI)
/PLOT=PROFILE(group)
/EMMEANS=TABLES(OVERALL)
/EMMEANS=TABLES(group) COMPARE ADJ(BONFERRONI)
/PRINT=ETASQ HOMOGENEITY DESCRIPTIVE
/CRITERIA=ALPHA(.05)
/DESIGN=group.
What SPSS would do regarding the listwise deletion cases is to restrict your analizable sample data, to the common cases which have valid values for the 3 variables as a whole. All in all, this means all the estimates are restricted to this maybe smaller data sample of the overall data available to estimate all the parameters.
If you have full data (no missing cases), or just a few missing data, is not going to cause too much of trouble. Maybe just a small deviation for the parameters which would not affect decisions over scale selection, for example. Nevertheless, if you got at least one variable of them with a considerable loss of data (lets say 50% valid cases for the overall data set), all the estimates will be calculated using this restricted list wise cases instead of the full available data for each pair of variables (vard1 with group & vard2 with group) biasing seriously the parameter estimates (F, n2p, for this case).
So be careful.
But if you still need to get the n2p for each pair of variables for a set of 36 dependent variables for example, employing cross reference 'email list' from WORD, you can automatize the production of a proper list of SPSS syntax for each pair, avoiding to write down 36 sets of code line.
UNIANOVA
<<insert field here>> BY group
/METHOD=SSTYPE(3)
/INTERCEPT=INCLUDE
/POSTHOC=group(BONFERRONI)
/PLOT=PROFILE(group)
/EMMEANS=TABLES(OVERALL)
/EMMEANS=TABLES(group) COMPARE ADJ(BONFERRONI)
/PRINT=ETASQ HOMOGENEITY DESCRIPTIVE
/CRITERIA=ALPHA(.05)
/DESIGN=group.
===> edit documents:
UNIANOVA
vard1 BY group
/METHOD=SSTYPE(3)
/INTERCEPT=INCLUDE
/POSTHOC=group(BONFERRONI)
/PLOT=PROFILE(group)
/EMMEANS=TABLES(OVERALL)
/EMMEANS=TABLES(group) COMPARE ADJ(BONFERRONI)
/PRINT=ETASQ HOMOGENEITY DESCRIPTIVE
/CRITERIA=ALPHA(.05)
/DESIGN=group.
UNIANOVA
vard2 BY group
/METHOD=SSTYPE(3)
/INTERCEPT=INCLUDE
/POSTHOC=group(BONFERRONI)
/PLOT=PROFILE(group)
/EMMEANS=TABLES(OVERALL)
/EMMEANS=TABLES(group) COMPARE ADJ(BONFERRONI)
/PRINT=ETASQ HOMOGENEITY DESCRIPTIVE
/CRITERIA=ALPHA(.05)
/DESIGN=group.
I'll try to re-write this post with a proper example, in a few days.
Cómo calcular el RUT en SPSS, mediante syntax
SPSS matriz de gráficos de una sola variable
El tema es como generar una matriz de graficos en spss en base, principalmente, a una variable pero customizado. Estoy pensando en algo como en la siguiente imagen

El problema particular lo planteo del siguiente modo:
Tengo 32 carreras y quiero ver en paneles como se comportan respecto de cierto item. El problema está en que no sé como configurar para decirle a SPSS que agrupe en 8 filas y 4 columnas cada uno de los graficos. Sólo puedo agrupar las 32 carreras en una columna con 32 filas o en una fila con 32 columnas (formato para nada practico como podrán imaginarse)
Lo que se me ocurrio entonces, fue entender primero este "panel de graficos" como una matriz de graficos y asingarle una ubicacion a cada uno en base a su posicion vertical y horizontal. Por ejemplo la carrera de arte y teatro iria en la ubicación fila 1, columna 1 (1,1) y trabajo social en la ubicacion (8,4).
Tomando el problema desde esta perspectiva, compute dos variables, la primera se llamó rowpanel donde le asigne a cada carrera su posición en la fila que le correspondía, la segunda, colpanel, le asigne la columna a cada carrera segun le correspondia. Preferí ordenar las carreras en orden alfabetico, es decir Agronomía en el (1,1) y trabajo social en la posicion (8,4), sin embargo eso es optativo. La escritura sistemática de las formulas fue realizada con excel 2007 y el comando "display dictionary" de spss. La formula para asignar los numeros en spss fue "if(carrera=Valor numerico de la carrera) rowpanel (o colpanel) = valor fila o columna en la matriz grafica"
En fin, realizando todo esto, me demoré muy poco, sin embargo no puedo hacer que cada cuadro tenga el nombre de la carrera a la cual representa el cuadro.
Por lo tanto, al menos hay tres opciones:
a) Buscar si spss tiene este problema resuelto
b) Editar cada uno de los cuadros agregando un "textbox" con las carrera que le corresponde
c) Dejarlo tal cual y solo utilizarlo como una forma de mirar los datos, de manera más panoramica que las 32 columnas (filas)
saludos, espero si tienen la respuesta, la compartan y/o que esta idea les sirva de algo.
Extraer datos de una tabla en excel 2007 (desref)
El truco que quiero mostrar es para Excel. Está directamente relacionado con la formula "DESREF". ¿De qué se trata? La formula tiene la siguiente estructura:
=desref(Referencia;Indicador de fila;Indicador de columna;Alto de la tabla(opcional); Ancho de la tabla (opcional))
con esta estructura, el uso que se le puede dar es el siguiente: link
o también puede verlo en office
Más que describir la formula lo que quiero mostrar ahora, son cuatro funciones más a partir de esta fórmula:
- Llamar datos de una tabla sin tener que especificar la fila (ó columna)
Para esto tenemos que anidar la formula "columna()" y "Fila()". Estas formulas funcionan igual. Devuelven el numero de columna o fila de una celda de referencia, respectivamente. Si se maneja vacía (es decir "columna()") devuelve el numero de la columna donde se escribe la formula.
Por lo tanto, ocupamos la formula de la siguiente forma:
desref(anclafija;fila(ancla)-fila(anclafija);columna(ancla)-columna(anclafija))
donde ancla, es el argumento donde se inicia la tabla. Cuando se habla de ancla fija significa que le agregamos "$" a la columna y a la fila, de tal manera que no se mueva cuando corramos la formula para el resto de la tabla que estamos construyendo.
la expresión "columna(ancla)-columna(anclafija)" o "expresion columna" de ahora en adelante, es lo que permite a la formula ir cambiando la columna de extracción a medida que aplicamos la formula en las demás celdas. En el fondo siempre va a tomar la columna donde esté y le va a restar a la celda especifica donde estemos aplicando la formula, la cantidad de columnas desde el ancla teniendo finalmente la referencia requerida. Para las filas es la misma idea.
- Saltar columnas en base a un patron (par, impar, cada n columnas)
considerando que la expresion columna (al igual que la expresion fila) devuelve los numeros naturales enteros desde 0 en adelante, si colocamos un ponderador entero, entonces le decimos que vaya de dos en dos o de tres en tres o el intervalo que quieran. tambien podemos asumir que cuando no hay ponderador de esta expresión entonces, por defecto es 1. La formula quedaría del siguiente modo.
desref(anclafija;Ponderador(fila(ancla)-fila(anclafija));Ponderador(columna(ancla)-columna(anclafija)))
desref($C$12;2*(fila(C12)-fila($C$12));3*(columna(c12)-columna($c$12)))
En este ejemplo los valores devueltos seran los valores que estén cada 3 columnas y cada 2 filas.
Dado que la expresion (columna(c12)-columna($c$12) son los naturales enteros, tambien podemos devolver los impares sumando 1 o podemos tener millones de combinaciones segun queramos como avance y desde donde comience la extraccion de datos.
es importante tener en cuenta que toda la expresion "(columna(ancla)-columna(anclafija)" debe ir entre parentesis, porque de lo contrario no resultaría.
- Trasponer la tabla
Quizas esta es la más dificil de explicar pero funciona de la misma manera, solo que en vez de colocar las formulas de columna (relativa y fija) en la columna, se colocan en la fila y viceversa. Recordemos que la formula es:
=desref(Referencia;Indicador de fila;Indicador de columna)
Citando el articulo de referencia está formula funciona "verbalmente" de la siguiente forma:
"comience desde el ancla, muevase n celdas hacia abajo y m celdas hacia la derecha"
Por lo tanto, del siguiente modo la tabla nos vendrá traspuesta:
desref(anclafija;columna(ancla)-columna(anclafija);fila(ancla)-fila(anclafija))
Verbalmente estamos diciendo: Desde el ancla extraiga el dato que está en la fila "p" columnas hacia abajo y "q" filas hacia la derecha.
Mejor dicho con esta formula, cuando, por ejemplo la ejecutamos una celda más abajo del ancla, la expresion "columna(ancla)-columna(anclafija)"es igual a 0, porque no avanzamos columnas, sino una fila hacia abajo. Por lo tanto el argumento filas de la formula desref queda en 0. Por su parte, la expresion "fila(ancla)-fila(anclafija)" es igual a 1 y en la formula desref el llamado de la columna es igual a 1. En resumen, el dato extraido será el dato que esté a 0 filas abajo y 1 columna a la derecha del ancla. Tal vez ya lo entendieron, pero como a mi me costó entenderlo lo explico de esta forma.
- Trasponer y saltar columnas y/o filas en una sola formula
Y ahora la última complicación es cuando además de la trasposición de la tabla quieren sacar ciertas columnas o filas de la tabla, se debe ponderar NO mirando las expresiones construidas en base a la formulas fila o columna, SINO al argumento que está solicitando la función desref. Por ejemplo si quiero que extraiga los datos cada tres columnas entonces tengo que hacer lo siguiente:
desref(anclafija;columna(ancla)-columna(anclafija);3*(fila(ancla)-fila(anclafija)))
porque ese es la referencia de COLUMNA tiene la función desref.
En el fondo, tal vez es mas facil entender este procedimiento si consideramos que las expresiones construidas en base a las formulas fila y columna, NO son lo mismo que los argumentos de la función desref.
- Trasponer solo una variable y dejar el resto igual.
Supongamos que tenemos una base excel con esta estructura:
| sujeto | pregunta | porcentaje logro |
| a | 1 | 75,0% |
| a | 2 | 16,6% |
| a | 3 | 58,9% |
| a | 4 | 24,2% |
| b | 1 | 14,4% |
| b | 2 | 1,8% |
| b | 3 | 49,5% |
| b | 4 | 15,0% |
| c | 1 | 76,5% |
| c | 2 | 1,3% |
| c | 3 | 68,1% |
| c | 4 | 34,3% |
| d | 1 | 85,9% |
| d | 2 | 44,8% |
| d | 3 | 93,0% |
| d | 4 | 17,4% |
y se necesita que la estrutura sea la siguiente
| sujeto | Preg1 | Preg2 | Preg3 | Preg4 |
| a | 75,0% | 16,6% | 58,9% | 24,2% |
| b | 14,4% | 1,8% | 49,5% | 15,0% |
| c | 76,5% | 1,3% | 68,1% | 34,3% |
| d | 85,9% | 44,8% | 93,0% | 17,4% |
utilice la siguiente formula:
DESREF(Anclafija;(COLUMNA(ancla)-COLUMNA(anclafija))+intervalodelsalto*(FILA(ancla)-FILA(anclafija));Ncolumnas(partiendo de 0))
en el ejemplo esta formula quedó de la siguiente forma:
=DESREF($B$3;(COLUMNA(B3)-COLUMNA($B$3))+4*(FILA(B3)-FILA($B$3));2)
el unico requisito es que numero de preguntas tiene que ser el mismo para cada sujeto (cuatro en el caso del ejemplo) si no son esas las condiciones, se recomienda que primero se genere la base con todas las preguntas posibles de tal manera de dejar constante ese intervalo y luego aplicar la formula.
Eso es todo por ahora, se vienen muchos post mas. Espero que este sea de utilidad.
How to calculate p values for r values, in biserial correlation estimates from MPLUS
I have seen this issue twice in MPLUS forum. Once in 2003 for categorical outcomes and in some other time, related to LGC, the estimates of p values.
Linda Muthen explains r/SE is similar to running a z test.
If you ask for TYPE=BASIC, you will get the correlations and also the standard deviations for each correlation. If you divide the correlation by its standard error, this is like a z-test.
This comment, can also be found in other references. the usual output of MPLUS follows the sequence:
Two-Tailed
Estimatef S.E.g Est./S.E.h P-Valuei
And, according to Linda, Est./S.E. should be similar to Z. As I couldn’t find the formula to get the p value from a z score, I used this procedure: I got the same issue as Angela, and i resolve it by using excel.
taking this formula:
t = r * SQRT((n-2) / (1 - r*r))
source: http://faculty.vassar.edu/lowry/tabs.html#r
one can transform the r estimate into a t value. Then, to do test this excel formula is used:
p-value =TDIST(ABS(t),df,2) [where df are N-2, in a correlation]
To see if this was working, i compare the p value obtained by spss over two continuous variables vs, mplus estimates, and the results were fairly similar:
r N t P
0,022 956 0,679 0,496 from MPLUS
0,022 956 0,491 from SPSS
Let me know if there is anything wrong or if you have any comments.
Zotero: stand alone version
For those who were kind of bug by the slowering work from the zotero extension on Firefox [pre v4], no appears the Zotero Stand Alone [ZSA] version.
Now, I have to recognize, the Zotero plugin in FireFox 4, runs much faster than the previous –I would think this was due to the firefox browser, and not from the zotero extension, but this is only a guessing.
A few people have been having problems with Zotero Connector for Chorome, which allow you to save references from Chrome Google Browser to your Zotero database. I was having the savem prolem; till I notice two things:
1. you have to enable the connector system in firefox, and have firefox running so the Chrome shows the Zotero Icon for saving references.
or
2. you have to have the Zotero Stand Alone running, in order for the Chrome extension to show the Zotero Icon for saving references.
MPLUS workshop: introduction
MPLUS was designed to be easy to use.
The syntax, is fairly more easy to use than the EQS and LISREL framework. In EQS is not easy to write shortcuts for writing the equations from factor to item, in MPLUS you can use one line and that's it. Also, you loose the name of every variable, and each time you have to remember who was V1 and V2 and so on; in MPLUS you can name the variables as you want to.
In LISREL, although you can write models by describing the matrix in
the 0 1 form, or link by link, the selection command of variables changes the way you have to call variables every time. None of these is a trouble in MPLUS.
Its a very versatile program
Can Handle from regression, path analysis, EFA, CFA, IRT, HLM, LGM and so on. In general, is a software that permits you to handle different kinds of simultaneous regressions and latent variable estimation, from continuous observed variables, or categorical.
It can change your view on research
Just knowing about the possibilities makes you a better researcher. Learning to do more advanced analyses changes the research questions you can ask, and the way you think about your research topic
This introduction will cover up:
PATH
SEM
HLM
LGM