Skip to contents

ac_keyness() calcula estatisticas de "keyness" para comparar a distribuicao de termos entre dois grupos. O criterio que define os grupos e do pesquisador: partido, periodo, tema, regiao, autor, condicao experimental ou qualquer variavel categorica no corpus. A funcao e inspirada em quanteda.textstats::textstat_keyness() e utiliza tabelas 2x2 por termo.

A entrada tipica e uma tabela de frequencias gerada por ac_count(), agregada por uma coluna de grupo:

  • ac_count(corp, by = "grupo") seguido de

  • ac_keyness(freq, group = "grupo", target = "A").

Usage

ac_keyness(x, group, target, measure = c("chi2", "ll"), sort = TRUE)

Arguments

x

Um data.frame ou tibble::tibble() contendo, no minimo, as colunas token, n e uma coluna de grupo.

group

Nome da coluna em x que identifica os grupos (string). Essa coluna deve possuir exatamente dois valores distintos.

target

Valor de group que sera considerado o grupo alvo (por exemplo, "Governo"). O outro valor sera tratado como grupo de referencia.

measure

Estatistica de keyness a ser usada. Pode ser "chi2" (padrao) para qui-quadrado com 1 grau de liberdade, ou "ll" para log-likelihood (G^2).

sort

Logico. Se TRUE (padrao), ordena a saida por keyness em ordem decrescente (termos mais caracteristicos do grupo alvo no topo).

Value

Um tibble::tibble() com uma linha por termo, contendo:

  • token

  • group (nome da coluna de grupo, repetido para referencia)

  • target, reference

  • n_target, n_reference

  • total_target, total_reference

  • keyness (estatistica assinada, positiva quando o termo e mais frequente no grupo alvo, negativa quando e mais frequente no grupo de referencia)

  • direction (nome do grupo em que o termo e relativamente mais frequente)

Details

Para cada termo, a funcao constroi uma tabela 2x2:

  • a = n_target (frequencia do termo no grupo alvo)

  • b = n_reference (frequencia do termo no grupo de referencia)

  • c = total_target - a

  • d = total_reference - b

Em seguida, calcula:

  • qui-quadrado com 1 g.l. na opcao measure = "chi2";

  • log-likelihood ratio (G^2) na opcao measure = "ll".

Em ambos os casos, a estatistica e multiplicada pelo sinal da diferenca de frequencias relativas (a / total_target - b / total_reference), de forma que valores positivos indiquem termos mais caracteristicos do grupo alvo e valores negativos termos mais caracteristicos do grupo de referencia.

Examples

# Comparar vocabulario entre dois grupos (aqui, dois temas legislativos).
# O criterio de grupo e do pesquisador: partido, periodo, regiao, tema...
df <- data.frame(
  id    = paste0("d", 1:8),
  texto = c(
    "reforma tributaria simplifica sistema impostos empresas",
    "IVA dual substitui PIS COFINS ICMS federal",
    "aliquotas excecoes tributarias setores economicos",
    "reforma tributaria unifica impostos indiretos",
    "programa habitacional amplia recursos moradia popular",
    "deficit habitacional afeta familias baixa renda",
    "urbanizacao favelas regularizacao fundiaria municipios",
    "moradia digna direito social constituicao"
  ),
  tema  = rep(c("tributario", "habitacao"), each = 4),
  stringsAsFactors = FALSE
)

corp <- ac_corpus(df, text = texto, docid = id)
freq <- ac_count(corp, by = "tema")

# Termos-chave do grupo "tributario" versus o resto
key <- ac_keyness(freq, group = "tema", target = "tributario")
head(key)
#> # A tibble: 6 × 10
#>   token group target reference n_target n_reference total_target total_reference
#>   <chr> <chr> <chr>  <chr>        <dbl>       <dbl>        <dbl>           <dbl>
#> 1 impo… tema  tribu… habitacao        2           0           23              22
#> 2 refo… tema  tribu… habitacao        2           0           23              22
#> 3 trib… tema  tribu… habitacao        2           0           23              22
#> 4 COFI… tema  tribu… habitacao        1           0           23              22
#> 5 ICMS  tema  tribu… habitacao        1           0           23              22
#> 6 IVA   tema  tribu… habitacao        1           0           23              22
#> # ℹ 2 more variables: keyness <dbl>, direction <chr>