Skip to main content

pypcurve: A Python Implementation of Simonsohn, Simmons and Nelson's 'p-curve'

Installation

You can install pypcurve with pip:

pip install pypcurve

Using pypcurve

1. Compulsory Reading

First and foremost, read the user guide to the p-curve. It is crucial that users understand what p-curve can and cannot do, that they know which statistical results to select, and that they properly prepare the disclosure table.

2. Formatting the statistical results

pypcurve only requires a list of statistical results, stored in a list (or an array). Similar to the p-curve app, pypcurve accepts the following formats of statistical tests:

  • F(1, 302)=3.273
  • t(103)=4.23
  • r(76)=.42
  • z=1.98
  • chi2(1)=7.1

In addition, pypcurve will accept raw p-values:

  • p = .0023

This is not recommended though: p-values are often weirdly rounded, so enter the statistical result instead if it is reported in the paper.

3. Using pypcurve

A. Initialization

For this example, I will assume that your tests have been properly formatted, and stored in a column called "Tests" of a .csv file.

from pypcurve import PCurve
import pandas as pd
df = pd.read_csv("mydata.csv")
pc = PCurve(df.Tests)

If all your tests are properly formatted, there will be no error, and pcurve will be initialized properly.

B. Printing the p-curve output

Next, you can print the summary of the p-curve, as you would see it using the web-app:

pc.summary()

This will output the p-curve plot, as well as the table summarizing the binomial and Stouffer tests of the p-curve analysis. You can get the plot alone, or the table alone, using the methods pc.plot_pcurve() and pc.pcurve_analysis_summary().

C. Power Estimation

You can use pycurve to estimate the power of the design that generated the statistical tests:

  • pc.estimate_power() will return the power estimate, and the (lower, upper) bounds of 90% confidence interval.
  • pc.plot_power_estimate() will plot the power estimate (as the webapp does).

D. Accessing the results of the p-curve analysis

You can directly access the results of the p-curve analysis using three methods:

  • pc.get_stouffer_tests() will recover the Z and p-values of the Stouffer tests
  • pc.get_binomial_tests() will recover the p-values of the binomial tests
  • pc.get_results_entered() will recover the statistical results entered in the p-curve, and the pp-values and z scores associated with the different alternatives to which they are compared.

You can also directly check if the p-curve passes the cutoff for evidential value, and the cutoff for inadequate evidence (as defined in Better P-Curve), using the properties pc.has_evidential_value and pc.has_inadequate_evidence

Version History

The app is still in beta, so please take care when interpreting the results. I have tested pypcurve against the p-curve app using multiple examples: There are occasional minor deviations between the two, because of the way R (vs. Python) compute the non-central F distribution.

Beta

0.1.0

First beta release.

Download files

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

Source Distribution

pypcurve-0.1.1.tar.gz (15.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypcurve-0.1.1-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file pypcurve-0.1.1.tar.gz.

File metadata

  • Download URL: pypcurve-0.1.1.tar.gz
  • Upload date:
  • Size: 15.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.16

File hashes

Hashes for pypcurve-0.1.1.tar.gz
Algorithm Hash digest
SHA256 fdcd1d3768965fdd3c695ca4059a4c22559f8180e47a945a770a5be6bc1047d1
MD5 b10ddaa1f11eed8a74e3ee8d14307a6c
BLAKE2b-256 b31a182a8b4a7d8a0343d5a100150549e0d740c28e56ce38212549f2752e7285

See more details on using hashes here.

File details

Details for the file pypcurve-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: pypcurve-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.16

File hashes

Hashes for pypcurve-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a15f2712b367ffebd6b5e3813456fb73fe810a275733131629972b3419dee7a9
MD5 23493adb733236dea1e039724b9c8853
BLAKE2b-256 569822c4a408f13cabfe7d4214a1b7e274df0c36f15dff6ad46dd1c96f080ad6

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page