library(tidyverse)
library(purrr)
library(ape)
library(phangorn)
library(TreeTools)
library(scales)
Консенсусная сеть и Шолохов
Строим консенсусную сеть на основе частотностей из датасета «Стилеметрические данные “Тихого Дона” и современной ему прозы», подготовленного Б.В.Ореховым
Введение
Попробуем построить консенсусную сеть с помощью метода consensusNet(). Он позволяет построить сеть на основе множества деревьев. Хорошо подходит для выявления конфликтующих сигналов, областей неопределенности в филогенетических отношениях. В качестве входных данных принимает набор деревьев.
Используемые библиотеки
Трансформируем данные
Читаю файл и транспонирую матрицу, чтобы столбцы соответствовали переменным, а ряды - наблюдениям
<- read.table("table_with_frequencies.txt", header = TRUE, sep = " ") |>
data t() |>
as.data.frame()
Консенсусная сеть consensusNet()
Для построения консенсусной сети мне нужно построить консенсусные деревья. Функция get_tree считает евклидово расстояние и строит дерево. В качестве аргументов я указываю, чтобы функция брала 500 столбцов в диапазоне 1:4000 без повторов.
<- function(df) {
get_tree <- df[ , sample(4000, replace = F, size = 500)]
X <- dist(scale(X))
distmx <- as.phylo(hclust(distmx))
tr
tr
}
<- map(1:30, ~get_tree(data)) trees
Получив деревья, я могу вычислить консенсус.
<- as.multiPhylo(trees)
mph <- consensusNet(mph, prob = 0.4, rooted = FALSE) cons.nw
Навожу красоту
$col <- str_remove_all(cons.nw$tip.label, "_.+")
cons.nw<- hue_pal()(12)
colour <- tibble(label = unique(cons.nw$col),
col_tbl col = colour)
<- tibble(label = cons.nw$col) |>
color_group left_join(col_tbl)
$col <- color_group$col
cons.nw
set.seed(28000)
par(mar = c(0,0,0,0))
plot(cons.nw, type = "2D",
direction = "horizontal",
edge.color = "grey40",
tip.color = cons.nw$col,
edge.width = 0.7,
cex = 0.7,
srt = 20,
adj = 0.5,
fsize = 0.8)
Выводы
На консенсусной сети мы видим близость “Тихого Дона” к “Донским рассказам”, что, возможно, связано с тематическим и лексическим сходством. Оба произведения описывают жизнь и быт казачества, часто используются архаизмы и регионализмы.
“Поднятая целина” и “Они сражались за родину” попали в другой кластер. Это более поздние произведения, и их лексика заметно отличается от “Тихого Дона” и “Донских рассказов”.
Так как метод консенсусной сети позволяет сгруппировать тексты на основе сходства, а сходство может быть различного качества (тематическое, лексическое, грамматическое и т. д.), можно предположить особую роль тематико-лексического фактора.
Несмотря на описанные выше различия, произведения Шолохова группируются в общий корневой кластер, в который не попадает “Судьба человека”. Возможно, это произведение оказывается изолированным из-за жанровых особенностей (рассказ в рассказе), компактного размера и акцента на личную трагедию, а не на социальные процессы