Repository: networkx/networkx

Issue:
Incidence Matrix Documentation is confusing
First my networkx version is 2.4
In the incidence matrix documentation 
it states if using the oriented option
" A -1 appears for the tail of an edge and 1  for the head of the edge."
This appears to be not true:

The table below shows has node and the edge with the edge in (source_node, destination_node) format.  
In row 0, column 0 the edge specified is from node_0 to node_1.  As someone not familiar with the language I would interpret head to mean source, and tail to mean destination, so the value I would expect is 1 not -1.  I did not think of the head and tail as the head and tail of an arrow, which is why I was confused.

Can the documentation be modified to 
" A -1 appears for the source (tail) of an edge and 1  for the destination (head) of the edge."

The table below can be reproduced by

```python
import pandas as pd
import networkx as nx
node_list = [f'node_{i}' for i in range(3)]
G = nx.complete_graph(node_list, nx.DiGraph())
for i, edge in enumerate(G.edges, 1):
    G.edges[edge]['weight'] = i
ind_mat = pd.DataFrame(nx.incidence_matrix(G, oriented=True, weight='weight').toarray(), columns = list(G.edges), index=G.nodes)
ind_mat
```


|        |   ('node_0', 'node_1') |   ('node_0', 'node_2') |   ('node_1', 'node_0') |   ('node_1', 'node_2') |   ('node_2', 'node_0') |   ('node_2', 'node_1') |  
|:-------|-----------------------:|-----------------------:|-----------------------:|-----------------------:|-----------------------:|-----------------------:|  
| node_0 |    -1 |    -2 |      3 |     0 |    5 |      0 |  
| node_1 |     1 |      0 |     -3 |   -4 |    0 |      6 |  
| node_2 |     0 |      2 |       0 |    4 |   -5 |     -6 |




Discussion:
Indeed, the documentation does assume that the head/tail names follow the standard arrow analog with head being the destination.  Is source/destination more clear than head/tail? Maybe...

Probably best to include both as you have suggested. :}


Resolving patch:
diff --git a/networkx/algorithms/structuralholes.py b/networkx/algorithms/structuralholes.py
--- a/networkx/algorithms/structuralholes.py
+++ b/networkx/algorithms/structuralholes.py
@@ -98,7 +98,7 @@ def effective_size(G, nodes=None, weight=None):
     Returns
     -------
     dict
-        Dictionary with nodes as keys and the constraint on the node as values.
+        Dictionary with nodes as keys and the effective size of the node as values.
 
     Notes
     -----
diff --git a/networkx/linalg/graphmatrix.py b/networkx/linalg/graphmatrix.py
--- a/networkx/linalg/graphmatrix.py
+++ b/networkx/linalg/graphmatrix.py
@@ -13,8 +13,8 @@ def incidence_matrix(G, nodelist=None, edgelist=None, oriented=False, weight=Non
     For a standard incidence matrix a 1 appears wherever a row's node is
     incident on the column's edge.  For an oriented incidence matrix each
     edge is assigned an orientation (arbitrarily for undirected and aligning to
-    direction for directed).  A -1 appears for the tail of an edge and 1
-    for the head of the edge.  The elements are zero otherwise.
+    direction for directed).  A -1 appears for the source (tail) of an edge and
+    1 for the destination (head) of the edge.  The elements are zero otherwise.
 
     Parameters
     ----------


Test patch: