Power BI
Introducció
Power BI és la plataforma de business intelligence de Microsoft. És l'eina de BI més usada en entorns empresarials europeus, especialment en organitzacions que ja treballen amb l'ecosistema Microsoft (Azure, Office 365, Teams, Excel).
El 2025, Power BI ha incorporat capacitats d'IA significatives: Copilot per generar informes en llenguatge natural, models d'IA integrats per a prediccions i detecció d'anomalies, i connectors natius amb Azure Machine Learning i Fabric.
Arquitectura de Power BI
Power BI és en realitat un conjunt de components:
flowchart TD
subgraph Desktop ["Power BI Desktop (Windows)"]
PQ[Power Query\nETL i transformació]
DM[Data Model\nRelacions i DAX]
RPT[Report View\nVisualitzacions]
end
subgraph Service ["Power BI Service (Cloud)"]
WS[Workspaces]
DS[Datasets compartits]
DASH[Dashboards en temps real]
APP[Power BI Apps]
end
subgraph Consum ["Consum"]
MOB[Power BI Mobile]
EMB[Embedded\n(web, SharePoint)]
TEAMS[Microsoft Teams]
end
Desktop -->|Publicar| Service
Service --> Consum
| Component | Descripció | Cost |
|---|---|---|
| Power BI Desktop | Eina de creació d'informes (Windows) | Gratuït |
| Power BI Service | Plataforma cloud per compartir i col·laborar | Pro: ~€10/mes/usuari |
| Power BI Mobile | App iOS i Android per consultar informes | Gratuït |
| Power BI Premium | Per a organitzacions grans, sense llicències per usuari | ~€4.995/mes/capacitat |
| Microsoft Fabric | Plataforma unificada de dades + Power BI | Inclòs en Fabric |
1. Power Query: ETL visual
Power Query és el motor d'extracció, transformació i càrrega (ETL) de Power BI. Funciona amb una interfície visual però genera codi M (Power Query Formula Language) al darrere.
Operacions habituals de Power Query
Transformacions freqüents:
| Operació | Descripció | Exemple |
|---|---|---|
| Eliminar columnes | Treure camps innecessaris | Eliminar columna "ID intern" |
| Canviar tipus | Assegurar tipus de dades correctes | Text → Data, Text → Decimal |
| Filtrar files | Treure registres invàlids | Eliminar files on Valor = null |
| Combinar taules | JOIN entre dues fonts | Clients ← LEFT JOIN Comandes |
| Pivotar/despivotar | Reestructurar taules | Mesos com a files → com a columnes |
| Afegir columna calculada | Crear nous camps | Any = Year([Data]) |
Exemple de connexió a PostgreSQL
Power BI pot connectar directament a la BD on el model d'IA guarda les prediccions:
- Obtenir dades → PostgreSQL Database
- Introduir servidor i nom de BD
- Mode de connexió:
Import(còpia local) oDirectQuery(consulta en temps real)
Import vs DirectQuery
- Import: les dades es copien a Power BI. Màxim rendiment, però cal actualitzar manualment o programar actualitzacions. Recomanat per a la majoria de casos.
- DirectQuery: cada gràfic fa una consulta SQL en temps real. Dades sempre actuals, però pot ser lent per a grans volums. Recomanat per a BD en temps real.
2. Model de dades i relacions
El data model de Power BI funciona com una base de dades relacional interna. Has de definir les relacions entre taules per poder creuar dades.
Esquema estrella (Star Schema)
L'esquema recomanat per a Power BI és l'esquema estrella:
┌───────────────┐
│ Taula de fets │ (mètriques: vendes, prediccions, events)
│ (fact table) │
└───────┬───────┘
│ Relacions Many-to-One
┌────────────┼────────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ Dim │ │ Dim │ │ Dim │
│ Data │ │ Client │ │Producte│
└────────┘ └────────┘ └────────┘
(dimension tables)
Per a un dashboard d'IA:
- Taula de fets: prediccions (model_id, data, prediccio, accuracy, latencia)
- Dimensions: models (nom, versió, tipus), data (any, mes, dia, setmana)
3. DAX: Data Analysis Expressions
DAX és el llenguatge de fórmules de Power BI per crear mètriques calculades. Té una sintaxi similar a Excel però és molt més potent.
Mesures vs Columnes calculades
| Mesures | Columnes calculades | |
|---|---|---|
| S'avaluen | En temps d'execució (dinàmiques) | En el moment de càrrega (estàtiques) |
| Depenen | Del context del visual | De cada fila |
| Ús | Agregacions (SUM, AVG, COUNT, %) | Classificar, categoritzar, derivar valors |
| Rendiment | Millor per a grans volums | Augmenten mida del model |
Mesures DAX essencials
-- Total de prediccions
Total Prediccions = COUNTROWS(prediccions)
-- Accuracy mitjana
Accuracy Mitjana = AVERAGE(prediccions[accuracy])
-- % de prediccions correctes
% Correctes =
DIVIDE(
COUNTROWS(FILTER(prediccions, prediccions[correcta] = TRUE())),
COUNTROWS(prediccions),
0
)
-- Accuracy dels últims 30 dies
Accuracy 30d =
CALCULATE(
AVERAGE(prediccions[accuracy]),
DATESINPERIOD(prediccions[data], LASTDATE(prediccions[data]), -30, DAY)
)
-- Variació vs mes anterior
Δ Accuracy vs Mes Anterior =
VAR AccuracyActual = [Accuracy Mitjana]
VAR AccuracyAnterior = CALCULATE([Accuracy Mitjana], PREVIOUSMONTH(prediccions[data]))
RETURN
DIVIDE(AccuracyActual - AccuracyAnterior, AccuracyAnterior, 0)
Time Intelligence (anàlisi temporal)
DAX inclou funcions específiques per a l'anàlisi temporal, molt útils per comparar períodes:
-- Acumulat any en curs (YTD)
Prediccions YTD = TOTALYTD(COUNTROWS(prediccions), prediccions[data])
-- Comparació any anterior (YOY)
Accuracy Any Anterior =
CALCULATE([Accuracy Mitjana], SAMEPERIODLASTYEAR(prediccions[data]))
4. Visualitzacions
Visualitzacions natives principals
| Visualització | Cas d'ús en IA |
|---|---|
| Targeta (Card) | Accuracy actual, total de prediccions, latència |
| Gràfic de línia | Evolució de l'accuracy al llarg del temps |
| Gràfic de barres | Comparació de mètriques entre models o classes |
| Gràfic de dispersió | Correlació entre dues variables (precision vs recall) |
| Mapa de calor | Matriu de confusió |
| Treemap | Distribució de prediccions per categoria |
| Gauge | KPI vs objectiu (accuracy 94% de 95% objectiu) |
| Taula | Llista de prediccions errònies per investigar |
Visualitzacions d'IA natives
Power BI inclou visualitzacions d'IA sense necessitat de codi:
- Q&A Visual: els usuaris fan preguntes en llenguatge natural ("Mostra l'accuracy per mes")
- Key Influencers: identifica quines variables influeixen en una mètrica
- Decomposition Tree: desglossa un KPI per múltiples dimensions
- Anomaly Detection: detecta automàticament valors anòmals en sèries temporals
Integrar Python i R a les visualitzacions
Power BI permet executar scripts Python o R per crear visualitzacions personalitzades:
# Script Python dins de Power BI per a una matriu de confusió
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.metrics import confusion_matrix
# 'dataset' és el DataFrame que Power BI passa al script
cm = confusion_matrix(dataset['real'], dataset['prediccio'])
fig, ax = plt.subplots(figsize=(6, 5))
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues',
xticklabels=['No', 'Sí'],
yticklabels=['No', 'Sí'],
ax=ax)
ax.set_xlabel('Predicció')
ax.set_ylabel('Realitat')
ax.set_title('Matriu de confusió')
plt.tight_layout()
plt.show()
Activar Python a Power BI Desktop
Ves a Fitxer → Opcions → Scripting de Python i configura el camí de l'executable de Python (o l'entorn virtual del projecte).
5. Copilot i IA a Power BI
El 2025, Power BI Copilot (disponible en subscripcions Premium/Fabric) permet:
- Generar informes a partir d'una descripció en text natural: "Crea un informe de vendes per regió amb comparació any anterior"
- Resum automàtic de gràfics: Copilot explica en text el que mostra cada visual
- Suggeriments de mesures DAX basats en el context del model
- Q&A natural: els usuaris finals fan preguntes directament al dashboard
flowchart LR
U[Usuari] -->|"Quina és la precisió\ndel model el Q3?"| COP[Copilot]
COP -->|Genera DAX + Visual| PBI[Power BI]
PBI -->|Gràfic de barres\namb Precision Q3: 91.8%| U
6. Actualitzacions programades i alertes
Un dashboard de monitoratge d'IA necessita dades actualitzades. A Power BI Service:
- Actualitzacions programades: fins a 8/dia (Pro) o 48/dia (Premium)
- Alertes de dades: notificació per email/Teams quan un KPI supera un llindar
- Exemple: "Notifica'm quan Accuracy < 90%"
- Subscripcions: enviament automàtic d'informes per email en un horari
7. Bones pràctiques per a dashboards d'IA
- Màxim 5-7 visuals per pàgina — el cervell humà no pot processar més
- Jerarquia visual clara: el KPI més important, gran i a dalt a l'esquerra
- Colors consistents: un color per a cada categoria al llarg de tot l'informe
- Títols accionables: en lloc de "Accuracy", escriu "Accuracy del model (objectiu ≥90%)"
- Afegeix context: una línia de referència a cada gràfic temporal per veure tendències
- No uses gràfics de pastís per a més de 4 categories — usa barres
- Mode mòbil: configura la vista mòbil per als usuaris que consulten en telèfon
Activitat
Instal·la Power BI Desktop (gratuït per a Windows). Connecta'l a un fitxer CSV amb dades d'un model (accuracy, data, classe). Crea un informe amb: una targeta amb l'accuracy actual, un gràfic de línia amb l'evolució, i una taula amb les últimes 10 prediccions.