Получи случайную криптовалюту за регистрацию!

R4marketing | канал Алексея Селезнёва | Язык R

Логотип телеграм канала @r4marketing — R4marketing | канал Алексея Селезнёва | Язык R R
Логотип телеграм канала @r4marketing — R4marketing | канал Алексея Селезнёва | Язык R
Адрес канала: @r4marketing
Категории: Технологии
Язык: Русский
Количество подписчиков: 4.45K
Описание канала:

Автор канала Алексей Селезнёв, украинский аналитик, автор ряда курсов по языку R и пакетов расширяющих его возможности.
В канале публикуются статьи, доклады, новости, заметки по языку R.
Для связи: @AlexeySeleznev
Реклама: http://bit.ly/39MwJCY

Рейтинги и Отзывы

2.33

3 отзыва

Оценить канал r4marketing и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

1

3 звезд

0

2 звезд

1

1 звезд

1


Последние сообщения 9

2022-04-22 11:00:04 ​​Расширяя границы или о задаче проверки гипотезы о нормальности многомерного распределения

Путеводитель по пакету MVN, посвященному проверке гипотезы о нормальности многомерного распределения.

Допустим, у нас есть некоторое совместное распределение n переменных – и нам необходимо проверить, является ли оно нормальным. Решить эту задачу просто нам мешает один маленький факт – из нормальности многомерного распределения следует нормальность распределения каждой переменной в отдельности, но в обратную сторону это работает только при случае независимости компонентов распределения, что на практике не выполняется почти никогда. Поэтому приходится что-то изобретать.

Содержание:
● Минутка теории
● Методология
● Расчеты и описание

#статьи_по_R
601 viewsAlexey Seleznev, 08:00
Открыть/Комментировать
2022-04-21 11:00:04 $41 000 профита на оффере по микрозаймам с PPC.

Сейчас у всех на слуху криптовалютные офферы и фокус внимания отошел от не менее интересного направления — микрокредитования.

Под микрокредиты подходят все источники трафика: PPC, SEO, email-рассылки. Т.к. в PPC-рекламе проще доставать большие объемы трафика - сконцентрируемся на ней по примеру недавнего кейса.

Период слива: 01.2022 — 04.2022
ГЕО: США
Партнерка: LeadsMarket
Источник: PPC
Оффер: Personal Loans
Потрачено: $149 000
Получено: $190 250
Профит: $41 250
ROI: около 25%

При выборе оффера обращали внимание на размер выплаты, процент аппрува лидов и надежность партнерки.

ШАГ 1: Подбор и анализ ключевых запросов
Все, кто работают с PPC и SEO, знают про AhRefs и SimilarWeb. Чтобы получить больше данных, использовали оба сервиса одновременно. Базовые ключи: «cash loans», «quick loans».

ШАГ 2: Подготовка рекламных креативов
На креативы хорошо заходят люди с позитивными эмоциями, деньги. На США круто поднимут конверсию креативы с семейными парами разных рас. Дальше - текст по ключевому запросу, например:

● «loans for rent» — Rent Due? Loans Fast as 24hrs;
● «loans for bad credit» — $500-$5 000 Loan. Bad Credit OK.

ШАГ 3: Аналитика и оптимизация рекламных кампаний
Примерно раз в неделю лучше менять рекламные креативы и тестировать киворды.

Итоги
За 4 месяца благодаря оптимизации кампаний: смена креативов, апдейт кивордов, получился ROI 25%. Результат очень хороший, чистый профит свыше $41 000 порадовал.
556 viewsAlexey Seleznev, 08:00
Открыть/Комментировать
2022-04-20 11:00:05 Видео урок: "Запрос отчётов из Google Ads API в R с помощью пакета rgoogleads"

Ранее я уже неоднократно говорил о том, что 27 апреля будет прекращена поддержка Google AdWords API, в связи с чем, тем кто запрашивает данные из Google Ads с помощью устаревшего пакета RAdwords необходимо перевести скрипты на новый пакет rgoogleads.

Сегодня я опубликовал второй урок по работе с rgoogleads, в котором подробно разобрал процесс запроса отчётов из Google Ads API.

Время на миграцию у вас ещё есть.

Тайм коды:
00:00 Введение
00:59 Объектная структура Google Ads API
01:42 GAQL запрос
02:29 Основные ресурсы в Google Ads API
03:01 Типы полей в отчётах Google Ads API
04:36 Google Ads Query Builder
10:21 Как выполнить GAQL запрос, и получить его результат в R
12:17 Метаданные и информация о ресурсах
15:54 Аргументы функции adsgetreport()
22:11 Запрос отчётов из Google Ads API в многопоточном режиме
25:01 Запросы объектов рекламного кабинета Google Ads: рекламных кампаний, групп объявлений, объявлений и ключевых слов
26:40 Заключение

—————————————
К тому же вчера я опубликовал новую версию rgoogleads 0.6.0, установить которую уже можно из CRAN.

Что нового:
● В функцию gads_get_report() добавлен аргумент gaql_query, который позволяет передать функции готовый текст запроса, скопированный из QueryBuilder.
● Новая функция gads_get_keywords() для запроса списка ключевых слов.

Смотрите также:
- Видео урок по авторизации в Google Ads API
- Статья о миграции с Google AdWords API на Google Ads API

#видео_уроки_по_R
#новости_и_релизы_R
753 viewsAlexey Seleznev, 08:00
Открыть/Комментировать
2022-04-19 11:00:03 ​​Попался на глаза в открытом доступе в виде статьи на хабре перевод первой главы книги "Hands-On Programming With R" Гарретта Гроулмунда в соавторстве с Хедли Викхемом.

Не бойтесь программировать! Любой может научиться программировать при правильной мотивации, а эта книга организована таким образом, чтобы поддерживать вас мотивированным. Это не справочник; это книга о трёх проблемах. Книга проведёт вас через увлекательные основы языка R и даже позволит заглянуть на следующий уровень сложности. Настоящие задачи являются лучшим способом обучения, потому что вы не запоминаете функции вне контекста, вы изучаете их для решения проблем из реального мира. Вы будете обучаться выполняя задания.

В статье опубликован перевод не всей книги, тем не менее довольно большая её часть.

#книги_по_R
872 viewsAlexey Seleznev, 08:00
Открыть/Комментировать
2022-04-18 11:00:03 ​​Как создать кластеризированную таблицу в Google BigQuery с помощью R

Кластеризированная таблица в Google BigQuery, это таблица, которая физически разбита на блоки, по значениям одного или нескольких столбцов.

Зачем кластеризировать таблицу в BigQUery

По смыслу процесс кластеризации очень похож на индексирование таблиц, т.е. вы упорядочиваете данные по значению столбцов, за счёт чего значительно увеличиваете скорость выполнения запросов.

В BigQuery кластеризация не только снижает запросы, но и экономит деньги, т.к. при правильной работе с кластеризированной таблицей происходит сканирование только нужных блоков данных.

Как создать кластеризированную таблицу с помощью bigrquery

Синтаксис не особо очевидный, поэтому я и решил написать этот пост. Ниже пример создания простейшей кластеризированной таблицы:

library(bigrquery)
library(magrittr)

bq_auth(email = 'me@gmail.com')

ds <- bq_dataset(project = "my_proj", dataset = 'my_ds')

# тестовые данные
df <- data.frame(
gr = c('a', 'a', 'a', 'b', 'b'),
val = c(3, 5, 1, 3,4)
)

# создаём кластеризированную таблицу
bq_mtcars <- bq_table_create(
bq_table(ds, 'cluster_tbl'),
clustering = list(fields = "gr"),
fields = as_bq_fields(df)
)

# записываем данные
bq_table(project = "my_proj",
dataset = "my_ds",
table = "cluster_tbl") %>%
bq_table_upload(
values = df,
write_disposition = "WRITE_APPEND"
)

# запрашиваем данные
sql <- "SELECT * FROM my_ds.cluster_tbl WHERE gr = 'b'"
bq_df <- bq_project_query('choice31', sql) %>%
bq_table_download()

Т.е. для создания кластеризированной таблицы необходимо:

1. Использовать аргумент clustering передав в него список столбцов для кластеризации.
2. Передать в аргумент fields структуру будущей таблицы с помощью as_bq_fields(df).

Как правильно запрашивать данные из кластеризированной таблицы

Вы можете запрашивать данные из кластеризированной таблицы также, как и из обычной. Но для того, что бы получить эффект от кластеризации соблюдайте следующие правила:

● Кластеризация работает при фильтрации данных в блоке WHERE, и агрегации данных используя блок GROUP BY.
● Соблюдайте порядок обращения к столбцам, такой же как указывали при кластеризации.
● Нельзя использовать в выражении фильтрации кластеризированное поле, с каким либо другим полем.
● Используйте только простейшие выражения, например нельзя использовать при фильтрации по кластерному полю функции его преобразования.

Ссылки:
- Introduction to clustered tables
- Creating and using clustered tables
- Querying clustered tables

#заметки_по_R
859 viewsAlexey Seleznev, 08:00
Открыть/Комментировать
2022-04-15 11:00:03 ​​Как расположить несколько ggplot2 графиков на одном изображении

Для расположения сразу нескольких графиков на одном изображении удобно использовать пакет patchwork. patchwork по сути решает туже проблему, что и gridExtra::grid.arrange() и cowplot::plot_grid(), но имеет более простой синтаксис.

Рассмотрим несколько примеров:

library(ggplot2)
library(patchwork)

# создаём 2 графика
p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))

# располагаем их на одном изображении
p1 + p2

Пример более сложного макета, в котором 3 графика будут располагаться в верхней части изображения, и один в нижней.

p3 <- ggplot(mtcars) + geom_smooth(aes(disp, qsec))
p4 <- ggplot(mtcars) + geom_bar(aes(carb))

(p1 | p2 | p3) /
p4

Так же управлять макетом изображения вам позволяет функция plot_layout():

p1 + p2 + p3 + p4 +
plot_layout(ncol = 3)

Аргументы функции plot_layout():
● ncol, nrow - Размеры создаваемой сетки, если оба равны NULL, для установки размеров будет использоваться та же логика, что и при использовании facet_wrap().
● byrow - Аналогично byrow в matrix(). При значении FALSE, графики будут заполнены по столбцам.
● widths, heights - Относительная ширина и высота каждого столбца и строки в сетке. Будет повторяться, чтобы соответствовать размерам сетки.
● guides - Позволяет расположение общей легенды объединяемых графиов, принимает одно из следующих значений: 'collect', 'keep', 'auto'
● tag_level - Автопометка графиков, принимает одно из следующих значений: 'keep', 'new'
● design - Спецификация расположения областей графиков на макете.

Пример работы с аргументом design

p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))
p3 <- ggplot(mtcars) + geom_bar(aes(gear)) + facet_wrap(~cyl)
p4 <- ggplot(mtcars) + geom_bar(aes(carb))
p5 <- ggplot(mtcars) + geom_violin(aes(cyl, mpg, group = cyl))

# пример 1
design <- c(
area(1, 1, 2),
area(1, 2, 1, 3),
area(2, 3, 3),
area(3, 1, 3, 2),
area(2, 2)
)

p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)

# пример 2
design <- "
122
153
443
"
p1 + p2 + p3 + p4 + p5 + plot_layout(design = design)
Результат работы этого примера вы видите на изображении к посту.

Ссылки:
- сайт пакета patchwork

#заметки_по_R
1.1K viewsAlexey Seleznev, 08:00
Открыть/Комментировать
2022-04-14 11:00:03 Видео урок "Авторизация в Google Ads API и запрос иерархии аккаунтов"

Друзья, 27 апреля прекращается поддержка Google AdWords API, с которым работает устаревший пакет RAdwords. В связи с чем, я начал работу над серией видео уроков по работе с более новым пакетом rgoogleads, который работает с Google Ads API.

В первом видео я рассказал как пройти авторизацию, создать собственные учётные данные, необходимые для работы с Google Ads API, и запросить структуру ваших аккаунтов.

Тайм коды:
00:00 Вступление
00:57 Варианты авторизации в пакете rgoogleads
02:33 Пример авторизации в Google Ads API с использованием параметров по умолчанию
03:57 Какие учётные данные необходимо создать, для авторизации в Google Ads API
04:43 Как создать управляющий аккаунт Google Ads и запросить токен разработчика
08:55 Как создать и настроить проект в Google Cloud для работы с Google Ads API
13:00 Настройка конфигурации авторизации в пакете rgoogleads
18:56 Переменные среды в пакете rgoogleads
20:33 Опции пакета rgoogleads
21:49 Работа с иерархией аккаунтов в Google Ads API
26:19 Заключение

Смотрите также:
- Опубликовано видео моего доклада "Зачем интернет маркетологу понимать что такое API. Разбираем устройство API Google Ads", с которым я выступал летом на 8P.
- Миграция с Google AdWords API на Google Ads API: подробный мануал

#видео_уроки_по_R
1.1K viewsAlexey Seleznev, edited  08:00
Открыть/Комментировать
2022-04-13 11:00:05 ​​Исследование оттока сотрудников департамента исследований и разработок

Автор: Маматкулов Отабек

Я выбрал именно эту тему исходя из важности и высокой стоимости найма новых сотрудников, которые обычно начинают числиться в штабе компании в результате прохождегия различных стадий отбора - то есть наем нового сотрудника не является случайным, и может быть изучен более очевидными подходами, чем поведение клиентов. В отличие от уходящих клиентов, покидающий компанию сотрудник приносит больше убытков, так как привлекать новых сотрудников дороже из-за издержек на хантинг и последующее обучение. Аналогично и со стороны прибыли - новый сотрудник обычно приносит больше прибыли, чем сотни новых клиентов. Кроме этого, в компаниях есть различные департаменты со совей спецификой, и исследовать их стоит по-отдельности.

В данном проекте я планирую выявить одну из значимых зон уязвимости удержания сотрудников компании, чтобы предложить своё решение по удержжанию сотрудников направления “R&D” для компании, специализирующейся именно в этом направлении. Я подозреваю, что компаниия около-фармацевтическая, но на анализе это не отражается. Более подробную информацию предоставлю в следующих частях работы.

Содержание:
- Задача
- Анализ
- Данные и логика анализа
- Модель
- Симуляция
- Дэшборд
- Общие выводы

#статьи_по_R
1.3K viewsAlexey Seleznev, 08:00
Открыть/Комментировать
2022-04-12 11:00:04 ​​Видео урок "ОСНОВЫ ЯЗЫКА R| Переменные, типы данных, математические операции"

Автор: IdesSchool

Видео урок для новичков.

Данный язык является очень крутым для визуализации данных, так что его стоит знать.

#видео_уроки_по_R
1.2K viewsAlexey Seleznev, 08:00
Открыть/Комментировать
2022-04-11 11:00:04 ​​Статистическая мощь языка R в Greenplum с клиентом GreenplumR

Сегодня рассмотрим, как использовать статистический язык R для анализа данных в Greenplum.

Greenplum – open-source продукт, массивно-параллельная реляционная СУБД для хранилищ данных с гибкой горизонтальной масштабируемостью и столбцовым хранением данных на основе PostgreSQL.

GreenplumR - R пакет для работы с Greenplum.

#статьи_по_R
1.4K viewsAlexey Seleznev, 08:00
Открыть/Комментировать