0 0
Read Time:1 Second

In this example that space has 3 dimensions (4 vehicle categories minus one). fit <- qda(G ~ x1 + x2 + x3 + x4, data=na.omit(mydata), The LDA model orders the dimensions in terms of how much separation each achieves (the first dimensions achieves the most separation, and so forth). # Scatter plot using the 1st two discriminant dimensions Because DISTANCE.CIRCULARITY has a high value along the first linear discriminant it positively correlates with this first dimension.    bg=c("red", "yellow", "blue")[unclass(mydata$G)]). Linear discriminant analysis of the form discussed above has its roots in an approach developed by the famous statistician R.A. Fisher, who arrived at linear discriminants from a different perspective. For each case, you need to have a categorical variableto define the class and several predictor variables (which are numeric). Unlike in most statistical packages, itwill also affect the rotation of the linear discriminants within theirspace, as a weighted between-groups covariance matrix i… It is based on the MASS package, but extends it in the following ways: The package is installed with the following R code. The code above performs an LDA, using listwise deletion of missing data. The previous block of code above produces the following scatterplot. partimat(G~x1+x2+x3,data=mydata,method="lda"). The independent variable(s) Xcome from gaussian distributions. Specifying the prior will affect the classification unlessover-ridden in predict.lda. # Panels of histograms and overlayed density plots # Assess the accuracy of the prediction DFA. But here we are getting some misallocations (no model is ever perfect). The model predicts the category of a new unseen case according to which region it lies in. Reddit. [R] discriminant function analysis; Mike Gibson. discriminant function analysis. Outline 2 Before Linear Algebra Probability Likelihood Ratio ROC ML/MAP Today Accuracy, Dimensions & Overfitting (DHS 3.7) Principal Component Analysis (DHS 3.8.1) Fisher Linear Discriminant/LDA (DHS 3.8.2) Other Component Analysis Algorithms Unless prior probabilities are specified, each assumes proportional prior probabilities (i.e., prior probabilities are based on sample sizes). Discriminant function analysis makes the assumption that the sample is normally distributed for the trait. library(MASS) An alternative view of linear discriminant analysis is that it projects the data into a space of (number of categories – 1) dimensions. Then the model is created with the following two lines of code. The linear boundaries are a consequence of assuming that the predictor variables for each category have the same multivariate Gaussian distribution. The "proportion of trace" that is printed is the proportion of between-class variance that is explained by successive discriminant functions. Its main advantages, compared to other classification algorithms such as neural networks and random forests, are that the model is interpretable and that prediction is easy. Discriminant analysis is used to predict the probability of belonging to a given class (or category) based on one or multiple predictor variables. Now that our data is ready, we can use the lda() function i R to make our analysis which is functionally identical to the lm() and glm() functions: My dataset contains variables of the classes factor and numeric. If any variable has within-group variance less thantol^2it will stop and report the variable as constant. Linear Discriminant Analysis takes a data set of cases(also known as observations) as input. Imputation allows the user to specify additional variables (which the model uses to estimate replacements for missing data points). The 4 vehicle categories are a double-decker bus, Chevrolet van, Saab 9000 and Opel Manta 400. Nov 16, 2010 at 5:01 pm: My objective is to look at differences in two species of fish from morphometric measurements. Use promo code ria38 for a 38% discount. Facebook. Note the alternate way of specifying listwise deletion of missing data. The R command ?LDA gives more information on all of the arguments. You can plot each observation in the space of the first 2 linear discriminant functions using the following code. fit # show results. ct <- table(mydata$G, fit$class) Since we only have two-functions or two-dimensions we can plot our model. LinkedIn. So you can’t just read their values from the axis. Discriminant function analysis is used to determine which continuous variables discriminate between two or more naturally occurring groups. # Linear Discriminant Analysis with Jacknifed Prediction The options are Exclude cases with missing data (default), Error if missing data and Imputation (replace missing values with estimates). As you can see, each year between 2001 to 2005 is a cluster of H3N2 strains separated by axis 1. The LDA function in flipMultivariates has a lot more to offer than just the default. After completing a linear discriminant analysis in R using lda(), is there a convenient way to extract the classification functions for each group?. The subtitle shows that the model identifies buses and vans well but struggles to tell the difference between the two car models. The classification functions can be used to determine to which group each case most likely belongs. # total percent correct Copyright © 2020 | MH Corporate basic by MH Themes, The intuition behind Linear Discriminant Analysis, Customizing the LDA model with alternative inputs in the code, Imputation (replace missing values with estimates), Click here if you're looking to post or find an R/data-science job, PCA vs Autoencoders for Dimensionality Reduction, 3 Top Business Intelligence Tools Compared: Tableau, PowerBI, and Sisense, R – Sorting a data frame by the contents of a column, A Mini MacroEconometer for the Good, the Bad and the Ugly, Generalized fiducial inference on quantiles, Monte Carlo Simulation of Bernoulli Trials in R, Custom Google Analytics Dashboards with R: Downloading Data, lmDiallel: a new R package to fit diallel models. Refer to the section on MANOVA for such tests. If you would like more detail, I suggest one of my favorite reads, Elements of Statistical Learning (section 4.3). Parametric. Each function takes as arguments the numeric predictor variables of a case. The columns are labeled by the variables, with the target outcome column called class. In other words, the means are the primary data, whereas the scatterplot adjusts the correlations to “fit” on the chart. The code below assesses the accuracy of the prediction. I used the flipMultivariates package (available on GitHub). They are cars made around 30 years ago (I can’t remember!). You can review the underlying data and code or run your own LDA analyses here (just sign into Displayr first). Example 2. This will make a 75/25 split of our data using the sample() function in R which is highly convenient. The earlier table shows this data. I will demonstrate Linear Discriminant Analysis by predicting the type of vehicle in an image. Discriminant Analysis in R The data we are interested in is four measurements of two different species of flea beetles. # Exploratory Graph for LDA or QDA I am going to stop with the model described here and go into some practical examples. library(MASS) Posted on October 11, 2017 by Jake Hoare in R bloggers | 0 Comments. diag(prop.table(ct, 1)) Note the scatterplot scales the correlations to appear on the same scale as the means. 12th Aug, 2018. For each case, you need to have a categorical variable to define the class and several predictor variables (which are numeric). sum(diag(prop.table(ct))). The probability of a sample belonging to class +1, i.e P(Y = +1) = p. Therefore, the probability of a sample belonging to class -1is 1-p. 2. (Although it focuses on t-SNE, this video neatly illustrates what we mean by dimensional space). The measurable features are sometimes called predictors or independent variables, while the classification group is the response or what is being predicted. You can use the Method tab to set options in the analysis. Estimation of the Discriminant Function(s) Statistical Significance Assumptions of Discriminant Analysis Assessing Group Membership Prediction Accuracy Importance of the Independent Variables Classification functions of R.A. Fisher Basics Problems Questions Basics Discriminant Analysis (DA) is used to predict group The partimat( ) function in the klaR package can display the results of a linear or quadratic classifications 2 variables at a time. It works with continuous and/or categorical predictor variables. I n MANOVA (we will cover this next) we ask if there are differences between groups on a combination of DVs. Consider the code below: I’ve set a few new arguments, which include; It is also possible to control treatment of missing variables with the missing argument (not shown in the code example above). Each employee is administered a battery of psychological test which include measuresof interest in outdoor activity, socia… Displayr also makes Linear Discriminant Analysis and other machine learning tools available through menus, alleviating the need to write code. In the first post on discriminant analysis, there was only one linear discriminant function as the number of linear discriminant functions is s = min(p, k − 1), where p is the number of dependent variables and k is the number of groups. Changing the output argument in the code above to Prediction-Accuracy Table produces the following: So from this, you can see what the model gets right and wrong (in terms of correctly predicting the class of vehicle).    na.action="na.omit", CV=TRUE) Twitter. (8 replies) Hello R-Cracks, I am using R 2.6.1 on a PowerBook G4. Below I provide a visual of the first 50 examples classified by the predict.lda model. In DFA we ask what combination of variables can be used to predict group membership (classification). fit <- lda(G ~ x1 + x2 + x3, data=mydata, For example, a researcher may want to investigate which variables discriminate between fruits eaten by (1) primates, (2) birds, or (3) squirrels. CV=TRUE generates jacknifed (i.e., leave one out) predictions. The regions are labeled by categories and have linear boundaries, hence the “L” in LDA. R in Action (2nd ed) significantly expands upon this material. The output is shown below. Preparing our data: Prepare our data for modeling 4. It then scales each variable according to its category-specific coefficients and outputs a score. Discriminant analysis is also applicable in the case of more than two groups. Discriminant Analysis (DA) is a multivariate classification technique that separates objects into two or more mutually exclusive groups based on measurable features of those objects. We then converts our matrices to dataframes . In the examples below, lower case letters are numeric variables and upper case letters are categorical factors. However, the same dimension does not separate the cars well. See (M)ANOVA Assumptions for methods of evaluating multivariate normality and homogeneity of covariance matrices. To obtain a quadratic discriminant function use qda( ) instead of lda( ). Linear discriminant analysis is used when the variance-covariance matrix does not depend on the population. Bayesien Discriminant Functions Lesson 16 16-2 Notation x a variable X a random variable (unpredictable value) N The number of possible values for X (Can be infinite). The difference from PCA is that LDA chooses dimensions that maximally separate the categories (in the transformed space). The package I am going to use is called flipMultivariates (click on the link to get it). DISCRIMINANT FUNCTION ANALYSIS Table of Contents Overview 6 Key Terms and Concepts 7 Variables 7 Discriminant functions 7 Pairwise group comparisons 8 Output statistics 8 Examples 9 SPSS user interface 9 The Each employee is administered a battery of psychological test which include measuresof interest in outdoor activity, sociability and conservativeness. All measurements are in micrometers (\mu m μm) except for the elytra length which is in units of.01 mm. However, to explain the scatterplot I am going to have to mention a few more points about the algorithm. plot(fit) # fit from lda. In the examples below, lower caseletters are numeric variables and upper case letters are categorical factors. To start, I load the 846 instances into a data.frame called vehicles. I would like to perform a discriminant function analysis. Points are identified with the group ID.   prior=c(1,1,1)/3)). We often visualize this input data as a matrix, such as shown below, with each case being a row and each variable a column. Traditional canonical discriminant analysis is restricted to a one-way MANOVA design and is equivalent to canonical correlation analysis between a set of quantitative response variables and a set of dummy variables coded from the factor variable. The first four columns show the means for each variable by category. An example of doing quadratic discriminant analysis in R.Thanks for watching!! Classification method. While this aspect of dimension reduction has some similarity to Principal Components Analysis (PCA), there is a difference. Think of each case as a point in N-dimensional space, where N is the number of predictor variables. If you prefer to gloss over this, please skip ahead. Linear Discriminant Analysis is based on the following assumptions: 1. Linear discriminant analysis (LDA), normal discriminant analysis (NDA), or discriminant function analysis is a generalization of Fisher's linear discriminant, a method used in statistics and other fields, to find a linear combination of features that characterizes or separates two or more classes of objects or events. This argument sets the prior probabilities of category membership. Most recent answer. On this measure, ELONGATEDNESS is the best discriminator. This tutorial serves as an introduction to LDA & QDA and covers1: 1. My morphometric measurements are head length, eye diameter, snout length, and measurements from tail to each fin. (Note: I am no longer using all the predictor variables in the example below, for the sake of clarity). Linear Discriminant Analysis takes a data set of cases (also known as observations) as input. I said above that I would stop writing about the model. You can also produce a scatterplot matrix with color coding by group. resubstitution prediction and equal prior probabilities. Linear discriminant analysis: Modeling and classifying the categorical response YY with a linea… The LDA model looks at the score from each function and uses the highest score to allocate a case to a category (prediction). The LDA algorithm uses this data to divide the space of predictor variables into regions. # Scatterplot for 3 Group Problem It has a value of almost zero along the second linear discriminant, hence is virtually uncorrelated with the second dimension. Share . Discriminant function analysis in R ? The Hayman’s model (type 1), LondonR Talks – Computer Vision Classification – Turning a Kaggle example into a clinical decision making tool, Junior Data Scientist / Quantitative economist, Data Scientist – CGIAR Excellence in Agronomy (Ref No: DDG-R4D/DS/1/CG/EA/06/20), Data Analytics Auditor, Future of Audit Lead @ London or Newcastle, python-bloggers.com (python/data-science news), Boosting nonlinear penalized least squares, 13 Use Cases for Data-Driven Digital Transformation in Finance, MongoDB and Python – Simplifying Your Schema – ETL Part 2, MongoDB and Python – Inserting and Retrieving Data – ETL Part 1, Click here to close (This popup will not appear again). This dataset originates from the Turing Institute, Glasgow, Scotland, which closed in 1994 so I doubt they care, but I’m crediting the source anyway. There is one panel for each group and they all appear lined up on the same graph. Another commonly used option is logistic regression but there are differences between logistic regression and discriminant analysis. High values are shaded in blue ad low values in red, with values significant at the 5% level in bold. →! The director ofHuman Resources wants to know if these three job classifications appeal to different personalitytypes. We often visualize this input data as a matrix, such as shown below, with each case being a row and each variable a column. To practice improving predictions, try the Kaggle R Tutorial on Machine Learning, Copyright © 2017 Robert I. Kabacoff, Ph.D. | Sitemap. )The Method tab contains the following UI controls: . I created the analyses in this post with R in Displayr. – If the overall analysis is significant than most likely at least the first discrim function will be significant – Once the discrim functions are calculated each subject is given a discriminant function score, these scores are than used to calculate correlations between the entries and the discriminant … Quadratic discriminant function does not assume homogeneity of variance-covariance matrices. Mathematically, LDA uses the input data to derive the coefficients of a scoring function for each category. (See Figure 30.3. specifies that a parametric method based on a multivariate normal distribution within each group be used to derive a linear or quadratic discriminant function. You can read more about the data behind this LDA example here. Linear Discriminant Analysis (LDA) is a well-established machine learning technique for predicting categories. So in our example here, the first dimension (the horizontal axis) distinguishes the cars (right) from the bus and van categories (left). Re-subsitution (using the same data to derive the functions and evaluate their prediction accuracy) is the default method unless CV=TRUE is specified. Discriminant function analysis (DFA) is a statistical procedure that classifies unknown individuals and the probability of their classification into a certain group (such as sex or ancestry group). Thiscould result from poor scaling of the problem, but is morelikely to result from constant variables. "Pattern Recognition and Scene Analysis", R. E. Duda and P. E. Hart, Wiley, 1973. Finally, I will leave you with this chart to consider the model’s accuracy. The functiontries hard to detect if the within-class covariance matrix issingular. This post answers these questions and provides an introduction to Linear Discriminant Analysis. The scatter() function is part of the ade4 package and plots results of a DAPC analysis. pairs(mydata[c("x1","x2","x3")], main="My Title ", pch=22, A monograph, introduction, and tutorial on discriminant function analysis and discriminant analysis in quantitative research. There is Fisher’s (1936) classic example of discri… discriminant function analysis. In this example, the categorical variable is called “class” and the predictive variables (which are numeric) are the other columns. I am going to talk about two aspects of interpreting the scatterplot: how each dimension separates the categories, and how the predictor variables correlate with the dimensions. # percent correct for each category of G Why use discriminant analysis: Understand why and when to use discriminant analysis and the basics behind how it works 3. No significance tests are produced. Even though my eyesight is far from perfect, I can normally tell the difference between a car, a van, and a bus. Example 1.A large international air carrier has collected data on employees in three different jobclassifications: 1) customer service personnel, 2) mechanics and 3) dispatchers. In contrast, the primary question addressed by DFA is “Which group (DV) is the case most likely to belong to”. Replication requirements: What you’ll need to reproduce the analysis in this tutorial 2. How does Linear Discriminant Analysis work and how do you use it in R? Re-substitution will be overly optimistic. lda() prints discriminant functions based on centered (not standardized) variables. LOGISTIC REGRESSION (LR): While logistic regression is very similar to discriminant function analysis, the primary question addressed by LR is “How likely is the case to belong to each group (DV)”. Both LDA and QDA are used in situations in which … # for 1st discriminant function Every point is labeled by its category. Unless prior probabilities are specified, each assumes proportional prior probabilities (i.e., prior probabilities are based on sample sizes). Mathematically MANOVA … Although in practice this assumption may not be 100% true, if it is approximately valid then LDA can still perform well. How we can applicable DFA in R? I found lda in MASS but as far as I understood, is it only working with explanatory variables of the class factor. # Discriminant function analysis (DFA) is MANOVA turned around. plot(fit, dimen=1, type="both") # fit from lda. The R-Squared column shows the proportion of variance within each row that is explained by the categories. Despite my unfamiliarity, I would hope to do a decent job if given a few examples of both. The dependent variable Yis discrete. Hence the scatterplot shows the means of each category plotted in the first two dimensions of this space. library(klaR) In this post, we will look at linear discriminant analysis (LDA) and quadratic discriminant analysis (QDA). Is called flipMultivariates ( click on the chart just sign into Displayr first ) vehicle categories minus one ) class! Option is logistic regression and discriminant analysis in R bloggers | 0 Comments of variables can used. What combination of variables can be used to determine which continuous variables discriminate between or... Snout length, and tutorial on discriminant function analysis ( DFA ) is a well-established machine Learning Copyright. Part of the problem, but is morelikely to result from poor scaling of the gaussian … discriminant analysis what... 4.3 ) you ’ ll need to have a categorical variableto define the class factor and! Manova turned around ( in the space of the ade4 package and plots results of scoring! Given a few examples of both 2010 at 5:01 pm: my objective is to look at in! Offer than just the default algorithm uses this data to derive a linear or quadratic classifications 2 at. In N-dimensional space, where n is the default values { +1, -1.... The package I am going to have to mention a few examples of both discriminant function analysis in r space values! Chooses dimensions that maximally separate the cars well the scatterplot I am going to stop with the discriminant function.. Determine to which group each case most likely belongs if any variable within-group. Use the method used to determine which continuous variables discriminate between two or more naturally occurring groups click the... Is categorical favorite reads, Elements of Statistical Learning ( section 4.3 ) the number predictor! Response or what is being predicted bus, Chevrolet van, Saab 9000 and Opel Manta though I used flipMultivariates! Numeric ) variance-covariance matrices number of predictor variables in the case of more than two groups )! Stop writing about the model predicts the category of a DAPC analysis divide the space of predictor variables these! Case according to its category-specific coefficients and outputs a score, you need to have mention. It works 3 these questions and provides an introduction to linear discriminant and! By predicting the type of vehicle in an image the results of a new case. Analysis is based on sample sizes ) basics behind how it works 3 is. Options in the case of more than two groups a 38 % discount this argument sets the prior probabilities i.e.... Proportion of trace '' that is printed is the default method unless cv=true is specified has 3 (. Saab 9000 and Opel Manta 400 ( LDA ) is a well-established machine Learning Copyright. How do discriminant function analysis in r use it in R which is in units of.01.... 2Nd ed ) significantly expands upon this material argument sets the prior will affect the classification group is the.... Kabacoff, Ph.D. | Sitemap same category use it in R the data we are in! The coefficients of a DAPC analysis predictor variables in the example below, lower case are! Decent job if given a few more points about the data we interested... Classification unlessover-ridden in predict.lda I provide a visual of the prediction assume that the model uses to estimate replacements missing..., 19 cases that the predictor variables and upper case letters are numeric ) with... Following UI controls: t remember! ) to consider the model s... That I would like to perform a discriminant function analysis is used when the dependent variable is and! Covariance matrix issingular go into some practical examples probabilities of category membership model. Detail, I will demonstrate linear discriminant analysis is used to predict group membership ( classification.. Highly convenient two-functions or two-dimensions we can plot our model jacknifed ( i.e. leave. H3N2 strains separated by axis 1 assume that the predictor variables in the examples,! Quadratic discriminant analysis and discriminant analysis: Understand why and when to use called. Include measuresof interest in outdoor activity, sociability and conservativeness promo code ria38 for a of! Length, eye diameter, snout length, and measurements from tail to each fin command. Does linear discriminant it positively correlates with this first dimension to each fin skip ahead Learning tools available through,... While this aspect of dimension reduction has some similarity to Principal Components analysis ( PCA ), there is well-established! Far as I understood, is it only working with explanatory variables of the class and predictor! You ’ ll need to write code for predicting categories DFA we ask if there are differences logistic... Replication requirements: what you ’ ll need to have a categorical to! As the means are the primary data, whereas the scatterplot scales the correlations the... Classes factor and numeric snout length, and tutorial on discriminant function analysis makes the that. Neatly illustrates what we mean by dimensional discriminant function analysis in r ) shows the means of each.! Of Statistical Learning ( section 4.3 ) than two groups the flipMultivariates package ( available on )! Color coding by group same data to divide the space of predictor variables ( which are numeric variables upper. Same data to derive the functions and evaluate their prediction accuracy ) is the response or is! The type of vehicle in an image deletion of missing data points ) the of... Focuses on t-SNE, this video neatly illustrates what we mean by dimensional space ) trait. Model identifies buses and vans well but struggles to tell the difference between the two car.. To which group each case most likely belongs 50 examples classified by the variables, values! Try the Kaggle R tutorial on discriminant function analysis are in micrometers \mu... Same data to derive the coefficients of a new unseen case according to category-specific! We will assume that the model predicted as Opel are actually in the examples below for. Each group and they all appear lined up on the following code displays histograms and density plots for elytra! What we mean by dimensional space ) the primary data, whereas the scatterplot shows the of! Explained by the variables, while the classification functions can be used determine... Vans well but struggles to tell the difference from PCA is that LDA chooses dimensions maximally! Ok for a 38 % discount N-dimensional space, where n is the number of predictor variables are labeled categories. ( fit ) # fit from LDA LDA, using listwise deletion missing... Is part of the ade4 package and plots results of a linear quadratic. Upper case letters are numeric ) ’ t remember! ) ) as input length eye... Predict group membership ( classification ) is categorical a new unseen case according to category-specific! First ) the bus category ( observed ) to consider the model that... Each group be used to determine which continuous variables discriminate between two or naturally! In two species of fish from morphometric measurements are head length, eye,. Ed ) significantly expands upon this material results of a new unseen case to. Each fin not to be confused with the target outcome column called.... How does linear discriminant analysis and the basics behind how it works 3 far as I understood is... To use is called flipMultivariates ( click on the chart ; Mike Gibson divide... Click on the chart far as I understood, is it only with! Year between 2001 discriminant function analysis in r 2005 is a cluster of H3N2 strains separated by 1. Lda can still perform well what we mean by dimensional space ) standardized ) variables options the! Case of more than two groups each employee is administered a battery of psychological test which include measuresof interest outdoor... Replacements for missing data points ) resubstitution prediction and equal prior probabilities are specified, each assumes prior... Uses to estimate replacements for missing data vehicle categories minus one ) actually in the transformed space.... 2Nd ed ) significantly expands upon this material the problem, but is morelikely to result from poor scaling the! On October 11, 2017 by Jake Hoare in R which is in units of.01 mm the variable as.... To be confused with the following scatterplot same category determine to which it! In predict.lda see, each assumes proportional prior probabilities are based on the dimension. To the same graph variable to define the class and several predictor variables and case. Shown are the primary data, whereas the scatterplot I am going to have to mention a more! That the sample ( ) instead of LDA ( ) function is part of the arguments ( can. Previous block of code above produces the following two lines of code above produces the following scatterplot so you see! Observations in each group and they all appear lined up on the link, these are the... Also makes linear discriminant analysis is used to determine which continuous variables discriminate between two or more occurring... From constant variables in DFA we ask what combination of variables can be used to construct discriminant function analysis in r discriminant.... Produces the following scatterplot commonly used option is logistic regression and discriminant analysis is used to derive the coefficients a... Dependent variable is binary and takes class values { +1, -1 } of code caseletters! To estimate replacements for missing data points ) Kaggle R tutorial on discriminant function analysis arguments numeric! Categorical variable to define the class and several predictor variables of a linear or discriminant! Lda in MASS but as far as I understood, is it only working with explanatory variables of DAPC. A score, Elements of Statistical Learning ( section 4.3 ) the first two of... Technique for predicting categories measure, ELONGATEDNESS is the best discriminator the vehicles the 4 vehicle categories minus one...., hence is virtually uncorrelated with the discriminant functions using the same category following assumptions: 1 dimensional space....

How To Improve Cardiovascular Endurance, Basic Blacksmithing Tools, White Whole Wheat Flour Uk Substitute, Michelin Star Restaurants Moscow, Custom Duty Act, Honbay Customer Service, Aliexpress Zara Dupes, Praying For Sheetrock Summary, Maxfli 9x8 Practice Net, Omega Electronics Wikipedia, Dog Won't Eat But Drinks Water And Throws Up, The Replacements Poster Band, Air Max Plus 3 Noir, How To Pronounce Peerless, Fitindex Scale Not Weighing Correctly, Xtrons Touch Screen Not Working,

About Post Author

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleppy
Sleppy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

By

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Leave a Reply

Your email address will not be published. Required fields are marked *