Skip to main content

A package for analyzing survey data from Deliberative Polling experiments.

Project description

This package is for analyzing survey data from Deliberative Polling experiments. Although designed for Deliberative Polling, this package can be used to analyze any experimental survey data.

The package is designed with a single, specialized function called outputs. This function accepts as input files exclusively in the IBM SPSS Statistics .SAV format. Upon execution, it generates output files in both .xlsx and .docx formats. These output files contain statistical comparisons of all ordinal and nominal variables across all designated treatment groups, time intervals, and statistical weights.

Installation

To install SPSS, go to Software at Stanford if you are a Stanford affiliate. Othwerwise, go to IBM SPSS Software.

To install Python, go to Download Python.

To install DeliberativePolling, run the following in a terminal:

pip install DeliberativePolling

In SPSS

To import data into SPSS, open SPSS and navigate to File and Import Data.

Alt text

Once the data has been imported into SPSS, you need to provide metadata about the variables in the tab Variable View.

Measures

In the Measure column of Variable View, variables can be classified as Nominal, Ordinal, or Scale.

Alt text

Nominal

Nominal variables are categorical variables that lack a natural order. For instance, the variable Employment in the Sample.SAV file includes the categories Employed, Unemployed, Student, and Other, which don't follow a specific sequence. While there are exceptions, such as Education Level, which do have an order, it's generally advisable (but not mandatory) to categorize variables containing demographic data as Nominal.

Ordinal

Ordinal variables are categorical variables that have a well-defined order. For example, the variable Question1 in the Sample.SAV file. This variable uses a Likert scale that ranges from 0 to 10, representing a progression from Poorly to Well in response to the question "How well does democracy function?" Typically, it's recommended (but not obligatory) to classify variables with responses that change between time intervals as Ordinal.

Some statisticians indicate non-response to survey questions using high numeric codes like 77, 98, or 99. It's crucial to remove these high numeric codes from ordinal variables before analysis. The outputs function calculates the average of ordinal values, assuming a consistent scale like 0-10, 1-5, or 1-3. Including out-of-scale high values like 99 can significantly distort the calculated mean. To avoid this, replace these numeric codes with blank cells; blank cells will be counted as DK/NA (Don't Know/Not Applicable) and will not affect mean calculations.

Scale

Any variables that don't fit into the Nominal or Ordinal categories should be classified as Scale variables. These can either be continuous or discrete. All variables related to weight should be categorized as Scale.

Essential Variables

In order for outputs to identify the different subjects, experimental groups, and time intervals in the data, the SPSS file must contain three variables: ID, Time, and Group.

Alt text

ID

The ID variable helps track individual participants in the study. It's like a name tag that stays the same for each person throughout the experiment. This way, you can see how a person's answers change over time. The ID can be a number, an email address, or any other unique identifier.

Group

The Group variable tells you which part of the experiment a participant is in—either the Treatment group that receives the intervention, or the Control group that doesn't. This helps you compare the effects of the treatment.

Time

The Time variable shows when a participant gave their answers. Labels like Pre-Deliberation or T1 are usually used for answers given before the treatment, and Post-Deliberation or T2 for answers given after. This helps you see how responses change over the course of the experiment.

Optional Variables

Weights

By default, the outputs function generates unweighted tables that compare survey data between all experimental groups and time intervals; however, you can introduce weighting by including columns with the word weight in the header, like Weight1 in Sample.SAV. These weight variables must be numeric with their Measure set to Scale.

Alt text

Ignored

To keep variables in the SPSS file that you don't want included in the outputs function's analysis but might use later, set their Measure to Scale; variables with this setting won't be part of the analysis unless they are designated as weight variables.

Labels

In SPSS, labels help clarify the meaning of variable names and values.

Column Labels

Variable names can't have spaces or punctuation. Descriptive Column Labels can be set in Variable View under the column Label to provide more information about the variables.

Alt text

Nominal Variables: For nominal variables use concise labels. For example, the variable Education in Sample.SAV has the column label Education Level. Keep these labels short because they will appear in file names like Tables - Ordinal Variables - Treatment at T1 v. T2 (Unweighted) - Education Level.

Ordinal Variables: For ordinal variables you can use fuller more descriptive labels. For example, the variable Question1 in Sample.SAV has the column label How well does democracy function?. These ordinal column labels do not appear in file names, only within cells in the outputted files so length is less of an issue.

Value Labels

Alt text

When working with SPSS, it's essential to set the Type of both Ordinal and Nominal variables to Numeric in the Variable View. Since the data will be numeric, you'll use value labels to provide meaningful context to these coded numbers.

Numeric Codes: For ordinal variables like Age in Sample.SAV, you'll need to specify what each numeric code (1, 2, 3, and 4) represents. Use the Values column in Variable View to associate each number with a label, such as 1 for 18-30 and 2 for 30-50.

Alt text

Shared Labels: Some variables might have several numeric codes that mean the same thing. For instance, in the ordinal variable Question1, the codes 0 through 4 are all labeled as Poorly, while 6 through 10 are labeled as Well.

Alt text

Ensure that all values have labels, otherwise the outputs function will return an error message indicating which values are unlabeled.

Once you've included all essential variables and assigned column and value labels to all nominal and ordinal variables, you can run the outputs function on the SPSS file. If any metadata is missing, the outputs function will return an error and specify what data is lacking.

Columns like Width, Decimals, Missing, Columns, Align, and Role in Variable View can usually be ignored.

In Python

To execute the outputs function, open a terminal with the directory containing the .SAV file. Then, run the following commands:

Python3
from DeliberativePolling import outputs
outputs("your_file.SAV")

Outputs

After running the function, a new folder named Outputs will be created in the directory. This folder will contain all the generated tables and reports in .xlsx format. If these tables and reports are reasonably sized (under 10,000 cells), they will also be exported in .docx format.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

DeliberativePolling-0.2.1.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

DeliberativePolling-0.2.1-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file DeliberativePolling-0.2.1.tar.gz.

File metadata

  • Download URL: DeliberativePolling-0.2.1.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for DeliberativePolling-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d9b2277dea3a9f0011fbca5c2509e09b817b5845ba3b24d2140c3c84bce1cb1b
MD5 f6c91f87efd1710f01fd80448c994244
BLAKE2b-256 d2a5293647a108eefd3341616b89a556ea74095ebd0103dd5ca7abca12961bc7

See more details on using hashes here.

File details

Details for the file DeliberativePolling-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for DeliberativePolling-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 89d1401b450a621153e92a2ce9975184e98e4faf7f8abc149c677ea16b146479
MD5 90ae9b614857f011b2f441b86987c86a
BLAKE2b-256 cf4d3a510d42994951f8ce566dc12ce6da3f3ab78508e03eea3e36d92a8de1cd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page