Data Analytics using R Programming (Full Course - 4.5 Hours)

Analytics-University

Data Analytics using R Programming (Full Course - 4.5 Hours) by Analytics-University

The video "Data Analytics using R Programming (Full Course - 4.5 Hours)" covers various aspects of data analytics using R programming. The topics covered include simple linear regression, multiple linear regression, treating missing values and outliers, and logistic regression. The video demonstrates how to use the lm function in R for linear regression and how to find the coefficient of determination, p-values, and confidence intervals. The instructor also delves into using KNN imputation functions to fill in missing values by finding similarities, and how to treat outliers in a dataset. Additionally, the video shows how to use the glm function to fit a logistic regression model and interpret the coefficients, deviance, and AIC values. Lastly, the instructor demonstrates how to use logistic regression to predict stock prices based on various market performance variables.

00:00:00

In this section, the video explains how to perform a simple linear regression in R using the inbuilt dataset "faithful". The two variables in this dataset are "eruptions" and "waiting". The video explains that "waiting" is the independent variable that shows the time between two consecutive "geezers" in the USA, while "eruptions" is the dependent variable that captures the lifespan of a geezer after it occurs. Using the lm function in R, the model is fitted, and the coefficients are found. After fitting this simple linear regression model, the video explains how to predict the value of "eruptions" using the predict function in R. Finally, the video tackles finding the coefficient of determination, which gives a measure of the goodness of fit of the model. This is done by using the summary function in R to generate a summary measure of the results of the fitting.

00:05:00

In this section of the video, the instructor discusses how to find the coefficient of determination, or the R-squared value, to determine the fit of the linear regression model. The instructor then goes on to talk about how to conduct a significance test for the linear regression and how to use the p-values to determine whether explanatory variables are significant in explaining variations in the dependent variable. The video also covers how to fit a confidence interval and a prediction interval given a specific value of the explanatory variable. The confidence interval is an estimate of the mean value of the dependent variable, while the prediction interval finds the interval estimate for the dependent variable.

00:10:00

In this section, the video covers multiple linear regression using an inbuilt dataset in R called Stat Loss. The dataset consists of a dependent variable called Stack Loss and three independent variables, including air flow, water temperature, and acid concentration. To estimate the multiple linear regression equation, the lm function is used to fit the dependent variable on the three explanatory variables. The result shows that the intercept is -39.9, and the coefficients for the three explanatory variables are 0.71, 1.2, and -0.15, respectively.

00:15:00

In this section of the video, the instructor demonstrates how to use a fitted multiple regression equation to find the value of the dependent variable given the values of the independent variables. To do this, they save the values of the independent variables in a variable called "new data" and use the "predict" function with the fitted regression equation and "new data" to get the predicted value. The instructor also shows how to find the value of the multiple coefficient of determination and the adjusted coefficient of determination for the regression model using the "summary" function. The p-values are also analyzed to determine the significance of the fitted coefficients. Finally, the instructor explains how to find the confidence interval for this multiple linear regression case using a similar method as in the previous case.

00:20:00

In this section, the video covers how to treat missing values in R using an example dataset called algae. The video shows how to load the dataset and identify the rows where values are missing. There are different techniques to treat missing values including deleting rows that contain a certain proportion of missing values or filling in missing values with the most frequent values. The video demonstrates how to use R to fill in missing values based on a chosen central tendency measure such as the mean or the median.

00:25:00

In this section of the video, the instructor discusses two techniques for filling in missing values in data using R programming. The first is to use mean as a measure of central tendency for variables that behave nearly normally. The instructor demonstrates how to write code to fill in missing values with the mean of the variable using the na.rm parameter to remove any other missing values from the calculation. The second technique involves exploring the correlation between variables and using the correlation function to fill in any missing values based on known correlations. The instructor shows how to use the simnum correlation function to plot a correlation matrix for a set of variables and how to fill in missing values based on high correlations between variables. The instructor demonstrates how to use a linear equation with known correlations to predict missing values for a specific row of data.

00:30:00

In this section of the full course on data analytics using R programming, the instructor shows how to fill in missing values in a dataset by finding similarities between different cases using the mathematical concept of Euclidean distance. The K-nearest neighbor (KNN) imputation function is used to take a weighted average of the values of the neighbors up to a certain number of nearest neighbors specified by the parameter 'k'. Furthermore, the instructor also delves into the treatment of outliers in R using a dataset of river lengths in North America, showing how to use histograms and box plots to visualize the data and identify the outliers.

00:35:00

In this section, we see the process of treating outlier values in a dataset using R programming. The example involves a dataset of river lengths, where outliers are present for lengths beyond 1200-1300 miles. The solution is to create a new dataset that contains a subset of the original data, where all rivers have lengths less than 1250 miles. By repeating this exercise and reducing the limit to which outliers could be extended, it was found that all the rivers beyond 1050 miles of length were outliers. By removing such values, the dataset becomes more equitable and can be used to conduct further analysis. The next section of the video focuses on conducting logistic regression using R programming, with an example dataset where the dependent variable is categorical and the independent variables are continuous.

00:40:00

In this section of the video, the instructor demonstrates how to fit a logistic regression model in R using the "glm" function with the "binomial" family to regress weight and displacement on the dependent variable "vs" which has a binomial nature. After fitting the model, the instructor shows how to interpret the coefficients and the deviance residuals, including the null deviance, residual deviance, and number of Fisher scoring iterations. The instructor also shows how to use the model for prediction purposes by creating a data frame and predicting the probability that a vehicle has a vs kind of engine given the weight and displacement values. Finally, the instructor explains what deviance is and how to interpret the null deviance as the value showing how the response variable is predicted by the model with only the intercept and no explanatory variables.

00:45:00

In this section, we learn about the concept of deviance and residual deviance, as well as AIC values in R programming. Deviance is a measure of the model's fitting, and we aim to have the lowest deviance possible. The residual deviance is the deviance of the model after including the explanatory variables. The AIC value is a method of assessing the model's quality in comparison with other similar models, with the lowest AIC value indicating the optimal model. We also explore how to interpret coefficient values in logistic regression, where weight influences the dependent variable positively and displacement affects it inversely.

00:50:00

In this section of the video, the presenter discusses logistic regression and its application in predicting stock price movement. The dataset used is the ISLR data on stock market performance, which includes variables such as lagged stock prices, volume of trade, and the direction of the stock price movement (up or down). The presenter explains the concept of lagged stock price and how it factors into the model. They also demonstrate how to fit a logistic regression model using the glm function in R and interpret the coefficients. Finally, the presenter uses the model to predict the probability of the stock price moving up or down based on the given variables.

00:55:00

In this section, the instructor focuses on using logistic regression to predict whether a stock price will go up or not. They start with descriptive statistics and look at the correlation of data, finding that stock price is correlated with its respective lags. The instructor then goes on to explain the importance of sampling and model building, using the glm function to fit a binomial model with target variable and explanatory variables. The summary statistics include intercept and slope coefficients, with negative coefficients indicating negative impact and positive coefficients indicating positive impact on the target variable. Finally, the instructor emphasizes the importance of p-values in understanding the significance of the coefficients.

01:00:00

In this section, the speaker discusses using coefficients to build a logistic regression equation to predict the probability of a stock moving up or down. They show how to use the predict function to store the probability values in a variable called "prop" and then print the first 20 observations. The speaker also explains how to evaluate the performance of the model using a confusion matrix and the accuracy ratio, highlighting that a threshold of 0.5 is often used to classify data into "up" and "down" categories. They then tabulate the predicted and actual values for the observations and show how the "market" variable can be used to determine the direction of a stock.

01:05:00

In this section, the speaker discusses the process of validating a logistic regression model using a confusion matrix and accuracy test. He emphasizes the importance of using separate datasets for training and testing in order to avoid underestimating misclassification errors. The speaker demonstrates how to create a training sample of data from before 2005 and test the model on data from 2005. He notes that the accuracy of the predictions was only slightly better than random, but this was because the same data was used for training and testing, highlighting the importance of proper validation techniques.

01:10:00

In this section of the video, the instructor discusses how to create a test sample and fit the training data model while using R programming with a data set of 252 observations from the year 2005. The instructor emphasizes the importance of using test data and doing a validation of the model to ensure its performance. They run the model and do the prediction, and then calculate the percentage of correct predictions, which turns out to be only 48%. The instructor explains that the existing model is doing a bad job, but with some fine-tuning and a closer look at the explanatory variables or features, the model's performance can be improved.

01:15:00

In this section, the instructor discusses how to improve the stock prediction model by removing unimportant variables such as higher lag variables that are not contributing to the prediction. By keeping only lag one and lag two, which intuitively makes sense as stock price movement depends on the current and previous day's stock prices, the model improves significantly. The accuracy ratio goes up to almost 66 percent, a significant improvement from the starting point of 52 percent. The model can further improve by using more power, logarithmic, exponential, or other mathematical transformations.

01:20:00

In this section of the video, the instructor demonstrates how to select the best-fit regression model using cross-validation. The idea behind using cross-validation is to ensure that the model not only performs well in the training dataset but also in the test dataset. The instructor uses the auto dataset and the glm function to fit a linear regression model that predicts the mileage based on engine horsepower. They then use the cv.glm function, which has the cross-validation function in-built, to get the cross-validation result. The instructor explains two types of cross-validation: leave-one-out and k-fold cross-validation, and directs viewers to another video for further information.

01:25:00

In this section, the instructor goes over how to create and evaluate polynomial regression models using the glm function in R. They create a loop that builds models with different polynomial terms for the predictor variable horsepower, ranging from linear to fifth order. Within the loop, the models are cross-validated, and the resulting errors are saved in a vector. The delta values for each model are then printed to evaluate which polynomial regression model performs the best. By adding more polynomial terms to the model, it becomes richer and more complex, potentially resulting in better performance, but it also risks overfitting.

01:30:00

In this section, the instructor discusses the various models generated and the error values associated with them. By using quadratic terms with two parameters in the model, the error value drops significantly from 24.23 to 19.24, but after using cubic terms, there is hardly any change in the error value. Therefore, it is best to use a smaller number of parameters. The quadratic term model is finalized by using the intercept, horsepower, and the square of horsepower. The instructor then proceeds to explain k-fold cross-validation, where k is equal to 10. The syntax is the same as the previous model, but there is a slight change in the code. The resultant products show that there is a significant drop in error values when using quadratic terms, but there is hardly any drastic drop after that.

01:35:00

In this section of the video, the presenter discusses the use of polynomial terms in data analytics, and how their addition does not necessarily always improve the model's predictive power. Furthermore, he emphasizes that too many model parameters can lead to overfitting, and that a simple model with a smaller set of predictors can be more effective. The presenter also introduces decision tree models for regression problems, and provides an example of how the algorithm works by dividing the data into sub-samples and taking the average of each sub-sample to assign a prediction value. The decision tree model can be useful for both classification and regression tasks.

01:40:00

In this section, the video discusses the process of using decision trees for regression purposes. The example given involves splitting data based on gender and whether someone has a tech job or not, and finding the average salary for each subcategory. The video explains that while this example may seem simple, in practice, there may be many categories to split the data into, and using continuous variables as predictors can be challenging. Additionally, deciding which predictors to use and how many to include in the model can impact its efficiency and explainability. The video suggests that using an automated algorithm is helpful to address these challenges.

01:45:00

In this section, the instructor explains the use of pruning with decision trees in order to keep them simple and select only important explanatory variables. The instructor uses the Boston data set to predict house prices based on factors such as crime rate, tax rate, and proportion of non-little business. The data is split into training and test samples using the sample function, and the decision tree model is then fit using the tree function with the target variable being the median value of house price (medv). The output of the decision tree model includes the root node, the number of nodes, and the threshold value used to split the data.

01:50:00

In this section, the instructor discusses variables, residual deviance, and the distribution of residuals in tree constructions. They note that only five variables out of 13 have been used to build the model and explain what each variable represents. The instructor then explains how to optimize tree building through cross-validation or building multiple models and choosing the one with the least mean square error. They also discuss automated pruning of the tree and demonstrate how to plot the tree using the saved summary statistics and the "text" syntax.

01:55:00

In this section, the instructor explains how to use pruning to improve the accuracy of a decision tree model. Pruning involves cutting down or adjusting nodes in the tree to minimize the deviance or mean square error. The instructor demonstrates how to plot the cross-validated deviance against the size of the model (number of nodes), and how to determine the optimal size by selecting the point of minimum deviance. The instructor then shows how to use the prune.tree function to prune the tree to the optimal size, and how to check the resulting summary statistics and plot. Finally, the instructor explains how to test the model on the remaining 25% of the data (test data) and calculate the test error to compare the original model and the pruned model.

02:00:00

In this section of the video, the instructor discusses the process of comparing predicted data with actual data using mean square error to determine the accuracy of the model. They also explain the concept of bagging, which is a combination of several decision trees to improve the efficiency or accuracy of the model. The instructor provides a brief introduction to bagging and explains that it reduces the variance of the outcome. They also use an example to illustrate how averaging observations can reduce variance. Finally, they discuss the bias-variance tradeoff in modeling.

02:05:00

In this section, the importance of reducing the variance in data analytics is discussed. To do this, the technique of bagging, or bootstrap aggregations, is introduced. Bootstrapping involves repeatedly taking sub-samples from a larger sample and randomly sampling from them to fit multiple decision trees. By averaging the outcome of each decision tree, a more accurate model can be created. The process is automated and performed using R programming. Ultimately, separate prediction models are created for each training set, with the option to use decision trees, linear regression, or logistic regression for the final model.

02:10:00

In this section, the speaker explains how to use bagging, a method that involves building multiple models on different training sets and aggregating the results to improve model accuracy. The speaker distinguishes the process for regression and classification problems, where for the former, the models are averaged, and for the latter, they take the majority vote. The speaker also discusses how to handle cross-validation in bagging, and how using the out-of-bag samples can eliminate the need for separate cross-validation. Overall, the process can be applied to linear regression, logistic regression, and decision trees.

02:15:00

In this section, the instructor discusses the concept of bagging and variable importance in data analytics using R programming. Bagging is a method of combining multiple decision trees to increase accuracy but compromise interpretability. Variable importance can be obtained by using matrices such as rss for regression and genie for classification to rank order variables used in the bagging model. A case study is then presented using the car seats dataset from the islr library to build a decision tree and compare it with a bagging model to see if it improves accuracy.

02:20:00

In this section, the instructor discusses building a bagging model using the "random forest" function in R programming. The car seats dataset with 400 observations is used, with 200 observations in the training dataset and the rest used for the test data. The root mean square error is used to compare the models and the instructor shows how to calculate it. The bagging model produces a mean square residual error of 3.21, which is an improvement from the previous test error of 4.7. The instructor then shows how to use the "fit" variable to do the prediction on the test data and plot the actual and predicted values. The bagging model's predicted values fit the data much better, with a greatly reduced variance compared to the previous model.

02:25:00

In this section, the video discusses how bagging can be used to improve model accuracy in decision trees. The use of multiple decision trees for prediction, and the importance of specifying how many variables are used in each split using the “mtry” keyword in R programming is highlighted. The video explains how to implement various metrics to compare variables, rank their importance and know which variable is most important for the model. Two assignments are proposed to the audience, the first involves building a decision tree, checking testing error rate and using a bagging model on a binary target variable data. The second assignment asks the audience to build a linear regression model manually for bagging purposes.

02:30:00

interested in data analytics and R programming can learn about the theory behind the random forest model in this section of the full course, which includes the basics of machine learning models and tree-based modeling. The video explains the differences between supervised, unsupervised, and semi-supervised learning, with a focus on supervised learning problems, specifically regression and classification. The instructor also provides an exercise using R to build a random forest model and compare it to other models to determine its effectiveness.

02:35:00

In this section of the video, the instructor explains the difference between regression and classification problems in data analytics. A regression problem involves predicting a continuous target variable, while a classification problem involves a categorical target variable. To build a learning model, training data is provided, and a machine learning algorithm is constructed to learn the pattern or relationship between the predictor variable and target variable in supervised learning. The instructor discusses tree-based models, such as decision trees, which are non-parametric and partition data into groups based on the values of predictors. The majority value is then assigned to the group, and the mean is used for regression problems. The instructor recommends watching his video on decision tree theory for a better understanding of the topic.

02:40:00

In this section, the instructor explains the challenges with decision tree models, including low prediction accuracy and high variance. To overcome these issues, ensemble learning is introduced, which involves combining multiple decision trees to reduce variance and improve accuracy. The instructor explains that there are different ways to combine decision trees, including bagging, boosting, and random forests. Bagging is explained as the foundation for random forests, and the instructor points out that there is a separate video on this topic in their channel. Finally, the optimal number of trees to use is discussed, with different metrics for classification and regression problems.

02:45:00

In this section, we learn about bootstrapping and bagging in data analytics and how it's used to build multiple models for decision trees. Bootstrapping is where data is randomly sampled, but it's done with replacement, meaning the same observation can be picked twice. Using bagging, we use bootstrapping to create multiple bootstrap samples, and we build a decision tree model separately for each of them. We then do the final prediction for the data set, taking the maximum vote or average depending on whether it is a classification or regression problem. We also learn that random forest is different from bagging, mainly as the samples in random forest are not purely random, they're selected using a more complex approach.

02:50:00

In this section, the concept of random sampling in bagging and random forest methods, and the difference between the two methods are explained. Bagging uses all available predictors while random forest uses only a random subset of them each time. Random forest has an additional randomness while selecting the predictors, which reduces the variance and works better on smaller sample data. The optimal number of predictors to use is given by a thumb rule, but it can be experimented with. The states involved in random forest are similar to bagging except for the additional step of selecting predictors randomly from the available set.

02:55:00

In this section of the video, the speaker discusses building a random forest model using R programming. The step of building a random forest model involves creating sub-samples of bootstrap samples, selecting optimal predictors, and determining the optimal number of trees. It is also important to compare the decision tree model's mean square error with random forest's mean square error to see which model has the least error. The speaker compares the decision tree model and random forest model by building both models using the boston data set, with the target variable being the median housing prices in the city of Boston. The mean square error for the decision tree model is 13.5.

03:00:00

In this section, the focus is on building a random forest using the R Programming language. By using the "randomForest" function, the target variable is selected randomly from a set of 13 predictor variables using the "mtry" keyword. By comparing the mean square errors, it was found that the random forest model improved the prediction accuracy compared to a single decision tree. A comparison was also made between bagging and random forest models, with the results showing that random forest performs better due to the random selection of predictors. In the end, the assignment was given to split the dataset into training and test data, comparing the test error rate for a single decision tree with the random forest model.

03:05:00

In this section, the speaker assigns three assignments related to bagging and random forest for different datasets with a target variable, where the output can be compared. Moving on from there, the video explains multinomial logistic regression and its usage for multi-class classification problems, such as choosing a profession based on certain characteristics, where we cannot order the values. The examples given in the video make it easier for the viewers to understand the concept of multinomial logistic regression.

03:10:00

In this section, the instructor discusses a small case study to demonstrate how to use multinomial logistic regression to analyze factors that affect someone's choice of university program. The target variable has three non-quantifiable values: general, academic, and vocational. Since the target values cannot be ordered, multinomial logistic regression is the appropriate technique for this multi-class classification problem. The instructor explains that using a multinomial profit model is also an option, but it involves assuming that the error terms are normally distributed. The instructor shows how to estimate the model and interpret the results, and notes that the two models' results can be displayed in one go.

03:15:00

In this section, the video discusses multinomial logistic regression, which deals with categorical variables with more than two categories. The video provides an example of a study comparing three categories of students - academic, general, and vocational. The academic category was chosen as the reference category, and the other two categories were compared to it. The video then demonstrates how to use R programming to estimate the log-odds ratio of someone choosing a general or vocational degree with respect to an academic degree. The output includes the intercepts and slope coefficients, which are essential for interpreting the results.

03:20:00

In this section, the instructor discusses how to interpret regression results and the motivations behind building a regression model for prediction and inference. The use of diagnostic statistics such as deviance and Akaiki information criteria is explained to understand the relationship between independent and dependent variables. The focus is on interpreting the results rather than model selection. The instructor explains how the model can help understand the relationship between different variables for inference. The logarithms of the probability of choosing a general program versus an academic program decrease by 0.503 when moving from low to middle socioeconomic status.

03:25:00

In this section, the instructor explains how to use regression analysis to make predictions based on a model. He uses the example of predicting which program a student might choose based on their socioeconomic status and writing score. He shows the probability of a student joining each program and how to use the maximum of those probabilities to predict which program the student is most likely to join. He notes that visualizations are also important for understanding the data and building a model that is well-informed. Finally, he mentions that models can be used for predictive purposes in real-world business applications.

03:30:00

In this section of the video, the instructor discusses the visualization of probability scores for different socio-economic status and the importance of utilizing a test data set in prediction problems. They emphasize the need for cross-validation to ensure good prediction accuracy and avoiding the issue of overheating. The instructor also notes that multinomial logistic regression requires a larger sample size for accurate output and mentions the use of maximum likelihood estimation. Furthermore, the section demonstrates the process of building a hierarchical clustering model using the iris data set, including the difference between k-means and hierarchical clustering, where the latter does not require the user to provide the algorithm for the number of clusters present in the data.

03:35:00

In this section of the video, the instructor discusses hierarchical clustering in R programming and the main difference between it and K-means clustering, which is that hierarchical clustering is more exploratory in nature. The instructor also explains how the distance between different clusters is calculated using two important ways - extreme points and average distance - and how by default, the hclust function in R uses complete linkage. The iris dataset is used as an example, and the instructor shows how to plot the dendrogram to determine the number of clusters present in the data. The instructor explains that the bigger cluster will get higher precedence while selecting the number of clusters, and they ultimately choose to cut the tree down to only three clusters for the iris dataset.

03:40:00

In this section of the video on data analytics using R programming, the instructor discusses the importance of cross-validation when clustering data to ensure accuracy. He notes that while a level dataset offers the luxury of cross-validation, smaller or incomplete levels of data can still be useful when cross-validating. The instructor then examines tabulated results of the iris species and predicted clusters, with varying patterns of accuracy across data points. He explains how changing the linkage method can improve the clustering results, and cutting the data down to three clusters, the optimal number based on the data, results in improved classification accuracy.

03:45:00

In this section of the video, the instructor explains how to build a principal component regression in R by using principal component analysis (PCA) as a dimensional reduction technique. The idea is to reduce the set of original variables or features by using PCA and then use the principal components derived from it in the regression analysis. This allows combining features in a way that the variation in the target variable is properly explained. The number of principal components used in the PCR regression is always less than the number of features available, as using the same number of principal components as features does not reduce the dimension. Therefore, it is recommended to use a small number of principal components.

03:50:00

In this section of the video, the instructor explains Principal Component Regression (PCR) and how it reduces the dimensionality of data. Unlike feature selection methods, PCR combines features to create a new feature, also known as a principal component, which is unrelated to the original features. The number of principal components used in PCR is generally less than the number of features, which reduces the bias in the model. By using principal components instead of original variables, the regression achieves higher prediction accuracy in test results. However, PCR is not always recommended and is useful only in certain cases, and the instructor demonstrates an example using a dataset on predicting the salary of basketball players in the US.

03:55:00

In this section of the video, the instructor explains how to build a principal component regression (PCR) model using the "pls" library in R programming language. It is advised to use the seed to reproduce the results, and scaling is necessary to standardize the predictor variables by taking the mean out and dividing by the standard deviation. The idea of PCR is to reduce the dimension of the data, so the rule of thumb is to use the minimum number of principal components that will help achieve the maximum purpose of reducing the dimension. The minimum number of principal components for the best model can be selected by plotting the mean square error rate for all regression models.

04:00:00

In this section of the video course, the instructor discusses principal component regression as a technique to reduce the dimension of data. The aim is to achieve the lowest error rate by finding the optimum number of principal components. The instructor explains that only a smaller number of principal components should be used, which can result in a lower error rate and reduced dimensionality. The course then moves on to a practical session where the instructor analyzes Twitter data by searching for tweets related to the word "India." The instructor then converts the data into a data frame, cleans it, and performs a sentimental analysis to determine the positive and negative emotions related to the tweets.

04:05:00

In this section of the course, the instructor introduces the process of creating a word cloud by removing unwanted punctuations, stop words, and stemming the text. The text is then converted into a term-document matrix with the frequency of each word displayed. The process is demonstrated by comparing word clouds for several different emotions using words extracted from Twitter. The instructor then shows how to use Latent Dirichlet Allocation (LDA) with 10 topics to divide the documents into 10 topics, and how to view the topics that a document contains. This information can be used to categorize the documents and relate topics to those documents.

04:10:00

In this section, the speaker explains how to extract trending topics from various locations using the LDA technique. By analyzing words and categorizing topics, the LDA can extract trends and codes for each specific location. The example shown in the video uses Chennai as the location and displays topics related to healthy living, tourism, music, and movies. Furthermore, the LDA can also be used to analyze similarities and differences between two people's Twitter data, providing useful information for data gathering.

More from
Analytics-University

No videos found.

Related Videos

No related videos found.

Trending
AI Music

No music found.