Returns the table of (absolute) expected frequencies from the given table of observed frequencies.
(observed)
| 730 | UPPER = "upper" |
| 731 | |
| 732 | def _expected(observed): |
| 733 | """ Returns the table of (absolute) expected frequencies |
| 734 | from the given table of observed frequencies. |
| 735 | """ |
| 736 | O = observed |
| 737 | if len(O) == 0: |
| 738 | return [] |
| 739 | if len(O) == 1: |
| 740 | return [[sum(O[0]) / float(len(O[0]))] * len(O[0])] |
| 741 | n = [sum(O[i]) for i in range(len(O))] |
| 742 | m = [sum(O[i][j] for i in range(len(O))) for j in range(len(O[0]))] |
| 743 | s = float(sum(n)) |
| 744 | # Each cell = row sum * column sum / total. |
| 745 | return [[n[i] * m[j] / s for j in range(len(O[i]))] for i in range(len(O))] |
| 746 | |
| 747 | def pearson_chi_squared_test(observed=[], expected=[], df=None, tail=UPPER): |
| 748 | """ Returns (X2, P) for the n x m observed and expected data (containing absolute frequencies). |
no test coverage detected
searching dependent graphs…