Суть:
DAX - это не выход. Используйте Home > Edit Queries
, а затем Transform > Run R Script
. Вставьте следующий фрагмент кода R, чтобы запустить регрессионный анализ с использованием всех доступных переменных в таблице:
model <- lm(Manager ~ . , dataset)
df<- data.frame(coef(model))
names(df)[names(df)=="coef.model."] <- "coefficients"
df['variables'] <- row.names(df)
Измените Manager
на любое из других доступных имен переменных, чтобы изменить зависимую переменную.
Подробности:
Хороший вопрос! Я не понимаю, почему Microsoft не представила более гибкие решения. Но в настоящее время вы не сможете найти очень хорошие подходы без использования R в Power BI.
Поэтому предлагаемый мной подход игнорирует ваш запрос относительно:
Вопрос в том, как получить эти значения в Power BI с помощью DAX (желательно без написания собственного сценария R)?
Однако мой ответ будет соответствовать вашим требованиям относительно:
Хороший ответ должен быть обобщен на более чем 3 столбца (возможно, работая с таблицей несведенных данных с индексами как значениями, а не заголовками столбцов).
Вот так:
Я нахожусь в системе, использующей запятую в качестве десятичного разделителя, поэтому я собираюсь использовать в качестве источника данных следующее (если вы скопируете числа непосредственно в Power BI, разделение столбцов не будет сохранено. Если вы сначала вставите его в Excel, скопируйте его снова и ЗАТЕМ вставьте в Power BI, столбцы будут в порядке):
Date Equity Duration Credit Manager
31.01.2017 2,907 0,226 1,24 1,78
28.02.2017 2,513 0,493 1,12 3,88
31.03.2017 1,346 -0,046 -0,25 0,13
30.04.2017 1,612 0,695 0,62 1,04
31.05.2017 2,209 0,653 0,48 1,4
30.06.2017 0,796 -0,162 0,35 0,63
31.07.2017 2,733 0,167 0,83 2,06
31.08.2017 0,401 1,083 -0,67 0,29
30.09.2017 1,88 -0,857 1,43 2,04
31.10.2017 2,151 -0,121 0,51 2,33
30.11.2017 2,02 -0,137 -0,02 3,06
31.12.2017 1,454 0,309 0,23 1,28
Начиная с нуля в Power BI (для воспроизводимости), я вставляю данные, используя Enter Data
:
![введите описание изображения здесь](https://i.stack.imgur.com/TDH4X.png)
Теперь перейдите к Edit Queries > Edit Queries
и убедитесь, что у вас есть это:
![введите описание изображения здесь](https://i.stack.imgur.com/j2Sdv.png)
Я считаю, что для обеспечения гибкости в отношении количества столбцов для включения в анализ лучше всего удалить столбец Дата. Это не повлияет на результаты вашей регрессии. Просто щелкните правой кнопкой мыши столбец «Дата» и выберите Remove
:
![введите описание изображения здесь](https://i.stack.imgur.com/ETYp8.png)
Обратите внимание, что это добавит новый шаг в Query Settings > Applied Steps
>:
![введите описание изображения здесь](https://i.stack.imgur.com/QJUlg.png)
И здесь вы сможете отредактировать несколько строк кода R, которые мы собираемся использовать. Теперь перейдите к Transform > Run R Script
, чтобы открыть это окно:
![введите описание изображения здесь](https://i.stack.imgur.com/SFOgv.png)
Обратите внимание на строку # 'dataset' holds the input data for this script
. К счастью, ваш вопрос касается только ОДНОЙ таблицы ввода, поэтому все не станет слишком сложным (для нескольких таблиц ввода проверьте этот пост). Переменная набора данных представляет собой переменную формы data.frame в R и является хорошей (единственной ..) отправной точкой для дальнейшего анализа.
Вставьте следующий скрипт:
model <- lm(Manager ~ . , dataset)
df<- data.frame(coef(model))
names(df)[names(df)=="coef.model."] <- "coefficients"
df['variables'] <- row.names(df)
![введите описание изображения здесь](https://i.stack.imgur.com/erGCv.png)
Нажмите OK
, и, если все пойдет хорошо, вы должны получить следующее:
![введите описание изображения здесь](https://i.stack.imgur.com/R9be6.png)
Щелкните Table
, и вы получите следующее:
![введите описание изображения здесь](https://i.stack.imgur.com/mZKvF.png)
Под Applied Steps
вы увидите, что был вставлен Run R Script
шаг. Щелкните звездочку (шестеренку?) Справа, чтобы отредактировать ее, или щелкните df
, чтобы отформатировать таблицу вывода.
Вот и все! По крайней мере, в части Редактировать запросы.
Щелкните Home > Close & Apply
, чтобы вернуться в раздел отчетов Power BI и убедиться, что у вас есть новая таблица в Visualizations > Fields
:
![введите описание изображения здесь](https://i.stack.imgur.com/nizVV.png)
Вставьте таблицу или матрицу и активируйте коэффициенты и переменные, чтобы получить это:
![введите описание изображения здесь](https://i.stack.imgur.com/3p8sm.png)
Надеюсь, это то, что вы искали!
Теперь некоторые подробности о сценарии R:
Насколько это возможно, я бы избегал использования множества различных библиотек R. Таким образом вы снизите риск возникновения проблем с зависимостями.
Функция lm()
обрабатывает регрессионный анализ. Ключ к достижению требуемой гибкости в отношении количества объясняющих переменных лежит в части Manager ~ . , dataset
. Это просто говорит о том, что нужно выполнить регрессионный анализ Manager
переменной в фрейме данных dataset
и использовать все оставшиеся столбцы ~ .
в качестве независимых переменных. Часть coef(model)
извлекает значения коэффициентов из оценочной модели. Результатом является фрейм данных с именами переменных как именами строк. Последняя строка просто добавляет эти имена в сам фрейм данных.
person
vestland
schedule
26.02.2018