### Jun

#### 15

# MANOVA from beginning to end: Reliability

Filed Under Software, statistics, Technology | Leave a Comment

## Where is the Multivariate Analysis of Variance ?

You promised there would be MANOVA ! Now we’re in the third post!

First there was recoding of variables.

Then, there was creating scales.

Now, we’re looking at reliability.

Patience is a virtue.

Before we get to doing a MANOVA we want to be sure that our dependent and independent variables are reliable and valid. Let’s move on to reliability.

I’m going to do a correlation matrix and a Cronbach alpha, which is a measure of internal consistency. The rationale is that if items all measure the same construct – say, knowledge of health practices, or autonomy or acceptance of wife beating – then those items should be related to one another. An alpha of 0 would indicate the covariance of items in the scale are zero, so, your scale sucks. An alpha of .95 would mean your scale is amazingly consistent.

So, I did three analysis for my three scales

Title "Health Variables " ;

proc corr data=example alpha ;

var hbs1 hbs3-hbs7 ;

`Title "Wife beating variables" ;`

proc corr data=example alpha ;

var GR34 - GR39 ;

`Title "Decision Variables" ;`

proc corr data=example alpha ;

VAR D_GR1A GR2A D_GR3A D_GR4A GR5a GR6A D_GR7A GR8A

D_GR9A GR9F D_GR10A D_GR12A GR10F GR12F ;

Let’s skip the simple statistics, mean, etc. you get from these analyses and go to the alpha

The alpha for the health scale is pretty bad. The value for the raw scores is .31, for standardized items, still really bad at .32. When we look at how deleting a variable would improve the alpha, if we dropped the first variable , the alpha would go up to .34 – but that is still awful.

For the wife-beating scale the raw value for alpha was .81 and also for the standardized value. So, that one was pretty good as far as reliability.

I put all of the decision variables together, the ones on whether the woman was involved in making decisions, could go places on her own, needed to ask permission to go places. The Cronbach alpha for the raw variables was .65, for standardized variables .81. Note that standardized variables are placed on the same metric, so my idea of some variables being much more important than others did not pan out.

So … I standardized the variables, then I read in that data set and created two scales, one that was a sum of the decision variables and the other that was the mean of the 6 wife-beating variables. There was no particular reason for using the mean of the six variables as opposed to just adding them up. I did both methods to show it was an option.

BEWARE THE SUM FUNCTION – Note, I did not use the sum function. If you add up the values, as shown below, and one of the variables has a missing value then the value of the sum is going to be missing. If you used the SUM function, the variables that have non-missing values would be added up, so the missing value would be treated as a zero. There are times where that is acceptable. This is not one of those times.

While I’m at it, I want to check whether the scales have approximately normal distributions. A perfectly normal distribution would have skewness and kurtosis values of 0.

`proc standard data=example mean=0 std=1 out=MAN_data;`

`Data create_manova ;`

set man_data ;

* I could have used the mean function here, but I didn't ;

decision = D_GR1A + GR2A + D_GR3A + D_GR4A + GR5a + GR6A + D_GR7A + GR8A +

D_GR9A + GR9F + D_GR10A + D_GR12A + GR10F + GR12F ;

beating = mean(of gr34-gr39);

`proc univariate data=create_manova ;`

var decision beating ;

The skewness values were relatively low: -1.3 and 0.2 for the two scales and kurtosis values were 2.0 and -1.2 . Since my scales aren’t a radical departure from normality, I’m now going on to MANOVA – finally!

### Jun

#### 14

# MANOVA from beginning to end : Creating the scales

Filed Under Software, statistics, Technology | 2 Comments

Last time, we saw how to recode variables to score answers correct or incorrect, on a rating scale and weighted by importance. Today, we’re going to look at creating some scales from those variables because for reasons I’m sure I have written about at some point in the past, single items are usually not very reliable. Whether you use SAS, SPSS, R or any other statistical package, you are still going to need to follow the steps of recoding your variables and creating and validating your scales before you get into MANOVA. Or, at least, you will if you are smart.

First, I want to check that there are no obvious errors or other problems in my data.

`PROC MEANS DATA=example ;`

VAR gr2A -- gr39 hbs1 --d_gr12a ;

You could type in the variable names but that is a lot of typing. The double dashes mean to include all variables in the data set in order from the first variable to the one that comes after the dashes. How do you know what order the variables are in? Click on the OUTPUT DATA tab at the top and look to the left under COLUMNS.

If you didn’t just run a program creating your data and hence don’t have an OUTPUT DATA tab, you can find your data file by clicking the MY LIBRARIES tab and then clicking on the library (directory) where your data are kept and clicking on the dataset to open it. You can also use the PROC CONTENTS procedure but today we are being all pointy and clicky with SAS Studio.

Sometimes you will see something like:

VAR item1 – item12 ;

The single dash is used for variables that end in a number and if you don’t have item1, item2 all the way through item12, it will give you an error and not run. Then you will be sad.

PROC MEANS will give you the N, mean, standard deviation, minimum and maximum.

Here are a few things to consider.

- Is the N substantially less than you had expected? If so, you have a lot of missing data and you should investigate that. The lowest N I have is 37, 814 out of 39, 430 people so not bad, but I might want to look at that one item, since most of the items have close to 39,000 for an N
- Is your standard deviation zero? STOP RIGHT THERE! On just what variable could 39,000 people give the same response? This likely shows a big problem with your data. I did not have that problem, so I continued.
- Are your minimum and maximum the minimum and maximum possible scores for the item? Now, this may not always be the case. On a scale of 1 to 10, say, with a sample of 50 people, maybe no one will say 1. However, I have over 39,000 people and the items are 0 or 1, o – 2 or 1- 3, so I should have people from the minimum to the maximum or something is wrong. Nothing is wrong, and I continue.
- Are the means about what you expect? Well, I’m not really an expert on social structure and family relations in India, so I can’t say. About a third of the women said it was usual for a husband to beat his wife if her dowry was not what was expected. About three-fourths said they would be allowed to visit a family or friend’s home alone.

Okay, so my results from the means procedure looks okay. Now what?

Next, I’m going to do a factor analysis to see if my supposition is supported of three scales related to health, beating your wife and autonomy.

Here is the code for my factor analysis.

`PROC FACTOR DATA =example SCREE ROTARE= VARIMAX NFACTORS=5;`

VAR gr2A -- gr39 hbs1 --d_gr12a ;

This is actually the second one I ran. In inspecting the results for the first, between the eigenvalues and scree plot, I decided that at most I should retain five factors. I’ve written a lot about factor analysis on this blog previously, so I’m not going to go into detail here. In short, the decision-making variables mostly loaded on the first factor with factor loadings of .70 and higher. The median communality estimate for those items was about .67. In short, considerable evidence for a decision-making factor. The wife-beating variables loaded on the second factor. All but one loaded above .67, and even that variable (Beating your wife if she had an extramarital affair – which 84% of the women said was accepted in their communities) loaded at .40. The variables regarding needing permission to go places loaded on the third factor and also had high communality estimates. The variables regarding going places by yourself loaded on the fourth factor and also had high communality estimates.

The health variables were a different story. Four out of six loaded between .47 and .67 on the fifth factor. The other two did not load on any factor.

It is starting to look like at this point that it is okay to retain the wife-beating items as a scale. The various measures of autonomy – decision-making, going places on your own and needing permission – seem to hang together within factors. I think it would be reasonable to put all three of these together in one scale. I talked about parceling in the past, and I could have done that as a step here, and then re-run the factor analysis to support (or not) my supposed autonomy factor. Since I have limited time and simply doing this analysis for educational and illustrative purposes, I skipped over this to the next procedure, which is reliability analysis.

Since this post is pretty long already, I’ll save that for the next post.

### Jun

#### 11

# MANOVA beginning to end: Recoding Data is Part of the Process

Filed Under Software, statistics, Technology | 6 Comments

Other people want to go see the new Wonder Woman movie. I’ve been wanting to talk about MANOVA, but first, we need some decent dependent and independent measures.

I have the India Human Development Survey data on over 39,000 women and my hypothesis is that education is related to women’s rights’ issues, especially autonomy, health practices knowledge and domestic violence. I also think that mobility might be related, as women who get out of their native village might be exposed to new ideas.

Before I can test out my (supposedly) brilliant hypotheses, I need to create some variables because it turns out when they were collecting data in India in 2011 they were not thinking about my convenience. (Yes, I, too, am appalled by this lack of consideration.)

### Independent Variables

First, I will need to create my independent variables from

**EW11 Differences in family by mobility**

1= same village/ town

2= another village

3 = another town

4 = metro (since only 1% fall in here, I’m going to delete this category)

and education (see below)

### Items that will go into dependent variables (maybe)

**HEALTH QUESTIONS**

HB1 Milk harmful

HB3. 1st milk good for baby

Hb4 chulha smoke good

Hb5 child diarrhea drink more

Hb6 illness spread through water

Hb7 malaria spread

**DECISIONS**

The items below are scored 1 if the respondent decides, 0 if the respondent does not decide. (More than 1 person can decide, so if both husband and wife decide, the answer will be 1 for both. In this case, I just looked at if the wife had a say in the decision.)

- GR1a Cooking

- GR2A Expensive purchases.
- GR3A Decides number of children

- GR4A Decides what to do if sick

- GR5A Decides whether to buy land
- GR6A Decides wedding expense
- GR7A Decides if child is sick
- GR8A Decides who your children should marry

The items below are score 1 if the woman is allowed to do these things alone and 0 if she is not.

- GR9F Can visit health center alone
- GR10F Can visit relative/ friend alone
- GR12F. Can go short distance alone

These items relate to whether the woman needs to ask permission for activities, with 0 = no, 1 = must inform someone and 2 = yes

- GR9A Ask permission to visit health center

- GR10A Ask permission to visit relative
- GR12A. Ask permission to travel by bus/train

WIFE BEATING QUESTIONS

GR34 – GR39 – All of these relate to under what circumstances it is acceptable, coded yes = 1 or 0 = no.

As you can see, well, I hope you can see, each of these presents a different date re-coding problem.

- Mobility and education needs to be coded into categories (there is a minor reason I will explain in a later post why this is not necessary but convenient), with the fourth category deleted,
- Health questions need to be scored as correct or incorrect.
- Decision questions are all scored equally – so deciding what food to cook and how many children you have are each scored a 1. I think that’s not right and I want to weight some decisions more than others.
- Independence questions need to be reverse coded, so not asking permission is a 2 and asking permission is a 0
- Wife-beating questions need no recoding

So … here we go. The first thing we’re going to do is create categories. Notice I don’t do anything with the category 4 for mobility, so those people will just have a missing value for MOBILITY and be dropped from the analysis.

Also, a note on ELSE as opposed to just IF statements.

I could just use all IF statements but that would be inefficient. It doesn’t really matter here with 39,000 records but if I had millions it would slow down processing. The ELSE statement is only processed if the preceding IF statement is false.

NOTE!!! In the second set of IF- ELSE statements, I have

else if ew8 < 9 and ew8 ne . then education = “ELEM”;

This statement is only executed IF the preceding IF statement was false. **Without the ELSE, everything less than 9, including those who had 0 years of education, would be set to ELEM. ** Without the and ew8 ne . in this statement, anyone that had missing data would be set to ELEM along with anyone who had 1-8 years of education.

data example ;

set mydata.india ;

If EW11 = 1 then Mobility = “None” ;

else if EW11 = 2 then mobility = “Vill” ;

else if EW11 = 3 then mobility = “TOWN”;

if ew8 = 0 then education = “NONE” ;

else if ew8 < 9 and ew8 ne . then education = “ELEM”;

else if ew8 > 8 then education = “HS +”;

*** The statements below recode the health items ;

*** For hb1 the correct answer is 0, so 1-hb1 will score respondents who said 0 as correct (= 1) and those who said 1 as incorrect (=0);

*** For hb3 the correct answer is 1, so respondents who said 1 are scored as correct (= 1) and those who said any number higher than 1 as incorrect (=0);

*** For hb4 – hb7, the correct answer is scored as correct (=1) and any numbers in the incorrect set scored as incorrect (=0);

*** HEALTH QUESTIONS ;

hbs1 = 1- hb1 ;

If hb3 = 1 then hbs3 = 1 ;

Else if hb3 > 1 then hbs3 = 0 ;

If hb4 = 2 then hbs4 = 1 ;

Else if hb4 in (1,3) then hbs4 = 0 ;

If hb5 = 2 then hbs5 = 1 ;

Else if hb5 in (1,3,4) then hbs5 = 0 ;

If hb6 = 2 then hbs6 = 1 ;

Else if hb6 in (1,3,4) then hbs6 = 0 ;

If hb7 = 3 then hbs7 = 1 ;

Else if hb7 in (1,2,4) then hbs7 = 0 ;

/* DECISION QUESTIONS */

/* ALSO INCLUDES ADDITIONAL ITEMS NOT RECODED */

**** Here, I multiplied items by a factor based on my estimation of importance ;

D_GR1A = GR1A* 0.5 ;

D_GR3A = GR3A * 10 ; * BECAUSE I THINK IT’S IMPORTANT ;

D_GR4A = GR4A *2 ;

D_GR7A = GR7A *2 ;

**** These items are subtracted from 3 so doesn’t have to tell anyone = 2 ;

**** Needs to inform someone = 1 and needs to ask permission = 0 ;

D_GR9A = 3 – GR9A ;

D_GR10A = 3 – GR10A ;

D_GR12A = 3 – GR12A ;

**** KEEPS THE VARIABLES I PLAN TO USE ;

Keep EW8 EW5 Ew6 EW10 EW14a EW12a EW12b

HBS1 HBs3-HBS7 D_GR1A GR2A D_GR3A D_GR4A GR5a GR6A D_GR7A GR8A

D_GR9A GR9F D_GR10A D_GR12A GR10F GR12F GR34 – GR39 mobility education;

So, there we go. You might think I would dive into a Multivariate Analysis of Variance now but you would be wrong. The next thing I am going to do is check the validity of my scales through a combination of factor analysis, univariate statistics and reliability analysis. Only after that step will I do the MANOVA.

### Jun

#### 8

# An Introduction to Repeated Measures ANOVA

Filed Under Software, statistics, Technology | Leave a Comment

I’m teaching a course on multivariate statistics and for some of the students it’s been a minute since their last inferential statistics course.

So, I have been doing a few videos here and there to refresh, for example, what is a repeated measures ANOVA and why you might want to do it.

If you are interested in being a beta tester for our first bilingual game that teaches statistics, please email info@7generationgames.com

### May

#### 26

# Using Characterize Data Task to Inspect Data Quality

Filed Under Software, statistics, Technology | Leave a Comment

Since I had done a few youtube videos on using SAS Studio, I thought I would add them to my blog. This one uses the characterize data task to take a quick look at the data, but I suppose you could have guessed that from the title.

For random advice from me and my lovely children, subscribe to our youtube channel 7GenGames TV

### May

#### 8

# Getting STC files into SAS Studio – one reason I’m using it for class

Filed Under Open data, Software, Technology | Leave a Comment

It’s been almost two weeks of reviewing textbooks, revising my syllabus and I have to go back to it in a couple of hours to edit my last few powerpoints before class starts.

Yes, when I was a brand-new baby professor I was sometimes rushing to write a lecture before class, but now that I have given lectures on repeated measures ANOVA approximately 132 times, I just update the examples to be relevant to the current cohort.

So, I was debating about using SAS or SPSS and I got a lot of recommendations, particularly on linkedin. A few people suggested using JMP which I had not considered and hadn’t used in a few years. That sounded like a good idea except that I needed to have the syllabus done in a couple of days and start teaching the class the week after that.

In the end, I decided to go with SAS Studio for this class and investigate JMP for the future.

Interestingly, no one encouraged me to use SPSS, which I found interesting because it’s not a terrible package, just overpriced.

Support my day job! Learn about Ojibwe history and culture. Practice multiplication and division

**FREE GAME FOR iPad or Android tablets**

Click over here to find links to Making Camp in the App Store or on Google Play. **Yes, it’s free.**

The video below might give you an idea of why I decided to go with SAS Studio. Maybe I was just lucky, but it was so easy to upload the data I wanted to use for the first weeks’ examples, the India Human Development Survey. Take a look:

### Apr

#### 30

# Pointy, Clicky Propensity Score Matching With SAS

Filed Under Software, statistics | Leave a Comment

Hopefully, you have read my Beginner’s Guide to Propensity Score matching or through some other means become aware of what the hell propensity score matching is. Okay, fine, how do you get those propensity scores?

Think about this carefully for a moment, if you are using quintiles, you are matching people by which group they fit into as far as probability of being in the treatment group. So, if your friend, Bob, has a predicted probability of 15% of being in the treatment group, his quintile would be 1, because he is in the lowest 20%, that is, the bottom fifth, or quintile. If your other friend, Luella, has a predicted probability of being in the treatment group of 57%, then she is in the third quintile.

Oh, if only there were a means of getting the predicted probability of being in a certain category – oh, wait, there is!

Let’s do binary logistic regression with SAS Studio

First, log into your SAS Studio account.

Second, you probably need to run a program with a LIBNAME statement to make your data available. I am going to skip that step because in this example I’m going to use one of the SASHELP data sets and create a data set in mu WORK library as so, so I don’t need a LIBNAME for that but, as you will see, I do need it later. Here is the program I ran.

data psm_ex ;

set sashelp.heart ;

if smoking = 0 then smoker = 0 ;

else if smoking > 0 then smoker = 1;

WHERE weight_status ne “Underweight” ;

libname mydata “/courses/blahblah/c_123/” ;

run;

My question is if I had people who had the same propensity to smoke, based on age, gender, etc. would smoking still be a factor in the outcome (in this case, death). To answer that, I need propensity scores.

Third, in the window on the left, click on TASKS AND UTILITIES, then STATISTICS and select BINARY LOGISTIC REGRESSION, as shown below.

Next, choose the data set you want by clicking on the thing under the word DATA that looks like a table of data and selecting the library and data set in that library. Next, under RESPONSE, click the + sign and select the dependent variable for which you want to predict the probability. In this case, it’s whether the person is a smoker or not. Click the arrow next to EVENT OF INTEREST and pick which you want to predict, in this case, your choices are 0 or 1. I selected 1 because I want to predict if the person is a smoker.

Below that, select your classification variable,

There is also a choice for continuous variables (not shown) on the same screen. I selected AGEATSTART.

I’m going to select the defaults for everything but OUTPUT. Click the arrow at the top of the screen next to MODEL and keep clicking until you see the OUTPUT tab. Click on the box next to CREATE OUTPUT DATASET. Browse for a directory where you want to save it. I had set that directory in my LIBNAME statement (remember the LIBNAME statement) so it would be available to save the data. Select that directory and give the data set a name.

Click the arrow next to PREDICTED VALUES and in the 3 boxes that appear below it, click the box next to predicted values.

After this, you are ready to run your analysis. Click the image of the little running guy above. When your analysis runs you will have a data set with all of your original data plus your predicted scores.

Now, we just need to compute quintiles.You could find the quintiles by doing doing this:

PROC FREQ DATA=MYDATA.STATSPSM ;

tables pred_ ;

and look for the 20th, 40th, etc. percentile

However, an easier way if you have thousands of records is

proc univariate data=mydata.statspsm ;

var pred_ ;

output pctlpre=P_ pctlpts= 20 to 80 by 20;

proc print data=data1 ;

Which will give you the percentiles.

For random advice from me and my lovely children, subscribe to our youtube channel 7GenGames TV

### Apr

#### 26

# SAS vs SPSS for Teaching Multivariate Analysis in Social Sciences

Filed Under Software, statistics | 7 Comments

I have to choose between either SAS or SPSS for a new course in multivariate statistics. You can take it up with the university if you like, but these are my only two options, in part because the course is starting soon.

I need to decide in a few days which way to go. Here are my very idiosyncratic reasons for one versus the other:

- SPSS
- There is a really good textbook on multivariate statistics that I think would be perfect for these students and it uses SPSS. The book is Advanced and Multivariate Statistics by Mertler & Vannatta, in case you were wondering.
- SPSS can be installed pretty easily on the desktop and these are pretty non-technical students, so that’s a plus.
- The point and click interface for SPSS is pretty easy and similar to Excel which most people have used.
- Personally, I haven’t used SPSS in a while so it would be nice to use something different.

SAS

- Students can just register and go to the website to use SAS Studio
- Structural equation modeling and other advanced statistics procedures built in and not on add-on
- SAS Studio is free vs $80 or so for students and $260 for professor (i.e., me) to buy SPSS academic versions including add-ons needed
- I’m more familiar with SAS and find it easier to code than SPSS syntax.

I’ve toyed with the idea of showing both options but that uses up class time better spent on teaching, for example, how do you interpret a factor loading or AIC.

My big objection to SAS is I can’t find a recent textbook that is good for a multivariate analysis course that is in a social sciences department. The best one is by Cody and that is from 2005. I also use a couple of chapters from the Hosmer & Lemeshow book on Applied Logistic Regression , but I need something that covers factor analysis, repeated measures ANOVA and hopefully, MANOVA and discriminant function analysis, too.

I think most of these students have careers in non-profits and they are not going to be creating new APIs to analyze tweets or anything using enormous databases, so the ability to analyze terabytes is moot. This will probably be their second course in statistics and maybe their first introduction to statistical software.

Suggestions are more than welcome.

For random advice from me and my lovely children, subscribe to our youtube channel 7GenGames TV

P. S. You can skip the hateful comments on why SAS and SPSS both suck and I should be using R, Python or whatever your favorite thing is. Universities don’t usually give carte blanche. These are my two choices.

P.P.S. You can also skip the snarky comments on how doctoral students should have a lot more statistics courses, all take at least a year of Calculus, etc. Even if I might agree with you, they don’t and I need tools that work for the students in my classes, not some hypothetical ideal student.

### Mar

#### 25

# How to compute a standard deviation and control chart when you don’t have raw data

Filed Under Software, statistics, Technology | 1 Comment

- I created two data sets, named q4disc and q4disc3, keeping the month of discharge and the number dissatisfied at discharge and dissatisfied 3 months later, respectively.
- I read in the 3 values I was given, month of sample, number unsatisfied at discharge and number unsatisfied 3 months later.
- Now, I am going to create a data set of raw data based on the numbers I have. First, in a do loop, for as many as people said they were unsatisfied, I set the value of undisc (unsatisfied at discharge) to to 1 and output a record to the q4disc dataset.
- Next, in a do loop for 500- the number dissatisfied, I set undisc = 0 and output a record to the same dataset.
- Now, repeat steps 3 & 4 to create a data set of the values of people unhappy 3 months after discharge.
- Following the programming statements are the original data.

So, now, I have created two data sets of 6,000 records each with three variables. Doesn’t seem that efficient of a way to do it but now I have the data I need and it didn’t take long and doesn’t take up much space.

“The XSCHART statement creates and charts for subgroup means and standard deviations, which are used to analyze the central tendency and variability of a process.”

For the three months after discharge variable, just do another PROC SHEWHART with q4disc3 as the dataset and undisc3 as the measurement variable.

OR , once you have the dataset created, you can get the chart using SAS Studio by selecting the CONTROL CHARTS task

Either way will give you this result:

For random advice from me and my lovely children, subscribe to our youtube channel 7GenGames TV

### Mar

#### 2

# Excel for regression analysis: What a surprise!

Filed Under Software, statistics, Technology | Leave a Comment

I wouldn’t normally consider Excel for analysis, but there are four reasons I’ll be using it sometimes for the next class I’m teaching. First of all, we start out with some pretty basic statistics, I’m not even sure I’d call them statistics, and Excel is good for that kind of stuff. Second, Excel now has data analysis tools available for the Mac – years ago, that was not the case. Since my students may have Mac or Windows, I need something that works on both. Third, many of the assignments in the course I will be teaching use small data sets – and this is real life. If you are at a clinic, you don’t have 300,000,000 records.Four, the number of functions and ease of use of functions in Excel has increased over the years.

**For example,**

**TRANSPOSE AN ARRAY IN EXCEL**

Select all of the data you want and select COPY

Click on the cell where you want the data copied and select PASTE SPECIAL from the edit menu. Click the bottom right button next to TRANSPOSE and click OK. Voila. Data transposed.

**PERFORMING A REGRESSION ANALYSIS**

Once you have your data in columns (and if it isn’t, see TRANSPOSE above), you just need to

- Add the Analysis Pack. You only need to do this once and it should be available with Excel forever more. To do that, go to TOOLS and select EXCEL ADD-INS. Then click the box next to Analysis ToolPak and click OK.
- Now, go to TOOLS, select DATA ANALYSIS and then pick REGRESSION ANALYSIS

You just need to select the range for the Y variables, probably one column, select the range for the X variables, probably a column adjacent to it, and click OK. You may also select confidence limits, fit plots, residuals and more.

So, yeah, for simple analyses, Excel can be super-simple.

Believe it or not, this is what I do for fun. In my day job, I make video games that teach math and social studies.

You can check out the games we make here.