panelkit 0.2.6__tar.gz → 0.2.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {panelkit-0.2.6 → panelkit-0.2.7}/Cargo.lock +5 -5
- {panelkit-0.2.6 → panelkit-0.2.7}/Cargo.toml +1 -1
- {panelkit-0.2.6 → panelkit-0.2.7}/PKG-INFO +1 -1
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/inference/src/bootstrap.rs +2 -3
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/inference/tests/inference.rs +2 -2
- {panelkit-0.2.6 → panelkit-0.2.7}/pyproject.toml +1 -1
- {panelkit-0.2.6 → panelkit-0.2.7}/BENCHMARKS.md +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/GUIDE.md +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/LICENSE-APACHE +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/LICENSE-MIT +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/README.md +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/Cargo.toml +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/benches/estimators.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/did/bacon.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/did/callaway.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/did/mod.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/did/sunab.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/did/twfe.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/fe/mod.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/fe/within.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/lib.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/mcnnm/mod.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/mcnnm/softimpute.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/panel.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/result.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/sc/augmented.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/sc/cpasc.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/sc/mod.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/sc/sdid.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/src/sc/synthetic.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/tests/cpasc.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/tests/did.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/tests/sc.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/estimators/tests/sc_family.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/geo/Cargo.toml +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/geo/src/diagnostics.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/geo/src/lib.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/geo/src/power.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/geo/src/selection.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/geo/src/types.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/geo/tests/geo.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/inference/Cargo.toml +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/inference/src/batch.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/inference/src/ci.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/inference/src/lib.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/inference/src/parallel.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/inference/src/placebo.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/Cargo.toml +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/error.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/factor/cholesky.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/factor/eig_sym.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/factor/mod.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/factor/qr.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/factor/randomized.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/factor/svd.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/factor/svd_gram.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/lib.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/matrix.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/ops/matmul.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/ops/mod.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/ops/norms.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/ops/transform.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/opt/mod.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/opt/simplex.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/opt/softthresh.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/rng.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/solve/lstsq.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/solve/mod.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/src/solve/spd.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/linalg/tests/numerics.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/pypanelkit/Cargo.toml +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/pypanelkit/src/api_did.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/pypanelkit/src/api_geo.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/pypanelkit/src/api_sc.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/pypanelkit/src/convert.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/pypanelkit/src/lib.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/crates/pypanelkit/src/results.rs +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/python/panelkit/__init__.py +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/python/panelkit/_panelkit.pyi +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/python/panelkit/design.py +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/python/panelkit/estimators.py +0 -0
- {panelkit-0.2.6 → panelkit-0.2.7}/python/panelkit/py.typed +0 -0
|
@@ -462,7 +462,7 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
|
|
|
462
462
|
|
|
463
463
|
[[package]]
|
|
464
464
|
name = "panelkit-estimators"
|
|
465
|
-
version = "0.2.
|
|
465
|
+
version = "0.2.7"
|
|
466
466
|
dependencies = [
|
|
467
467
|
"criterion",
|
|
468
468
|
"panelkit-linalg",
|
|
@@ -471,7 +471,7 @@ dependencies = [
|
|
|
471
471
|
|
|
472
472
|
[[package]]
|
|
473
473
|
name = "panelkit-geo"
|
|
474
|
-
version = "0.2.
|
|
474
|
+
version = "0.2.7"
|
|
475
475
|
dependencies = [
|
|
476
476
|
"panelkit-estimators",
|
|
477
477
|
"panelkit-inference",
|
|
@@ -482,7 +482,7 @@ dependencies = [
|
|
|
482
482
|
|
|
483
483
|
[[package]]
|
|
484
484
|
name = "panelkit-inference"
|
|
485
|
-
version = "0.2.
|
|
485
|
+
version = "0.2.7"
|
|
486
486
|
dependencies = [
|
|
487
487
|
"panelkit-estimators",
|
|
488
488
|
"panelkit-linalg",
|
|
@@ -491,7 +491,7 @@ dependencies = [
|
|
|
491
491
|
|
|
492
492
|
[[package]]
|
|
493
493
|
name = "panelkit-linalg"
|
|
494
|
-
version = "0.2.
|
|
494
|
+
version = "0.2.7"
|
|
495
495
|
dependencies = [
|
|
496
496
|
"proptest",
|
|
497
497
|
"rayon",
|
|
@@ -623,7 +623,7 @@ dependencies = [
|
|
|
623
623
|
|
|
624
624
|
[[package]]
|
|
625
625
|
name = "pypanelkit"
|
|
626
|
-
version = "0.2.
|
|
626
|
+
version = "0.2.7"
|
|
627
627
|
dependencies = [
|
|
628
628
|
"numpy",
|
|
629
629
|
"panelkit-estimators",
|
|
@@ -53,14 +53,13 @@ pub fn multiplier_bootstrap(
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
/// Jackknife (leave-one-out) standard error from a set of leave-one-out
|
|
56
|
-
/// estimates
|
|
57
|
-
pub fn jackknife_se(loo_estimates: &[f64]
|
|
56
|
+
/// estimates: `sqrt((n-1)/n · Σ(θ_i − θ̄)²)`, centered on the LOO mean.
|
|
57
|
+
pub fn jackknife_se(loo_estimates: &[f64]) -> f64 {
|
|
58
58
|
let n = loo_estimates.len();
|
|
59
59
|
if n < 2 {
|
|
60
60
|
return 0.0;
|
|
61
61
|
}
|
|
62
62
|
let mean = loo_estimates.iter().sum::<f64>() / n as f64;
|
|
63
|
-
let _ = full;
|
|
64
63
|
let ss: f64 = loo_estimates.iter().map(|x| (x - mean).powi(2)).sum();
|
|
65
64
|
((n as f64 - 1.0) / n as f64 * ss).sqrt()
|
|
66
65
|
}
|
|
@@ -107,11 +107,11 @@ fn bootstrap_engines_thread_count_invariant() {
|
|
|
107
107
|
#[test]
|
|
108
108
|
fn jackknife_se_of_constant_is_zero() {
|
|
109
109
|
let est = vec![2.0; 10];
|
|
110
|
-
assert!(jackknife_se(&est
|
|
110
|
+
assert!(jackknife_se(&est) < 1e-12);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
#[test]
|
|
114
114
|
fn jackknife_se_positive_for_varying() {
|
|
115
115
|
let est = vec![1.0, 2.0, 3.0, 4.0, 5.0];
|
|
116
|
-
assert!(jackknife_se(&est
|
|
116
|
+
assert!(jackknife_se(&est) > 0.0);
|
|
117
117
|
}
|
|
@@ -4,7 +4,7 @@ build-backend = "maturin"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "panelkit"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.7"
|
|
8
8
|
description = "Fast, from-scratch causal-inference estimators for panel/geo experiments (SC, ASC, SDID, DiD, MC-NNM)."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.9"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|