Salta el contingut

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

Connectar a font → Previsualitzar dades → Transformar → Carregar al model

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:

  1. Obtenir dades → PostgreSQL Database
  2. Introduir servidor i nom de BD
  3. Mode de connexió: Import (còpia local) o DirectQuery (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

  1. Màxim 5-7 visuals per pàgina — el cervell humà no pot processar més
  2. Jerarquia visual clara: el KPI més important, gran i a dalt a l'esquerra
  3. Colors consistents: un color per a cada categoria al llarg de tot l'informe
  4. Títols accionables: en lloc de "Accuracy", escriu "Accuracy del model (objectiu ≥90%)"
  5. Afegeix context: una línia de referència a cada gràfic temporal per veure tendències
  6. No uses gràfics de pastís per a més de 4 categories — usa barres
  7. 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.