Skip to content

Commit d171ffa

Browse files
committed
Rel 0.1.0
1 parent a6ba97a commit d171ffa

32 files changed

+641
-208
lines changed

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
# Introduction
1616

17-
StructuralCausalModels.jl is part of the StatisticalRethinkingJulia eco system and, for now, containg functionality to analyse directed acyclic graph (DAG) based causal models as described in [StatisticalRethinking](https://xcelab.net/rm/statistical-rethinking/),[Causal Inference in Statistics](http://bcs.wiley.com/he-bcs/Books?action=index&bcsId=10288&itemId=1119186846) and [Cause and Correlation in Biology](https://www.cambridge.org/core/books/cause-and-correlation-in-biology/247799189B31939D24BC0F61FD59E9BB#).
17+
StructuralCausalModels.jl is part of the StatisticalRethinkingJulia eco system and contains functionality to analyse directed acyclic graph (DAG) based causal models as described in [StatisticalRethinking](https://xcelab.net/rm/statistical-rethinking/), [Causal Inference in Statistics](http://bcs.wiley.com/he-bcs/Books?action=index&bcsId=10288&itemId=1119186846) and [Cause and Correlation in Biology](https://www.cambridge.org/core/books/cause-and-correlation-in-biology/247799189B31939D24BC0F61FD59E9BB#).
1818

1919
My initial goal for this package is to have a way to apply SCM ideas to the examples in [StatisticalRethinking.jl](https://github.com/StatisticalRethinkingJulia), i.e. a working version of `basis_set()`, `d_separation()` and `adjustment_sets()`.
2020

@@ -37,7 +37,9 @@ Important links are:
3737
4. Sadeghi, K. (2011). Stable classes of graphs containing directed acyclic
3838
graphs, implementation as included in ggm.
3939

40-
The latter two have been used for the Julia implementations of `basis_set()`, `d_separation()`, `shipley_test()`, `pcor_test()` and `ancestral_graph`.
40+
The latter two have been used for the Julia implementations of most fuctions
41+
in this package, e.g. `basis_set()`, `d_separation()`, `m_separation`,
42+
`shipley_test()`, `pcor_test()` and `ancestral_graph`.
4143

4244

4345
# References

docs/src/index.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@ DAG(name::AbstractString, model::ModelDefinition; df::DataFrameOrNothing=nothing
1414

1515
## d_separation
1616
```@docs
17-
d_separation(d::DAG, first::SymbolList, second::SymbolList; cond::SymbolListOrNothing, debug=false)
17+
d_separation(d::DAG, f::SymbolList, s::SymbolList; c::SymbolListOrNothing, debug=false)
18+
```
19+
20+
## m_separation
21+
```@docs
22+
m_separation(d::DAG, f::SymbolList, s::SymbolList; c::SymbolListOrNothing, debug=false)
1823
```
1924

2025
## shipley_test
@@ -32,6 +37,11 @@ basis_set(dag::DAG)
3237
ancestral_graph(d::DAG; m=Symbol[], c=Symbol[])
3338
```
3439

40+
## ribbbon_graph
41+
```@docs
42+
ribbon_graph(d::DAG; m=Symbol[], c=Symbol[])
43+
```
44+
3545
## adjustment_sets
3646
```@docs
3747
adjustment_sets(d::DAG, f::Symbol, l::Symbol; debug=false)

examples/SR/SR6.4.2/sr6.4.2.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ display(t); println()
5454

5555
f = [:a]; s = [:b]; conditioning_set = [:u, :c]
5656

57-
e = d_separation(dag, f, s, cset=conditioning_set)
58-
println("d_separation($(dag.name), $f, $s, cset=$conditioning_set) = $e")
57+
e = d_separation(dag, f, s, c=conditioning_set)
58+
println("d_separation($(dag.name), $f, $s, c=$conditioning_set) = $e")
5959
println()
6060

6161
adjustmentsets = adjustment_sets(dag, :x, :y)

examples/SR/SR6.4.3/sr6.4.3.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ display(t); println()
4444

4545
f = :w; s = :d;
4646

47-
e = d_separation(dag, [f], [s], cset=[:m, :a])
48-
println("d_separation($(dag.name), $f, $s, cset=[:m, :a]) = $e\n")
47+
e = d_separation(dag, [f], [s], c=[:m, :a])
48+
println("d_separation($(dag.name), $f, $s, c=[:m, :a]) = $e\n")
4949

5050
#ap = all_paths(dag, f, s)
5151
ap = all_paths(dag, f, s)

examples/SR/chain/AMD.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,10 @@ end
4646
println()
4747

4848
f = [:A]; s = [:D]; sel = vcat(f, s)
49-
cset = [:M]
49+
c = [:M]
5050

5151
e = d_separation(dag, f, s)
5252
println("d_separation($(dag.name), $f, $s) = $e")
5353

54-
e = d_separation(dag, f, s; cset=cset)
55-
println("d_separation($(dag.name), $f, $s; cset=$cset) = $e")
54+
e = d_separation(dag, f, s; c=c)
55+
println("d_separation($(dag.name), $f, $s; c=$c) = $e")

examples/SR/fork/AMD.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ end
4444
println()
4545

4646
f = [:M]; s = [:D]; sel = vcat(f, s)
47-
cset = [:A]
47+
c = [:A]
4848

4949
e = d_separation(dag, f, s)
5050
println("d_separation($(dag.name), $f, $s) = $e")
5151

52-
e = d_separation(dag, f, s, cset=cset)
53-
println("d_separation($(dag.name), $f, $s, cset=$cset) = $e")
52+
e = d_separation(dag, f, s, c=c)
53+
println("d_separation($(dag.name), $f, $s, c=$c) = $e")
5454
println()
5555
N = 100
5656
df = DataFrame();
@@ -94,13 +94,13 @@ end
9494
println()
9595

9696
f = :M; s = :D; sel = vcat(f, s)
97-
cset = :A
97+
c = :A
9898

9999
e = d_separation(dag, f, s)
100100
println("d_separation($(dag.name), $f, $s) = $e")
101101

102-
e = d_separation(dag, f, s, cset=cset)
103-
println("d_separation($(dag.name), $f, $s, cset=$cset) = $e")
102+
e = d_separation(dag, f, s, c=c)
103+
println("d_separation($(dag.name), $f, $s, c=$c) = $e")
104104

105105
as = adjustment_sets(dag, :A, :D)
106106
as |> display

examples/SR/waffledivorce/AMD_Dag_1.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,13 @@ end
4242
println()
4343

4444
f = [:A]; s = [:D]; sel = vcat(f, s)
45-
cset = [:M]
45+
c = [:M]
4646

4747
e = d_separation(dag, f, s)
4848
println("d_separation($(dag.name), $f, $s) = $e")
4949

50-
e = d_separation(dag, f, s, cset=cset)
51-
println("d_separation($(dag.name), $f, $s, cset=$cset) = $e\n")
50+
e = d_separation(dag, f, s, c=c)
51+
println("d_separation($(dag.name), $f, $s, c=$c) = $e\n")
5252

5353
bs = basis_set(dag)
5454
display(bs)

examples/SR/waffledivorce/AMD_Dag_2.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ end
3636
println()
3737

3838
f = [:A]; s = [:D]; sel = vcat(f, s)
39-
cset = [:M]
39+
c = [:M]
4040

4141
e = d_separation(dag, f, s)
4242
println("d_separation($(dag.name), $f, $s) = $e")
4343

44-
e = d_separation(dag, f, s, cset=cset)
45-
println("d_separation($(dag.name), $f, $s, cset=$cset) = $e\n")
44+
e = d_separation(dag, f, s, c=c)
45+
println("d_separation($(dag.name), $f, $s, c=$c) = $e\n")
4646

4747
bs = basis_set(dag)
4848
display(bs)

examples/SR/waffledivorce/AMD_Dag_3.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,13 @@ end
3636
println()
3737

3838
f = [:M]; s = [:D]; sel = vcat(f, s)
39-
cset = [:A]
39+
c = [:A]
4040

4141
e = d_separation(dag, f, s)
4242
println("d_separation($(dag.name), $f, $s) = $e")
4343

44-
e = d_separation(dag, f, s, cset=cset)
45-
println("d_separation($(dag.name), $f, $s, cset=$cset) = $e\n")
44+
e = d_separation(dag, f, s, c=c)
45+
println("d_separation($(dag.name), $f, $s, c=$c) = $e\n")
4646

4747
bs = basis_set(dag)
4848
display(bs)

examples/Shipley/fig2.6/fig2.6.a.jl

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -18,40 +18,40 @@ show(dag)
1818
f = [:x]; s = [:v]
1919
g1 = d_separation(dag, f, s)
2020
println("d_separation($(dag.name), $f, $s) == $g1")
21-
g1 = d_separation(dag, f, s; cset=[:u])
22-
println("d_separation($(dag.name), $f, $s; cset=[:u) == $g1")
23-
g1 = d_separation(dag, f, s; cset=[:s1])
24-
println("d_separation($(dag.name), $f, $s; cset=[:s1]) == $g1\n")
21+
g1 = d_separation(dag, f, s; c=[:u])
22+
println("d_separation($(dag.name), $f, $s; c=[:u) == $g1")
23+
g1 = d_separation(dag, f, s; c=[:s1])
24+
println("d_separation($(dag.name), $f, $s; c=[:s1]) == $g1\n")
2525

2626
f = [:x]; s = [:w]
2727
g2 = d_separation(dag, f, s)
2828
println("d_separation($(dag.name), $f, $s) == $g2")
29-
g2 = d_separation(dag, f, s; cset=[:u])
30-
println("d_separation($(dag.name), $f, $s; cset=[:u]) == $g2")
31-
g2 = d_separation(dag, f, s; cset=[:v])
32-
println("d_separation($(dag.name), $f, $s; cset=[:v]) == $g2")
33-
g2 = d_separation(dag, f, s; cset=[:u, :v])
34-
println("d_separation($(dag.name), $f, $s; cset=[:u, :v]) == $g2\n")
29+
g2 = d_separation(dag, f, s; c=[:u])
30+
println("d_separation($(dag.name), $f, $s; c=[:u]) == $g2")
31+
g2 = d_separation(dag, f, s; c=[:v])
32+
println("d_separation($(dag.name), $f, $s; c=[:v]) == $g2")
33+
g2 = d_separation(dag, f, s; c=[:u, :v])
34+
println("d_separation($(dag.name), $f, $s; c=[:u, :v]) == $g2\n")
3535

3636
f = [:x]; s = [:y]
3737
g3 = d_separation(dag, f, s)
3838
println("d_separation($(dag.name), $f, $s) == $g3")
39-
g3 = d_separation(dag, f, s; cset=[:u, :w])
40-
println("d_separation($(dag.name), $f, $s; cset=[:u, :w]) == $g3")
41-
g3 = d_separation(dag, f, s; cset=[:s1, :s2])
42-
println("d_separation($(dag.name), $f, $s; cset=[:s1, :s2]) == $g3")
43-
g3 = d_separation(dag, f, s; cset=[:u, :v, :w])
44-
println("d_separation($(dag.name), $f, $s; cset=[:u, :v, :w]) == $g3")
45-
g3 = d_separation(dag, f, s; cset=[:s1, :s2, :u])
46-
println("d_separation($(dag.name), $f, $s; cset=[:s1, :s2, :u]) == $g3")
47-
g3 = d_separation(dag, f, s; cset=[:s1])
48-
println("d_separation($(dag.name), $f, $s; cset=[:s1]) == $g3\n")
39+
g3 = d_separation(dag, f, s; c=[:u, :w])
40+
println("d_separation($(dag.name), $f, $s; c=[:u, :w]) == $g3")
41+
g3 = d_separation(dag, f, s; c=[:s1, :s2])
42+
println("d_separation($(dag.name), $f, $s; c=[:s1, :s2]) == $g3")
43+
g3 = d_separation(dag, f, s; c=[:u, :v, :w])
44+
println("d_separation($(dag.name), $f, $s; c=[:u, :v, :w]) == $g3")
45+
g3 = d_separation(dag, f, s; c=[:s1, :s2, :u])
46+
println("d_separation($(dag.name), $f, $s; c=[:s1, :s2, :u]) == $g3")
47+
g3 = d_separation(dag, f, s; c=[:s1])
48+
println("d_separation($(dag.name), $f, $s; c=[:s1]) == $g3\n")
4949

5050
f = [:u]; s = [:w]
5151
g4 = d_separation(dag, f, s)
5252
println("d_separation($(dag.name), $f, $s) == $g4"), [:s1]
53-
g4 = d_separation(dag, f, s; cset=[:v])
54-
println("d_separation($(dag.name), $f, $s; cset=[:v]) == $g4\n")
53+
g4 = d_separation(dag, f, s; c=[:v])
54+
println("d_separation($(dag.name), $f, $s; c=[:v]) == $g4\n")
5555

5656
bs = basis_set(dag)
5757
bs |> display

0 commit comments

Comments
 (0)