Weight

Libreria Python per SPSS

Iterative Proportional Fitting

Pondera i dati di un file SPSS in base alle distribuzioni marginali delle variabili.

I pesi dei singoli record vengono calcolati tramite un algoritmo di iterative proportional fitting.

Caratteristiche

  • codici numerici anche non continui e decimali
  • i marginali possono essere passati come percentuali, valori assoluti o rapporti
  • variabile peso di partenza
  • sovrascrittura delle variabili peso finali
  • calcolo di più variabili peso con basi variabili
  • filtro per ponderare su un sottoinsieme di casi
  • possibilità di inserire i pesi calcolati per un sottoinsieme di casi in una variabili esistente
  • parametri impostabili singolarmente e disponibili per più ponderazioni
  • esito della ponderazione restituito dalla procedura ipf per permettere il condizionamento del resto del programma
  • output grafico
  • errori e warning tramite finestre di dialogo

Esempio

from weight import *

ipf(
    scarto   = 0.001,
    wif      = 'sesso = 2',
    label    = 'Famiglie',
    outputs  = { 'ipf': 0, 'espcamp': [700, "Campione"], 'espuniv': [218106760, "Universo"] },
    targets  = { 'eta':    [17, 25, 40, 18],
                 'titolo': [3, 21, 57.50, 18.50],
                 'area':   [100, 60, 40, 20] }
)

Riferimenti bibliografici

  • W.E. Deming and F.F. Stephan (1940), On a Least Squares Adjustment of a Sampled Frequency Table When the Expected Marginal Totals are Known., Annals of Mathematical Statistics, 11, 427-444.
    1. Edwards Deming (1943), Statistical Adjustment of Data, Dover Publications
  • K.R. Copeland et al. (1987), An alternative Method of Controlling Current Population Survey Estimates to Populaton Counts, in Survey Methodology, Volume 13, Numero 2, pp. 173-181, Statistics Canada.
  • H.M.A. Schadee e P.Corbetta (1984), Metodi e modelli di analisi dei dati elettorali, Il Mulino
  • Paul Norman, Putting Iterative Proportional Fitting on the Researchers Desk http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.17.2073
Requires:
summary:Python library to compute Iterative Proportional Fitting with SPSS
author:Stefano Palma - stefanopalma.eu
copyright:© 2008 Stefano Palma

ipf

weight.ipf(targets=None, vars=None, outputs=None, scarto=None, loops=None, label=None, prew=None, wif=None, merge=None, maxloops=None, wrange=None, details=None, warnings=None)

Esegue la procedura di Iterative Proportional Fitting

I parametri possono anche essere impostati in precedenza con: set_ipf_<nome_parametro>(valore)

Parameters:
  • targets
    dictionary dei marginali (vengono ripercentualizzati) da riprodurre, nel formato:
    { ‘nome_var’: [valore, codice valore...], ... }

    se è specificato il parametro ‘vars’ allora contiene solo i valori come list di list

  • vars – elenco (stringa o list) dei nomi di variabili dei marginali (in tal caso ‘targets’ deve contenere solo i valori)
  • outputs – dictionary dei nomi di variabili peso finali, delle numerosità (0 per n=ncasi) e, opzionalmente, delle etichette, nel formato: { ‘nome_var’: n } oppure { ‘nome_var’: [n, label] } per esempio: { ‘ipf’: 0, ‘espcamp’: [700, ‘Campione’], ‘espuniv’: 218106760 } default = { ‘ipf’: 0 }
  • scarto – valore di convergeza, differenza % ideale e % reale (default = 1e-3)
  • loops – numero predefiniti di cicli per la generazione del peso
  • label – etichetta variabili peso finali (quando non specificata in ‘outputs’); default = ‘Iterative Proportional Fitting’
  • prew – variabile peso di partenza
  • wif – filtro record su cui calcolare i pesi (espressione SPSS)
  • merge – unisce nuovi pesi nelle variabili esistenti (solo se presente wif)
  • maxloops – numero massimo di iterazioni (default = 1000)
  • wrange – viene segnalato se i pesi dei livelli sono al di fuori dell’intervallo definito da 1 +/- il valore (default = 0.4)
  • details – stampa i dettagli delle iterazioni
  • warnings – attiva/disattiva i messagebox di warning
Returns:

restituisce un oggetto Result

Altre funzioni

weight.warning(msg, caption='Attenzione')

Mostra una finestra di warning.

Parameters:
  • msg – testo del messaggio
  • caption – titolo della finestra
weight.error(msg, caption='Errore')

Mostra una finestra di errore.

Parameters:
  • msg – testo del messaggio
  • caption – titolo della finestra
weight.info(msg, caption='Ipf')

Mostra una finestra di informazioni.

Parameters:
  • msg – testo del messaggio
  • caption – titolo della finestra

Result

class weight.Result

Un oggetto che contiene l’esito della ponderazione. Le sue proprietà possono essere testate nel programma.

Ivariables:
  • conv: vero se la convergenza è stata raggiunta
  • no_conv: vero se la convergenza non è stata raggiunta
  • efficiency: efficienza della ponderazione (0 se non converge)
  • scarto: ultimo scarto massimo
  • n: numero di iterazioni