martes, 15 de octubre de 2013

Python & SPSS

Python es un lenguaje integrado dentro del programa IBM SPSS. De naturaleza intérprete, multiparadigmático (soporta orientación a objetos, programación imperativa y funcional).

Es útil, junto al R, a la hora de utilizar  tareas repetitivas, o bien en operaciones avanzadas no disponibles a través de los cuadros de diálogo. Es un complemento básico si usamos la sintaxis de IBM SPSS, permitiendo el acceso a estructuras complejas de programación.

En SPSS se programa de forma general en el editor de sintaxis, permitiendo su cifrado. Se puede proteger con una contraseña. Estos archivos solo se pueden abrir proporcionando la contraseña (extensión spsx).



Un ejemplo de este tipo de procedimientos lo podemos visualizar a continuación:
BEGIN PROGRAM PYTHON.
import spss
file="c:/apuntes/curso201314/pract2.sav"
string1="DESCRIPTIVES VARIABLES="
N=spss.GetVariableCount()
scaleVarList=[]
for i in xrange(N):
if spss.GetVariableMeasurementLevel(i)=='scale':
scaleVarList.append(spss.GetVariableName(i))
string2="."
spss.Submit([string1, ' '.join(scaleVarList), string2])
END PROGRAM.

En este caso, nos permite programar que en las bases de datos, se seleccionen sólo las variables en escala de intervalo/razón, a la hora de describir los estadísticos básicos.

Un segundo ejemplo, un poco más elaborado, lo podemos ver a continuación:
BEGIN PROGRAM PYTHON.
import spss
 escalaVarList=[]
categoVarList=[]
 varcount=spss.GetVariableCount()
for i in xrange(varcount):
 if spss.GetVariableMeasurementLevel(i)=='scale':
 escalaVarList.append(spss.GetVariableName(i))
 else:
 categoVarList.append(spss.GetVariableName(i))
spss.Submit("""
 FREQUENCIES
/VARIABLES=%s.
 DESCRIPTIVES
 /VARIABLES=%s.
 """ %(' '.join(categoVarList), ' '.join(escalaVarList)))
END PROGRAM.
Como se puede observar pedimos el procedimiento descriptivos para las variables cuantitativas (escala intervalo o razón), en otro caso las tablas de frecuencias (escala nominal o bien ordinal).