Увидим ли мы еще одну сверхновую, такую как Gamestop?
Увидим ли мы еще одну сверхновую, такую как Gamestop?
Ажиотаж вокруг акций GameStop утих, но крупные мелкие инвесторы никуда не денутся.
Резюме саги о Gamestop: Хедж-фонд с Уолл-стрит сделал большую ставку на то, что крупнейший сетевой розничный продавец видеоигр в Америке находится на грани банкротства, и пользователи из субреддита WallStreetBets ринулись покупать акции и вынудили хедж-фонд закрывают свои позиции, тем самым обходясь фонду в миллиарды долларов и повышая стоимость акций в так называемом сжатии.
В этой статье мы рассмотрим последние обсуждения в r / wallstreetbets и попытаемся предсказать следующий шаг инвестора Reddit, используя методы машинного обучения.
Анализируем 240 постов в r / wallstreetbets
Мы будем использовать около 200 дискуссионных постов в группе Reddit по ставкам на Уолл-стрит для анализа. Извлеченные сообщения были опубликованы в начале июня 2021 года.
Более 200 сообщений состоят примерно из 70 тысяч слов. После некоторой работы по очистке данных у нас осталось около 40 тысяч слов.
#R programming library(udpipe) #read file text <- read.csv(csvFile, stringsAsFactors = FALSE) Encoding(text$Text) <- "UTF-8" #annotate data frame text_udpipe <- udpipe_annotate(udmodel, x = text$Text) text_udpipe <- as.data.frame(text_udpipe) #remove stop words tidy_text <- text_udpipe %>% anti_join(all_stop_words, by = c("token" = "word"))
Использование машинного обучения для понимания сообщений Reddit
Тематическое моделирование - популярный метод машинного обучения в области интеллектуального анализа текста. Он использует неконтролируемые алгоритмы, чтобы разбирать человеческие языки и открывать скрытые идеи.
Мы сгруппировали сообщения Wall Street Bets по 5 категориям, используя пакет udpipe
в R, а затем построили их в облака слов.
Результаты тематического моделирования
- Тема 1 и облака из 5 слов относятся к "gw" (также известному как GW Pharmaceutical). Можно предположить, что редакторы Reddit считают, что цена акций GW слишком высока.
- Тема 3 и облака из 4 слов связаны с «Ричмондом». Кто вообще такой Ричмонд?
#Define the identifier to build a topic model tidy_text$topic_level_id <- unique_identifier(tidy_text, fields = c("doc_id", "paragraph_id", "sentence_id")) ## Get a data.frame with 1 row per id/lemma dtf <- subset(tidy_text, upos %in% c("NOUN", "VERB","ADJ","ADV")) dtf <- document_term_frequencies(dtf, document = "topic_level_id", term = "lemma") # Create a document/term/matrix for building a topic model dtm <- document_term_matrix(x = dtf) dtm_clean <- dtm_remove_lowfreq(dtm, minfreq = 2) head(dtm_colsums(dtm_clean)) # Keep of these nouns the top 50 based on mean TF-IDF dtm_clean <- dtm_remove_tfidf(dtm_clean, top = 50) library(topicmodels) m <- LDA(dtm_clean, k = 5, method = "Gibbs", control = list(nstart = 5, burnin = 2000, best = TRUE, seed = 1:5))
Самые употребляемые слова в r / wallstreetbets
Далее мы рассмотрим наиболее часто используемые слова в группе Reddit Wall Street Bets.
В нашем случае мы будем использовать 2-слова в качестве токена для частотного анализа. Обычно токен из 2 слов дает нам лучшее представление о неструктурированном тексте по сравнению с токеном из 1 слова.
Выводы из наиболее употребляемых слов
- Такие термины, как «краткосрочное сжатие» и «краткосрочный», могут указывать на частые сделки между розничными инвесторами.
- «Рыночная капитализация», «цена акций», «апрель» - вот некоторые из популярных индикаторов акций в группе Reddit.
- Акции роста более популярны, чем акции стоимости в группе r / wallstreetbets
bigrams_separated <- text_bigram %>% separate(bigram, c("word1", "word2"), sep = " ") bigrams_filtered <- bigrams_separated %>% filter(!word1 %in% all_stop_words$word) %>% filter(!word2 %in% all_stop_words$word) # new bigram counts bigram_counts <- bigrams_filtered %>% count(word1, word2, sort = TRUE) #combine bigrams together bigrams_united <- bigrams_filtered %>% unite(bigram, word1, word2, sep = " ") # build bar chart bigrams_united %>% count(bigram, sort = TRUE) %>% mutate(bigram = reorder(bigram, n)) %>% # filter(n > 20) %>% top_n(15) %>% ggplot(aes(x = reorder(bigram, n), y = n)) + geom_col(fill = "#FE5907") + xlab(NULL) + coord_flip()
.Word сетевой граф
Помимо определения частоты слов в сообщениях обсуждения, мы также могли бы использовать сетевой граф, чтобы понять взаимосвязь между словами.
На сетевом графике ниже показаны слова, которые появлялись более 5 раз в сообщениях Reddit. Чем выше частота, тем темнее цвет стрелок.
Несмотря на то, что в сетевом графе много пар слов, одна тема выделялась среди других. Если вы посмотрите на фигуры белого цвета, вы увидите много слов, связанных с covid и вакциной в группе Reddit.
Выводы из сетевого графа:
- Розничные инвесторы заинтересованы в препарате Форалумаб, вводимом через нос.
- В 2019 финансовом году розничные инвесторы нацелились на компании, которые могли производить вакцины.
- Одобрение FDA может быть одним из индикаторов, на которые обращают внимание розничные инвесторы при инвестировании в акции, связанные с вакцинами.
#Build network graph ggraph(bigram_graph, layout = "fr") + #edge_alpha aesthetic to make links transparent based on how common or rare the bigram is geom_edge_link(aes(edge_alpha = n), show.legend = FALSE, #end_cap tells when arrow should stop arrow = a, end_cap = circle(.07, 'inches'),edge_colour = "white") + geom_node_point(color = "black", size = 2) + geom_node_text(aes(label = name), vjust = 1, hjust = 1, repel = TRUE, col = "#FE5907", family = "VCR OSD Mono", size = 5)
Вывод
- Краткосрочное инвестирование или краткосрочное сжатие - вот некоторые из часто упоминаемых стилей инвестирования среди розничных инвесторов.
- Розничных инвесторов больше интересуют акции роста, а не акции стоимости.
- Розничные инвесторы также ищут возможности инвестировать в компании, которые могут производить вакцины / антитела, которые могут остановить мировую пандемию на данный момент.