Skip to content

Commit

Permalink
General package update (#10)
Browse files Browse the repository at this point in the history
* testing new type hierarchy

* intermediate commit

* update reliability for PsychometricTest

* implement ten berge mu

* rename functions

* remove unused dependencies

* remove unused files

* add compat entries

* new reliability interface

* refactor reliability

* refactor lambda4

* add some docs

* postpone PsychometricTests integration

* increase precision in mu

* update glb

* import kwdef

* remove unused deps

* add basic precompilation
  • Loading branch information
p-gw committed Dec 22, 2023
1 parent 3e366e2 commit a703943
Show file tree
Hide file tree
Showing 28 changed files with 2,499 additions and 475 deletions.
3 changes: 3 additions & 0 deletions .JuliaFormatter.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
always_for_in = true
short_to_long_function_def = true
always_use_return = true
1 change: 0 additions & 1 deletion .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ jobs:
fail-fast: false
matrix:
version:
- '1.6'
- '1.8'
- 'nightly'
os:
Expand Down
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
/Manifest.toml
.vscode
.vscode

.DS_Store
21 changes: 18 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,34 @@ authors = ["Philipp Gewessler <p.gewessler@gmx.at> and constributors"]
version = "0.1.0"

[deps]
Bootstrap = "e28b5b4c-05e8-5b66-bc03-6f0c0a0a06e0"
Combinatorics = "861a8166-3701-5b0c-9a16-15d98fcdc6aa"
Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f"
InvertedIndices = "41ab1584-1d38-5bbf-9106-f11c6c58b48f"
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7"
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Reexport = "189a3867-3050-52da-a836-e630ba90ab69"
SCS = "c946c3f1-0d1f-5ce8-9dea-7daa1f7e2d13"
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
StatsAPI = "82ae8749-77ed-4fe6-ae5f-f523153014b0"
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
Term = "22787eb5-b846-44ae-b979-8e399b8463ab"

[compat]
julia = "1.6"
Combinatorics = "1"
Distributions = "0.25"
JuMP = "1"
PrecompileTools = "1"
ProgressMeter = "1"
SCS = "2"
StatsBase = "0.34"
Tables = "1"
Term = "2"
julia = "1.8"

[extras]
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Expand Down
45 changes: 44 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,50 @@
# ClassicalTestTheory
# ClassicalTestTheory.jl

[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://p-gw.github.io/ClassicalTestTheory.jl/stable)
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://p-gw.github.io/ClassicalTestTheory.jl/dev)
[![Build Status](https://github.com/p-gw/ClassicalTestTheory.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/p-gw/ClassicalTestTheory.jl/actions/workflows/CI.yml?query=branch%3Amain)
[![Coverage](https://codecov.io/gh/p-gw/ClassicalTestTheory.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/p-gw/ClassicalTestTheory.jl)

ClassicalTestTheory.jl is a Julia package for data analysis using [Classical Test Theory](https://en.wikipedia.org/wiki/Classical_test_theory#:~:text=It%20is%20a%20theory%20of,the%20reliability%20of%20psychological%20tests.).

## Installation
```julia
] add https://github.com/p-gw/ClassicalTestTheory.jl.git
```

## Getting started
ClassicalTestTheory.jl provides two entry points to doing data analsis.
The input data can either be a numeric `Matrix` or a [`PsychometricTest`](https://github.com/JuliaPsychometrics/PsychometricTests.jl).
While `Matrix` methods provide full functionality, `PsychometricTest` methods provide some
additional convenience such as scale analysis.
For details on how to use ClassicalTestTheory.jl with `PsychometricTest` see [XXX](#).

Consider some input data `x`,

```julia-repl
julia> n_persons = 100;
julia> n_items = 8;
julia> x = rand(0:100, n_persons, n_items);
```

we can get some descriptive analysis of the items,

```julia
itemanalysis(x)
```

or estimate the internal consistency (e.g. using Cronbach's alpha)

```julia
reliability(x, Alpha())
```

The package will automatically calculate the coefficient from the data and construct appropriate confidence intervals.

To get multiple estimates of reliability just pass a vector of methods:

```julia
coefficients = [Alpha(), GLB(), Mu(2)]
reliability(x, coefficients)
```
Loading

0 comments on commit a703943

Please sign in to comment.