A Python library for p-curve estimation
Project description
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 testspc.get_binomial_tests()
will recover the p-values of the binomial testspc.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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdcd1d3768965fdd3c695ca4059a4c22559f8180e47a945a770a5be6bc1047d1 |
|
MD5 | b10ddaa1f11eed8a74e3ee8d14307a6c |
|
BLAKE2b-256 | b31a182a8b4a7d8a0343d5a100150549e0d740c28e56ce38212549f2752e7285 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | a15f2712b367ffebd6b5e3813456fb73fe810a275733131629972b3419dee7a9 |
|
MD5 | 23493adb733236dea1e039724b9c8853 |
|
BLAKE2b-256 | 569822c4a408f13cabfe7d4214a1b7e274df0c36f15dff6ad46dd1c96f080ad6 |