Package: singlecase
Single Case Research PackageBy Casper WilstrupThe Single Case Research package is a Python library designed to assist in conducting single-case research studies. The package provides tools to analyze single-case data sets. It is designed for simplicity and ease of use, with a range of methods to calculate various statistical measures for single-case data sets. The package is useful for analysts and researchers dealing with single-case designs, providing a framework to load, manage, and manipulate such data, along with robust statistical functions to interpret the data.More functionality will be added as the package is further developedInstallationYou can install the package using pip:pipinstallsinglecaseUsageTo usesinglecase, first import the package into your Python environment:fromsinglecase.dataimportDataThen, create aDataobject with either a pandas DataFrame or a dictionary:data=Data({'phase':['A1','A1','A1','B','B','B','A2','A2','A2'],'dvar1':[1.0,2.5,3.2,4.2,5.5,6.2,2.0,2.4,3.1],'dvar2':[2.5,3.2,4.6,5.6,6.2,7.8,3.3,4.1,4.8],})Now you're ready to perform single-case data analysis.Core FeaturesData ClassTheDataclass provides an object-oriented interface to represent your single-case data. It assumes any variable with datatype of float as a dependent variable. The dependent and phase variables can be accessed and modified using properties. For example:data.pvar='column_name'# Set the phase variable, if it is not named 'phase'Nonoverlap Pairs (NAP)Thenapfunction computes the Nonoverlap Pairs between two phases in a single-case data frame. It returns a pandas Series containing the NAP values for each dependent variable in the data set.fromsinglecase.effectsizeimportnapnap_values=nap(data,phases["A1","B"])Percent Non-overlapping Data (PND)Thepndfunction computes the Percent Non-overlapping Data between two phases in a single-case data frame. It returns a pandas Series containing the PND values for each dependent variable in the data set.fromsinglecase.effectsizeimportpndpnd_values=pnd(data,phases=["A1","B"])Permutation TestThepermutation_testfunction performs a permutation test between two phases in a single-case data frame. It returns a pandas Series containing the p-values for each dependent variable in the data set. The p-value is the probability that the two phases have the same mean.fromsinglecase.permtestimportpermutation_testp_values=permutation_test(data,phases=["A1","A2"])Complete exampleThis complete example creates a newsinglecase.Datafrom a Python dictionary. The dataset has two dependent variablesdvar1anddvar2. The phase variable is calledphaseand consists of the two phases "A" and "B". Based on this data, the PND and NAP values are calculated and printed. The probability that the two phases have the same mean is then calculated using permutation tests and printed. Since the data contains only two phases, it is not necessary to specify which phases to compare inpnd,napandpermutation_testfunction calls.importpandasaspdfromsinglecase.dataimportDatafromsinglecase.effectsizeimportpnd,napfromsinglecase.permtestimportpermutation_test# Create a sample datadata_dict={'phase':['A','A','A','A','A','A','B','B','B','B','B','B'],'dvar1':[1.0,2.5,3.2,4.6,2.8,5.6,3.7,4.2,5.5,6.2,7.3,8.5],'dvar2':[2.5,3.2,4.6,5.1,4.8,5.2,6.7,5.6,6.2,7.8,8.4,7.2],}# Instantiate Data objectdata=Data(data_dict)# Calculate PNDpnd_values=pnd(data)print(f"PND values:\n{pnd_values}\n")# Calculate NAPnap_values=nap(data)print(f"NAP values:\n{nap_values}\n")# Calculate the p-value the mean of the two phases being the sameperm_p=permutation_test(data)print(f"Probability that A and B phases have same mean:\n{perm_p}\n")LicenseThis project is licensed under the BSD 3-clause license - see the LICENSE file for details.About the packageThe Single Case Research package is supported byAbzuas part of an ongoing mission to improve scientific research powered by artificial intelligence.The primary author of the package isCasper Wilstrup. New contributors are welcome.