💻 Code Examples

Practical examples for implementing WIA-DATA-012 in your applications

🐍 Python Examples

Example 1: Basic Descriptive Analytics

Python
from wia_analytics import AnalyticsClient import pandas as pd # Initialize client client = AnalyticsClient(api_key="your_api_key") # Load data df = pd.read_csv("sales_data.csv") # Perform descriptive analytics results = client.descriptive_analytics( data=df, metrics=["mean", "median", "std", "quartiles"], group_by=["category", "region"] ) # Display results print(f"Mean Revenue: ${results['mean']:.2f}") print(f"Median Revenue: ${results['median']:.2f}") print(f"Standard Deviation: ${results['std']:.2f}") # Visualize distributions results.plot_distribution( column="revenue", title="Revenue Distribution" )

Example 2: Predictive Forecasting

Python
from wia_analytics import PredictiveAnalytics from datetime import datetime, timedelta # Initialize predictive analytics predictor = PredictiveAnalytics(api_key="your_api_key") # Prepare historical data historical_data = { "date": pd.date_range(start="2024-01-01", periods=365), "revenue": df["revenue"].values } # Train model model = predictor.train( data=historical_data, model_type="prophet", features=["date"], target="revenue" ) # Generate forecast forecast = model.predict( horizon=30, # 30 days confidence_level=0.95 ) # Display forecast for day in forecast: print(f"{day['date']}: ${day['value']:,.2f} " f"[${day['lower']:,.2f} - ${day['upper']:,.2f}]") # Evaluate model print(f"\nModel Metrics:") print(f"R² Score: {model.metrics['r2_score']:.3f}") print(f"RMSE: ${model.metrics['rmse']:,.2f}") print(f"MAE: ${model.metrics['mae']:,.2f}")

Example 3: Customer Segmentation

Python
from wia_analytics import Segmentation import matplotlib.pyplot as plt # Initialize segmentation segmenter = Segmentation(api_key="your_api_key") # Prepare customer data customer_features = df[[ "purchase_frequency", "average_spend", "recency_days" ]] # Perform clustering clusters = segmenter.cluster( data=customer_features, algorithm="kmeans", n_clusters=4, normalize=True ) # Analyze segments for i, segment in enumerate(clusters.segments): print(f"\nSegment {i}: {segment.name}") print(f" Size: {segment.size:,} customers") print(f" Avg Spend: ${segment.avg_spend:.2f}") print(f" Purchase Freq: {segment.purchase_freq:.1f}/year") print(f" Characteristics: {segment.characteristics}") # Visualize clusters clusters.plot_2d( features=["average_spend", "purchase_frequency"], title="Customer Segments" )

Example 4: Real-time Analytics Stream

Python
from wia_analytics import RealtimeAnalytics import asyncio # Initialize real-time analytics realtime = RealtimeAnalytics(api_key="your_api_key") # Define stream handler async def handle_events(event): """Process each incoming event""" # Extract event data timestamp = event['timestamp'] value = event['value'] # Detect anomalies if realtime.is_anomaly(value): print(f"⚠️ Anomaly detected at {timestamp}: {value}") await send_alert(event) # Update metrics realtime.update_metrics(event) # Create and start stream async def main(): stream = await realtime.create_stream( source="kafka://transactions", window="5m", aggregations=["count", "sum", "avg"] ) # Listen for events async for event in stream: await handle_events(event) # Run asyncio.run(main())

📘 TypeScript/JavaScript Examples

Example 1: Web Dashboard Analytics

TypeScript
import { AnalyticsClient, DescriptiveAnalytics } from '@wia/analytics'; // Initialize client const client = new AnalyticsClient({ apiKey: process.env.WIA_API_KEY, region: 'us-east-1' }); // Fetch and analyze data async function analyzeSalesData() { try { // Get data from API const data = await client.fetchDataset('sales_2024'); // Perform descriptive analytics const analytics = new DescriptiveAnalytics(data); const results = await analytics.compute({ metrics: ['mean', 'median', 'std', 'quartiles'], groupBy: ['category', 'region'] }); // Display results console.log(`Summary Statistics:`); console.log(` Mean: $${results.mean.toFixed(2)}`); console.log(` Median: $${results.median.toFixed(2)}`); console.log(` Std Dev: $${results.std.toFixed(2)}`); // Group analysis results.groups.forEach(group => { console.log(`\n${group.category} - ${group.region}:`); console.log(` Count: ${group.count}`); console.log(` Total: $${group.sum.toFixed(2)}`); }); return results; } catch (error) { console.error('Analytics failed:', error); throw error; } }

Example 2: React Dashboard Component

TypeScript React
import React, { useEffect, useState } from 'react'; import { useAnalytics } from '@wia/analytics-react'; import { LineChart, BarChart } from '@wia/charts'; interface AnalyticsDashboardProps { datasetId: string; } export const AnalyticsDashboard: React.FC = ({ datasetId }) => { const { data, loading, error } = useAnalytics(datasetId); const [forecast, setForecast] = useState(null); useEffect(() => { if (data) { // Generate forecast generateForecast(); } }, [data]); const generateForecast = async () => { const predictor = new PredictiveAnalytics(); const result = await predictor.forecast({ data: data.timeseries, horizon: 30, model: 'prophet' }); setForecast(result); }; if (loading) return
Loading analytics...
; if (error) return
Error: {error.message}
; return (

Sales Analytics Dashboard

{/* Summary Metrics */}
{/* Historical Trend */} {/* Forecast */} {forecast && ( )} {/* Category Breakdown */}
); };

Example 3: Node.js Stream Processing

TypeScript Node.js
import { RealtimeAnalytics, KafkaSource } from '@wia/analytics'; import { EventEmitter } from 'events'; // Configure Kafka source const kafkaSource = new KafkaSource({ brokers: ['localhost:9092'], topic: 'sales-events', groupId: 'analytics-consumer' }); // Initialize real-time analytics const analytics = new RealtimeAnalytics({ apiKey: process.env.WIA_API_KEY, source: kafkaSource }); // Set up event handlers analytics.on('event', (event) => { console.log(`Processed event: ${event.id}`); }); analytics.on('anomaly', (anomaly) => { console.warn(`⚠️ Anomaly detected:`, anomaly); // Send alert notifyTeam(anomaly); }); analytics.on('metrics', (metrics) => { console.log(`Metrics update:`, { eventsPerSecond: metrics.rate, avgLatency: metrics.latency, totalProcessed: metrics.total }); }); // Start processing async function start() { try { await analytics.start({ windowSize: '5m', aggregations: ['count', 'sum', 'avg', 'max', 'min'], anomalyDetection: { enabled: true, sensitivity: 0.95 } }); console.log('✓ Real-time analytics started'); } catch (error) { console.error('Failed to start analytics:', error); process.exit(1); } } start();

☕ Java Example

Spring Boot Analytics Service

Java
package com.example.analytics; import org.wia.analytics.*; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Value; @Service public class AnalyticsService { private final AnalyticsClient client; public AnalyticsService(@Value("${wia.api.key}") String apiKey) { this.client = new AnalyticsClient.Builder() .apiKey(apiKey) .region("us-east-1") .build(); } public DescriptiveResults analyzeRevenue(String datasetId) { Dataset dataset = client.getDataset(datasetId); DescriptiveAnalytics analytics = new DescriptiveAnalytics(dataset); return analytics.compute( AnalyticsConfig.builder() .metrics(Arrays.asList("mean", "median", "std")) .groupBy(Arrays.asList("category", "region")) .build() ); } public Forecast generateForecast(String datasetId, int horizon) { Dataset dataset = client.getDataset(datasetId); PredictiveAnalytics predictor = new PredictiveAnalytics.Builder() .modelType(ModelType.PROPHET) .confidenceLevel(0.95) .build(); Model model = predictor.train( dataset, TrainingConfig.builder() .features(Arrays.asList("date")) .target("revenue") .build() ); return model.predict(horizon); } public List segmentCustomers(String datasetId) { Dataset dataset = client.getDataset(datasetId); Segmentation segmenter = new Segmentation.Builder() .algorithm(ClusteringAlgorithm.KMEANS) .numberOfClusters(4) .normalize(true) .build(); return segmenter.cluster( dataset, Arrays.asList( "purchase_frequency", "average_spend", "recency_days" ) ); } }

📊 R Example

Statistical Analysis with R

R
library(wiaanalytics) library(tidyverse) # Initialize client client <- wia_client(api_key = Sys.getenv("WIA_API_KEY")) # Load data sales_data <- wia_fetch_dataset(client, "sales_2024") # Descriptive analytics summary_stats <- wia_descriptive( data = sales_data, metrics = c("mean", "median", "sd", "quantiles"), group_by = c("category", "region") ) # Display results print(summary_stats) # Visualize distribution ggplot(sales_data, aes(x = revenue)) + geom_histogram(bins = 50, fill = "#10B981", color = "white") + theme_minimal() + labs(title = "Revenue Distribution", x = "Revenue", y = "Frequency") # Time series forecasting forecast_model <- wia_forecast( data = sales_data, formula = revenue ~ date, method = "prophet", horizon = 30 ) # Plot forecast plot(forecast_model, main = "30-Day Revenue Forecast", xlab = "Date", ylab = "Revenue") # Customer segmentation segments <- wia_cluster( data = sales_data, features = c("purchase_frequency", "average_spend", "recency"), k = 4, method = "kmeans" ) # Analyze segments segment_summary <- segments %>% group_by(cluster) %>% summarise( size = n(), avg_spend = mean(average_spend), avg_frequency = mean(purchase_frequency) ) print(segment_summary)

🔧 CLI Examples

Using WIA Analytics CLI

Bash
# Install CLI npm install -g @wia/analytics-cli # Configure API key wia-analytics config set-key YOUR_API_KEY # Perform descriptive analytics wia-analytics describe \ --dataset sales_2024 \ --metrics mean,median,std \ --group-by category,region \ --output json # Generate forecast wia-analytics forecast \ --dataset sales_2024 \ --model prophet \ --horizon 30 \ --confidence 0.95 \ --output forecast.json # Customer segmentation wia-analytics segment \ --dataset customers \ --algorithm kmeans \ --clusters 4 \ --features purchase_frequency,average_spend \ --output segments.json # Start real-time stream wia-analytics stream create \ --name sales-events \ --source kafka://transactions \ --window 5m \ --aggregations count,sum,avg # Monitor stream wia-analytics stream metrics sales-events

💡 Best Practices

1. Data Quality

2. Model Selection

3. Performance Optimization

4. Error Handling