Fundamentals of Predictive Modelling.

Lesson 20/77 | Study Time: Min


Fundamentals of Predictive Modelling:


Fundamentals of Predictive Modelling: Understanding the Basics and Applications


Predictive modelling is an essential technique in data science and machine learning that uses statistical algorithms and historical data to forecast future outcomes. From predicting customer churn to estimating equipment failure, predictive modelling has become an indispensable tool in various industries, including finance, healthcare, marketing, and manufacturing. 📈 In this article, we will discuss how to approach predictive modelling and its various components.


Building Blocks of Predictive Modelling


Predictive modelling involves three fundamental steps: data preparation, model development, and model validation. Let's explore each of these steps in detail.


Data Preparation: Laying the Foundation 📊


Before diving into predictive modelling, data preparation is the first crucial step. This step involves collecting and cleaning the data, ensuring its quality, and making it ready for analysis. Some key points to consider during data preparation are:


  • Data cleaning: Remove or correct any missing or inaccurate data points.

  • Feature engineering: Create new features from the existing data that might improve the model's performance.

  • Feature selection: Select the most relevant features or predictors that will contribute to the model's accuracy.


Developing Predictive Models: Linear Regression, Decision Trees, and More 📐


Now that the data is prepared, the next step is to develop a suitable predictive model. There are numerous algorithms available, and selecting the right one depends on the problem at hand. Some popular predictive modelling techniques include:


  • Linear regression: A simple and interpretable model that assumes a linear relationship between predictor variables and a continuous target variable. In R, the lm function can be used for linear regression, while Python's statsmodels library provides the .ols function.

# Linear regression in R

linear_model <- lm(target_variable ~ predictor_variable1 + predictor_variable2, data = dataset)

# Linear regression in Python

import statsmodels.api as sm


X = dataset[['predictor_variable1', 'predictor_variable2']]

X = sm.add_constant(X)

y = dataset['target_variable']


linear_model = sm.OLS(y, X).fit()


  • Decision trees: A non-linear model that makes predictions by recursively dividing the data into subsets based on feature values. Decision trees can be used for both regression and classification problems.


  • Random forests: Ensemble learning method that builds multiple decision trees and combines their predictions for improved accuracy and stability.


  • Neural networks: A powerful and flexible modelling technique inspired by the human brain, capable of handling complex patterns and non-linear relationships.


Model Validation: Ensuring Reliability and Generalization 🎯


After developing a model, it's essential to validate its performance on unseen data. This is done to ensure the model is reliable and can generalize well to new data points. Model validation methods include:


  • Data partitioning: Split the dataset into separate training and testing sets. Train the model on the training data and evaluate its performance on the testing data.


  • Out-of-sample testing: Assess the model's ability to generalize to new data by evaluating its performance on a completely different dataset not used during the model development process.


  • Cross-validation: Divide the dataset into k equal parts or "folds" and train the model on k-1 folds while testing its performance on the remaining fold. Repeat this process k times, and average the performance results. This method helps to ensure the model's stability.


  • Model diagnostics: Use techniques like residual analysis, Cook's distance, and hat matrix to identify potential issues with the model, such as multicollinearity, non-normality of errors, and heteroscedasticity. Resolve these issues to improve the model's performance and robustness.



Real-World Example: Predicting House Prices 🏠


Suppose a real estate company wants to predict house prices based on the properties' features such as area, number of rooms, and age. In this scenario, a data scientist would:


  1. Gather historical data on house prices and features.

  2. Prepare the data by cleaning, feature engineering, and selecting relevant predictors.

  3. Develop a predictive model, such as a linear regression or decision tree, based on the chosen features.

  4. Validate the model through data partitioning, out-of-sample testing, and cross-validation.

  5. Interpret the model's output and use it to make informed decisions about house pricing.


In conclusion, predictive modelling is a powerful technique for forecasting future outcomes based on historical data. It involves data preparation, model development, and model validation. By understanding the fundamentals of predictive modelling and selecting the right techniques for a given problem, data scientists can unlock valuable insights and make data-driven decisions across various industries. 🌐


Identify the dependent variable and predictors for the predictive model.


Identifying Dependent Variables and Predictors in Predictive Modeling


In the world of predictive modeling, finding the right variables is crucial for creating accurate and effective models. The dependent variable and predictors are the core components of a predictive model, and understanding their roles and relationships is fundamental to success. Let's dive into the details of dependent variables and predictors and explore some real-world examples.


🔍 Dependent Variable: The Outcome

The dependent variable, also known as the target variable or outcome, is the primary focus of any predictive model. It represents the outcome or result we want to predict based on the information provided by the predictors. Dependent variables can be continuous (e.g., sales revenue), binary (e.g., customer churn: yes or no), or categorical (e.g., product category).

Example: In the context of predicting house prices, the dependent variable would be the price of the house.


📊 Predictors: The Inputs

Predictors, also known as independent variables or features, are the inputs used to make predictions about the dependent variable. They are the factors that, when combined in a model, help us understand the relationship between these factors and the dependent variable. Predictors can be numerical (e.g., age, income), binary (e.g., gender: male or female), or categorical (e.g., education level: high school, college, graduate).

Example: In the house prices prediction scenario, predictors could include factors like square footage, number of bedrooms, location, and age of the house.


🚀 Steps for Identifying Dependent Variables and Predictors


1. Define the Problem or Objective


The first step in identifying dependent variables and predictors is understanding the problem you want to solve or the objective you want to achieve with your predictive model. This will help you pinpoint the variable you want to predict and the factors that will affect it.


Example: If the objective is to predict customer churn for a subscription-based service, the dependent variable would be customer churn (yes or no), and predictors might include customer demographics, usage patterns, and customer feedback.


Gather data from relevant sources and perform an exploratory data analysis (EDA) to better understand the relationships between different variables. Visualization tools like scatterplots, bar charts, and correlation matrices can be beneficial for identifying potential predictors and their relationships with the dependent variable.


Example: In the customer churn prediction case, you might analyze data from your customer relationship management (CRM) system, user engagement data, and customer support logs to identify potential predictors.


3. Feature Selection and Engineering


Based on the EDA, you can now select the most relevant predictors for your model. Feature selection techniques like stepwise regression, lasso regularization, and recursive feature elimination can assist in identifying the most important predictors. Additionally, feature engineering can help create new predictors or transform existing variables to improve the model's accuracy.


Example: For customer churn prediction, you might transform the time since the last customer engagement into a binary variable (e.g., engaged within the last 30 days: yes or no) to simplify the relationship with the dependent variable.


4. Test and Evaluate the Model


Finally, after selecting the appropriate predictors and creating the model, test its performance using metrics like accuracy, precision, recall, or mean squared error. This step will help you assess the model's effectiveness and may lead to further refinement of the predictors or the addition of new ones.


Example: In the customer churn prediction model, you might use a confusion matrix to evaluate the model's performance and identify areas for improvement.


Remember, identifying the right dependent variable and predictors is an iterative process, and you may need to revisit your choices as you gain new insights or encounter new data. By following these steps and using real-world examples, you can create more accurate and effective predictive models


Develop a linear model using a suitable function in R or Python.


Building a Linear Model in Python: The Magic of Statsmodels


When it comes to developing a linear model in Python, you'll need the help of a powerful library called Statsmodels 📚. This library is built specifically for exploring data, estimating statistical models, and performing statistical tests. By the end of this guide, you'll have a solid understanding of how to develop a linear model using Statsmodels.


A Real-Life Scenario: House Prices Prediction 🏠


Imagine you work as a data scientist at a real estate company. Your boss asks you to create a model that can predict house prices based on the square footage. You've decided that a linear model is the most suitable approach for this problem. Let's see how to build this model using Statsmodels.


First, you'll need to install Statsmodels and import the required libraries:

!pip install statsmodels


import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import statsmodels.api as sm


Gathering the Data 📊


For this example, let's use a simple dataset that includes square footage (independent variable) and house prices (dependent variable):

data = {

    "Square_Footage": [1400, 1600, 1700, 1875, 1100, 1550, 2350, 2450, 1425, 1700],

    "Price": [245000, 312000, 279000, 308000, 199000, 219000, 405000, 324000, 319000, 255000]

}


df = pd.DataFrame(data)


Visualizing the Data 📈


Before developing a linear model, it's helpful to visualize the data to ensure there is a linear relationship between the independent and dependent variables:

plt.scatter(df["Square_Footage"], df["Price"])

plt.xlabel("Square Footage")

plt.ylabel("Price")

plt.title("Square Footage vs Price")

plt.show()

From the scatter plot, you can observe a positive linear relationship between square footage and price.


Developing the Linear Model 📐


Now that you've visualized the data, let's build the linear model using Statsmodels:

X = df["Square_Footage"]

y = df["Price"]


# Add a constant to the independent variable

X = sm.add_constant(X)


# Create the linear model

model = sm.OLS(y, X).fit()


Analyzing the Model 🔍


Once the linear model is created, it's important to analyze the results and ensure that the model is accurate and reliable. You can print the summary of the model using the following command:

print(model.summary())

The summary provides valuable information about the model, such as R-squared, adjusted R-squared, coefficients, and p-values.


Making Predictions 🎯


Finally, let's use the linear model to predict the price of a house with a square footage of 2000:

prediction = model.predict([1, 2000])

print(f"Predicted price for a 2000 sq ft house: {prediction[0]:,.2f}")


And that's it! You've successfully developed a linear model in Python using Statsmodels. Keep in mind that this is just a simple example, and you can apply the same methodology to more complex datasets with multiple independent variables. Happy modeling


Interpret the estimated regression coefficients to understand the relationship between the predictors and dependent variables.


Understanding Regression Coefficients 📊


Before diving into interpreting regression coefficients, it's important to understand the basics of predictive modeling. Predictive modeling is the process of using statistical techniques and machine learning algorithms to predict outcomes or values of a target variable based on historical data.


One of the most common techniques used in predictive modeling is linear regression. Linear regression is a method used to model the relationship between a dependent variable (also known as the target variable or output) and one or more independent variables (also known as predictors or input features).


Regression Coefficients: A Quick Overview 📈


In a linear regression model, the relationship between the dependent variable and the independent variables is represented by the equation:

y = b0 + b1 * x1 + b2 * x2 + ... + bn * xn + e

Here, y is the dependent variable, x1, x2, ..., xn are the independent variables, b0 is the intercept, b1, b2, ..., bn are the regression coefficients, and e is the error term.


The regression coefficients (b1, b2, ..., bn) represent the average change in the dependent variable for a one-unit change in the respective independent variables, assuming all other independent variables are held constant. In other words, they provide insights into how each predictor affects the target variable.


Interpreting the Estimated Regression Coefficients 🔍


Now that we have a basic understanding of linear regression and regression coefficients, let's discuss how we can interpret them to understand the relationship between predictors and the dependent variable.


  1. Positive vs. Negative Coefficients: A positive coefficient indicates that as the value of the predictor increases, the value of the dependent variable also increases. A negative coefficient indicates that as the value of the predictor increases, the value of the dependent variable decreases. For example, if we are predicting house prices, a positive coefficient for the number of bedrooms would mean that house prices tend to be higher for houses with more bedrooms, while a negative coefficient for the age of the house would mean that house prices tend to be lower for older houses.


  1. Magnitude of Coefficients: The magnitude of a coefficient represents the strength of the relationship between the predictor and the dependent variable. A larger absolute value of the coefficient indicates a stronger relationship between the predictor and the dependent variable. Keep in mind that comparing magnitudes across different predictors may not be meaningful if the predictors have different scales. In such cases, it's important to standardize the predictors before interpreting their coefficients.


  1. Statistical Significance of Coefficients: To determine if the estimated coefficients are statistically significant, we can look at their p-values or confidence intervals. A low p-value (typically less than 0.05) indicates that the coefficient is significantly different from zero, which means that there is evidence suggesting a relationship between the predictor and the dependent variable. A confidence interval that does not include zero also suggests statistical significance.


Real-World Example: Predicting House Prices 🏠💲


Let's consider a dataset containing information about house prices and their features, such as the number of bedrooms, square footage, and age of the house. We can build a linear regression model using these features as predictors to predict house prices.

Suppose the estimated regression coefficients are:


  • Intercept (b0): 50,000

  • Number of bedrooms (b1): 20,000

  • Square footage (b2): 100

  • Age of the house (b3): -500


These coefficients can be interpreted as follows:


  1. Intercept (50,000): When all predictors are equal to zero, the predicted house price is $50,000.

  2. Number of bedrooms (20,000): For each additional bedroom, holding other predictors constant, the house price increases by $20,000 on average.

  3. Square footage (100): For each additional square foot, holding other predictors constant, the house price increases by $100 on average.

  4. Age of the house (-500): For each additional year of age, holding other predictors constant, the house price decreases by $500 on average.

By interpreting these regression coefficients, we can better understand the relationship between the predictors (number of bedrooms, square footage, and age of the house) and the dependent variable (house price





Use F distribution to perform global testing and identify significant variables.


F Distribution in Global Testing and Identifying Significant Variables


Predictive modeling is a powerful tool that allows businesses and organizations to forecast future trends, identify opportunities, and make data-driven decisions. One essential step in predictive modeling is determining which variables are significant and contribute meaningfully to the model's accuracy. 🎯


In this context, we'll explore the use of the F distribution for global testing and identifying significant variables in a model. We'll cover what the F distribution is, how it can be used for global testing, and how to identify significant variables in a real-life example.


What is the F Distribution? 📈


The F distribution, also known as Fisher-Snedecor distribution, is a continuous probability distribution that arises frequently in statistical hypothesis testing. It is used to compare variances of two populations and is essential in Analysis of Variance (ANOVA) tests, which are used to compare means of multiple groups. The F distribution has two parameters, known as degrees of freedom, which determine its shape and location.


Global Testing Using the F Distribution


In the context of predictive modeling, the F distribution is often used to perform global testing, which involves determining if there is a significant difference between the variances of the model's predicted values and the observed values. These tests help assess if the model adequately predicts the outcome variable.


Here's a step-by-step process for performing a global test using the F distribution:


Step 1: Fit the Model 🖥️


First, you need to develop your predictive model using historical data. This might involve using regression techniques, machine learning algorithms, or other methods to create a model that can predict the outcome variable based on input features.


import pandas as pd

import statsmodels.api as sm


# Load the data

data = pd.read_csv("historical_data.csv")


# Fit the model

X = data[['feature1', 'feature2', 'feature3']]

y = data['outcome']

X = sm.add_constant(X)

model = sm.OLS(y, X).fit()



Step 2: Calculate the F Statistic 🧮


Next, you need to calculate the F statistic, which is a measure of how well your model predicts the outcome variable compared to a baseline model with no input features. The F statistic is calculated as:


F = (Explained variance / Degrees of freedom for the explained variance) / (Unexplained variance / Degrees of freedom for the unexplained variance)

Using the statsmodels library, you can get the F statistic directly from the model:

f_statistic = model.fvalue


Step 3: Determine the Critical F Value


Now, you need to determine the critical F value, which is the value that corresponds to a specific significance level (usually 0.05) and degrees of freedom. If your F statistic is greater than the critical F value, you can reject the null hypothesis (i.e., there is a significant difference between the model and the baseline).


from scipy.stats import f


alpha = 0.05

df1 = model.df_model  # Degrees of freedom for the explained variance

df2 = model.df_resid  # Degrees of freedom for the unexplained variance


f_critical = f.ppf(1 - alpha, df1, df2)




Step 4: Compare F Statistic and F Critical Value 🔍


Finally, compare the F statistic to the F critical value. If the F statistic is greater than the F critical value, it indicates that your model is significantly better than the baseline model, and the input features contribute meaningfully to the prediction.


if f_statistic > f_critical:

    print("The model is significantly better than the baseline.")

else:

    print("The model is not significantly better than the baseline.")


Identifying Significant Variables 💡


Once you've determined if your model is significantly better than the baseline, you can use the F distribution to identify which individual variables significantly contribute to the predictions.


For each variable, perform an F test comparing a model with and without the variable. If the F statistic for the test is greater than the critical F value, you can conclude that the variable is significant.


def f_test_two_models(model_full, model_reduced, alpha=0.05):

    difference_in_residuals = model_reduced.ssr - model_full.ssr

    difference_in_df = model_reduced.df_resid - model_full.df_resid


    f_statistic = (difference_in_residuals / difference_in_df) / (model_full.ssr / model_full.df_resid)

    f_critical = f.ppf(1 - alpha, difference_in_df, model_full.df_resid)


    return f_statistic, f_critical


# Example: Test the significance of 'feature1'

X_reduced = X.drop(columns=['feature1'])

model_reduced = sm.OLS(y, X_reduced).fit()


f_statistic, f_critical = f_test_two_models(model, model_reduced)


if f_statistic > f_critical:

    print("'feature1' is a significant variable.")

else:

    print("'feature1' is not a significant variable.")


By following these steps, you can use the F distribution to perform global testing and identify significant variables in your predictive model. This will help you build more accurate models and make better informed decisions based on your data. 🌟


Determine the significance of individual variables and remove insignificant ones from the model.Determining the Significance of Individual Variables


In predictive modeling, it's crucial to identify which variables significantly contribute to the model's performance and which do not. Including insignificant variables can lead to a less accurate model, overfitting, and increased computation time. By removing these variables, we can improve the overall performance and efficiency of the model. To determine variable significance, we can use statistical methods, feature importance techniques, and domain knowledge.


Statistical Methods: Hypothesis Testing and p-values


Hypothesis testing is a widely used statistical method in the context of variable selection. The null hypothesis states that there's no relationship between the target variable and the predictor. If the p-value is below a predetermined significance level (e.g., 0.05), we reject the null hypothesis and consider the predictor significant. On the other hand, if the p-value is above the threshold, we remove the predictor from the model.


For example, suppose we want to predict house prices using features like square footage, number of bedrooms, and location. After fitting a linear regression model, we obtain p-values for each predictor. If the p-value for the number of bedrooms is 0.07, we may consider it insignificant (assuming a significance level of 0.05) and remove it from the model.


import pandas as pd

import statsmodels.api as sm


# Load dataset

data = pd.read_csv('house_prices.csv')


# Fit linear regression model

X = data[['square_footage', 'num_bedrooms', 'location']]

y = data['price']

X = sm.add_constant(X)

model = sm.OLS(y, X).fit()


# Check p-values

print(model.summary())




Feature Importance Techniques: Recursive Feature Elimination and LASSO


Feature importance techniques can help in ranking predictors based on their contribution to the model. Recursive Feature Elimination (RFE) is a common technique used for this purpose. RFE involves fitting a model, computing the feature importances, and removing the least important feature. This process is repeated until a desired number of features are left.


LASSO (Least Absolute Shrinkage and Selection Operator) is another technique that can both estimate the model parameters and perform variable selection. It does this by adding a regularization term to the objective function, which penalizes the absolute values of the coefficients. As a result, LASSO can shrink some coefficients to zero, effectively removing those features from the model.


from sklearn.linear_model import Lasso

from sklearn.feature_selection import RFE

from sklearn.linear_model import LinearRegression


# Fit LASSO model

lasso = Lasso(alpha=0.1)

lasso.fit(X, y)


# Remove insignificant features based on LASSO coefficients

significant_features = X.columns[lasso.coef_ != 0]


# Apply RFE for feature ranking

regressor = LinearRegression()

rfe = RFE(regressor, n_features_to_select=2)

rfe.fit(X, y)


# Get RFE rankings

ranking = dict(zip(X.columns, rfe.ranking_))


Removing Insignificant Variables from the Model


Once we've determined which variables are insignificant, we can remove them from the model and refit it. This can lead to an improved model that is less prone to overfitting and computationally more efficient.


# Remove insignificant variables based on p-values and refit the model

X = X.drop(columns=['num_bedrooms'])

model = sm.OLS(y, X).fit()


# Check new model summary

print(model.summary())


In conclusion, determining the significance of individual variables and removing insignificant ones is a crucial step in building a reliable and efficient predictive model. By using statistical methods, feature importance techniques, and domain knowledge, we can optimize the model's performance and prevent overfitting.

UE Campus

UE Campus

Product Designer
Profile

Class Sessions

1- Introduction 2- Import and export data sets and create data frames within R and Python 3- Sort, merge, aggregate and append data sets. 4- Use measures of central tendency to summarize data and assess symmetry and variation. 5- Differentiate between variable types and measurement scales. 6- Calculate appropriate measures of central tendency based on variable type. 7- Compare variation in two datasets using coefficient of variation. 8- Assess symmetry of data using measures of skewness. 9- Present and summarize distributions of data and relationships between variables graphically. 10- Select appropriate graph to present data 11- Assess distribution using Box-Plot and Histogram. 12- Visualize bivariate relationships using scatter-plots. 13- Present time-series data using motion charts. 14- Introduction 15- Statistical Distributions: Evaluate and analyze standard discrete and continuous distributions, calculate probabilities, and fit distributions to observed. 16- Hypothesis Testing: Formulate research hypotheses, assess appropriate statistical tests, and perform hypothesis testing using R and Python programs. 17- ANOVA/ANCOVA: Analyze the concept of variance, define variables and factors, evaluate sources of variation, and perform analysis using R and Python. 18- Introduction 19- Fundamentals of Predictive Modelling. 20- Carry out parameter testing and evaluation. 21- Validate assumptions in multiple linear regression. 22- Validate models via data partitioning and cross-validation. 23- Introduction 24- Time Series Analysis: Learn concepts, stationarity, ARIMA models, and panel data regression. 25- Introduction 26- Unsupervised Multivariate Methods. 27- Principal Component Analysis (PCA) and its derivations. 28- Hierarchical and non-hierarchical cluster analysis. 29- Panel data regression. 30- Data reduction. 31- Scoring models 32- Multi-collinearity resolution 33- Brand perception mapping 34- Cluster solution interpretation 35- Use of clusters for business strategies 36- Introduction 37- Advance Predictive Modeling 38- Evaluating when to use binary logistic regression correctly. 39- Developing realistic models using functions in R and Python. 40- Interpreting output of global testing using linear regression testing to assess results. 41- Performing out of sample validation to test predictive quality of the model Developing applications of multinomial logistic regression and ordinal. 42- Selecting the appropriate method for modeling categorical variables. 43- Developing models for nominal and ordinal scaled dependent variables in R and Python correctly Developing generalized linear models . 44- Evaluating the concept of generalized linear models. 45- Applying the Poisson regression model and negative binomial regression to count data correctly. 46- Modeling 'time to event' variables using Cox regression. 47- Introduction 48- Classification methods: Evaluate different methods of classification and their performance in order to design optimum classification rules. 49- Naïve Bayes: Understand and appraise the Naïve Bayes classification method. 50- Support Vector Machine algorithm: Understand and appraise the Support Vector Machine algorithm for classification. 51- Decision tree and random forest algorithms: Apply decision trees and random forest algorithms to classification and regression problems. 52- Bootstrapping and bagging: Analyze the concepts of bootstrapping and bagging in the context of decision trees and random forest algorithms. 53- Market Baskets: Analyze transaction data to identify possible associations and derive baskets of associated products. 54- Neural networks: Apply neural networks to classification problems in domains such as speech recognition, image recognition, and document categorization. 55- Introduction 56- Text mining: Concepts and techniques used in analyzing unstructured data. 57- Sentiment analysis: Identifying positive, negative, or neutral tone in Twitter data. 58- SHINY package: Building interpretable dashboards and hosting standalone applications for data analysis. 59- Hadoop framework: Core concepts and applications in Big Data Analytics. 60- Artificial intelligence: Building simple AI models using machine learning algorithms for business analysis. 61- SQL programming: Core SQL for data analytics and uncovering insights in underutilized data. 62- Introduction 63- Transformation and key technologies: Analyze technologies driving digital transformation and assess the challenges of implementing it successfully. 64- Strategic impact of Big Data and Artificial Intelligence: Evaluate theories of strategy and their application to the digital economy, and analyze. 65- Theories of innovation: Appraise theories of disruptive and incremental change and evaluate the challenges of promoting and implementing innovation. 66- Ethics practices and Data Science: Assess the role of codes of ethics in organizations and evaluate the importance of reporting. 67- Introduction 68- Introduction and Background: Provide an overview of the situation, identify the organization, core business, and initial problem/opportunity. 69- Consultancy Process: Describe the process of consultancy development, including literature review, contracting with the client, research methods. 70- Literature Review: Define key concepts and theories, present models/frameworks, and critically analyze and evaluate literature. 71- Contracting with the Client: Identify client wants/needs, define consultant-client relationship, and articulate value exchange principles. 72- Research Methods: Identify and evaluate selected research methods for investigating problems/opportunity and collecting data. 73- Planning and Implementation: Demonstrate skills as a designer and implementer of an effective consulting initiative, provide evidence of ability. 74- Principal Findings and Recommendations: Critically analyze data collected from consultancy process, translate into compact and informative package. 75- Understand how to apply solutions to organisational change. 76- Conclusion and Reflection: Provide overall conclusion to consultancy project, reflect on what was learned about consultancy, managing the consulting. 77- Handle and manage multiple datasets within R and Python environments.
noreply@uecampus.com
-->