Jak utworzyć tabelę kontyngencji w pythonie


Tabela kontyngencji to rodzaj tabeli podsumowującej relację między dwiema zmiennymi kategorycznymi.

Aby utworzyć tabelę kontyngencji w Pythonie, możemy użyć funkcji pandas.crosstab() , która wykorzystuje następującą składnię:

pandas.crosstab(indeks, kolumny)

Złoto:

  • indeks: nazwa zmiennej wyświetlana w wierszach tabeli kontyngencji
  • kolumny: nazwa zmiennej wyświetlana w kolumnach tabeli kontyngencji

Poniższy przykład pokazuje krok po kroku, jak używać tej funkcji do tworzenia tabeli kontyngencji w Pythonie.

Krok 1: Utwórz dane

Najpierw utwórzmy zbiór danych wyświetlający informacje o 20 różnych zamówieniach produktów, w tym o rodzaju zakupionego produktu (telewizor, komputer lub radio) oraz kraju (A, B lub C), w którym produkt został zakupiony:

 import pandas as pd

#create data
df = pd. DataFrame ({'Order': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                            11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
                   'Product': ['TV', 'TV', 'Comp', 'TV', 'TV', 'Comp',
                               'Comp', 'Comp', 'TV', 'Radio', 'TV', 'Radio', 'Radio',
                               'Radio', 'Comp', 'Comp', 'TV', 'TV', 'Radio', 'TV'],
                   'Country': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', 'B', 'B',
                               'B', 'C', 'C', 'C', 'C', 'C', 'C', 'C', 'C']})

#view data
df

        Order Product Country
0 1 TV A
1 2 TV A
2 3 Comp A
3 4 TV A
4 5 TV B
5 6 Comp B
6 7 Comp B
7 8 Comp B
8 9 TV B
9 10 Radio B
10 11 TV B
11 12 Radio B
12 13 Radio C
13 14 Radio C
14 15 Comp C
15 16 Comp C
16 17 TV C
17 18 TV C
18 19 Radio C
19 20 TV C

Krok 2: Utwórz tabelę kontyngencji

Poniższy kod pokazuje, jak utworzyć tabelę awaryjnych, aby policzyć liczbę każdego produktu zamówionego przez każdy kraj:

 #create contingency table
p.d. crosstab (index=df[' Country '], columns=df[' Product '])

Product Comp Radio TV
Country			
A 1 0 3
B 3 2 3
C 2 3 3

Oto jak interpretować tabelę:

  • W kraju A zakupiono łącznie 1 komputer.
  • W kraju B zakupiono łącznie 3 komputery.
  • W kraju C zakupiono łącznie 2 komputery.
  • W kraju A zakupiono łącznie 0 radiotelefonów.
  • W kraju B zakupiono łącznie 2 radia.
  • W kraju C zakupiono łącznie 3 radiotelefony.
  • W kraju A zakupiono łącznie 3 telewizory.
  • W kraju B zakupiono łącznie 3 telewizory.
  • W kraju C zakupiono łącznie 3 telewizory.

Krok 3: Dodaj sumę depozytów zabezpieczających do tabeli awaryjnej

Możemy użyć argumentu marginesy=True , aby dodać sumy marginesów do tabeli kontyngencji:

 #add margins to contingency table
p.d. crosstab (index=df[' Country '], columns=df[' Product '], margins= True )

Product Comp Radio TV All
Country				
A 1 0 3 4
B 3 2 3 8
C 2 3 3 8
All 6 5 9 20

Sposób interpretacji wartości tabeli jest następujący:

Suma linii:

  • Łącznie złożono 4 zamówienia z kraju A.
  • Z kraju B złożono łącznie 8 zamówień.
  • Z kraju C złożono łącznie 8 zamówień.

Suma kolumn:

  • Łącznie zakupiono 6 komputerów.
  • Łącznie zakupiono 5 radiotelefonów.
  • Łącznie zakupiono 9 telewizorów.

Wartość w prawym dolnym rogu tabeli oznacza, że ze wszystkich krajów zamówiono łącznie 20 produktów.

Dodatkowe zasoby

Jak utworzyć tabelę kontyngencji w R
Jak utworzyć tabelę kontyngencji w programie Excel

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *