Recently, I met with the professor and the grad student in charge of the research project. I discovered that when reviewing the results of the project, that the models we had created were awful. God awful. To give you an idea, statisticians use a measure called R2 to determine how well a model fits that ranges from 0 to 1. A R2 of 1 means that the model perfectly predicts the data. A R2 of 0 means that the model has no relation to the data at all. A good R2 is around 0.8, a decent R2 is around 0.5, and a poor R2 is around 0.3. Our average R2 was around 0.1.
At this point, my professor decided that it would be better for us to reuse the method, but use a different method. While we had been using data at the provider level, she wanted us to aggregate providers to a State level. This would give us a coarser resolution, and hopefully some patterns would emerge. I'll keep you updated.
Tuesday, December 16, 2014
Friday, December 12, 2014
Juggling Time
Time management is hard. Working on projects is hard. Schoolwork is hard. Put together, it becomes an almost impossible task. Because I don't work in an office, it is hard for me to stay focus. I end up having to juggle homework and research at the same time. It's frustrating when you start research, then end up having to pick your brother up from school or take out the trash. The daily responsibilities of life end up making it hard for me to work at home. At school, in class, there are often even more distractions. For me, the hardest part of doing research at UT is finding a quiet place to work.
A problem I'm running into is not being able to solve all the error messages myself. I'm working with old code, and so its difficult to discern what the previous coder's functions mean or do. To that end, I'm trying to comment my code more to make it more readable, because when working with others, that is the most important thing to do.
A problem I'm running into is not being able to solve all the error messages myself. I'm working with old code, and so its difficult to discern what the previous coder's functions mean or do. To that end, I'm trying to comment my code more to make it more readable, because when working with others, that is the most important thing to do.
Sunday, November 30, 2014
Back to the Basics: HTML/CSS
Update on the swim team website. I thought I had everything figured out. However, once I started coding the site, I quickly realized how out of my depth I was. When Etienne told me to simply code the webpage in HTML instead of displaying an image, I had no clue how to do it. Etienne suggested that I learn HTML before trying to make any website, and I think he's right.
I had thought I understood the general structure/theory of HTML code. For the most part, I was right. I knew that everything was enclosed inside tags, and that text went in <p> tags, and there were other tags as well. But I didn't know enough to make an actual website. This week, I've been working on closing that knowledge gap, and going from knowing the theory of HTML to its application. I've been using Codecademy, and blazing through their <a href=www.codecademy.com>HTML Course</a>. So far, I've learned how to set styles, add text, and create lists. I'm looking forwards to learning about tables and CSS. Hopefully, I'll be able to churn out a working site that uses HTML and not an embedded image.
I had thought I understood the general structure/theory of HTML code. For the most part, I was right. I knew that everything was enclosed inside tags, and that text went in <p> tags, and there were other tags as well. But I didn't know enough to make an actual website. This week, I've been working on closing that knowledge gap, and going from knowing the theory of HTML to its application. I've been using Codecademy, and blazing through their <a href=www.codecademy.com>HTML Course</a>. So far, I've learned how to set styles, add text, and create lists. I'm looking forwards to learning about tables and CSS. Hopefully, I'll be able to churn out a working site that uses HTML and not an embedded image.
Thursday, November 20, 2014
Baby it's Cold Outside
I swim on the School's Swim Team, which means that I have to get up at five am, drive to the YMCA, and practice swimming in their outdoor pool. The problem is that Austin weather has been dipping below freezing for the past week, and practice has been cancelled for three days straight. Over these three days, half the swim team has shown up at the pool due to poor communication. While we swimmers often think that practice should go on, even when its 33 degrees outside, the coaches and captains often disagree. This leads to a lot of confusion, where swimmers have no clue whether or not to go to practice.
I'd like to simply all this with the creation of a website that checks the weather, and if its below 32 degrees, displays text that says there will be NO practice today. If it's above 32 degrees, it will say that there will be practice today. The goal of this is to simplify communication for swimmers, and create an easy way for people to find out whether there will or will not be practice.
To do this, I need to split up the project into three parts. The first is to create two versions of the website. There needs to be one that displays an affirmative message and one that does the opposite. The second is to have a way of displaying alternate versions of websites. If fed a true, then the website shows one version, and if fed a false, does another. The third thing to do is write a program that supplies that true or false message to the website by checking the current weather.
I hope to finish this project within two weeks, and will be asking people in the class for lots of help. Look forward to seeing a website soon!
I'd like to simply all this with the creation of a website that checks the weather, and if its below 32 degrees, displays text that says there will be NO practice today. If it's above 32 degrees, it will say that there will be practice today. The goal of this is to simplify communication for swimmers, and create an easy way for people to find out whether there will or will not be practice.
To do this, I need to split up the project into three parts. The first is to create two versions of the website. There needs to be one that displays an affirmative message and one that does the opposite. The second is to have a way of displaying alternate versions of websites. If fed a true, then the website shows one version, and if fed a false, does another. The third thing to do is write a program that supplies that true or false message to the website by checking the current weather.
I hope to finish this project within two weeks, and will be asking people in the class for lots of help. Look forward to seeing a website soon!
Tuesday, October 14, 2014
Optimizing Code by Not Being Lazy
A lot has happened in the last week. The most academic thing would be creating graphs of R2 as Providers Increases. The idea was to see when our model began to overfit the data and give us diminishing returns. Instead of continuing to give us a better model, at a certain number of providers, adding more providers will not give us a better prediction of death data. This is helpful for the CDC, because they can see how many providers make a good network.
What my professor asked me to do was to compile these graphs for each of the networks. The problem was that the program took days to run. No, I'm not exaggerating. It literally took days to run. Then, one night, while waiting for my program to finish running, I had a flash of inspiration. I could optimize my code. So I did. Originally, I had built models using a variable number of providers for each one of the 133 cities, but I was only using the models for New York.
That one simple change ended up making the code run hundreds of times faster. It took an hour to code and debug though, A whole hour! To be fair though, it saved me at least ten hours in the long run.
Friday, September 12, 2014
Waiting for An Update
Professors, like Internet Explorer, are notoriously slow to respond. I've been waiting for around a week for him to get back to me on whether or not the data I sent him is what he needs. While waiting, I decided to use my class time well, and learn a new language.
Javascript has been something that I've wanted to learn since Zoli showed me it. His effusive praise made it sound like the best language, period. So, over the summer, I completed a brief tutorial through Codecademy. However, I lacked a project to learn the language. I've always felt that knowing a language without having a project was like having a paperweight. Sure, its nice, but its completely useless.
I got my inspiration for the project from Etienne, who had been making Javascript games since last year. I asked him how he got started, and he said Snake. So I started trying that out. However, I quickly grew disenchanted with the idea. When I heard that the GameHost team needed a game, I decided to try making Tic-Tac-Toe. It was perfect. A simple game, easy to code, and mildly interesting.
I started by drawing nine squares on the page. Whenever someone clicked somewhere, the code would check whether or not the click was in a box. If it was, it colored the box and marked it as filled. Then, it would change the fill color, so that the next click would color the box differently.
I ended up with a nice visual representation of a tic-tac-toe game. It doesn't calculate win conditions yet, and I need to use more objects in my code. Here are some ideas for moving forwards--make a class that represents a box, then create functions inside that class. The first function checks whether or not a point is inside the box, another colors it, etc. Then, to get the tic-tac-toe grid, we need a 2D array of square objects.
The only problem is that today, I got an email from my professor today, giving us ideas to work forwards on. Rest in pieces, Tic-Tac-Toe game. I'll get back to you someday.
Javascript has been something that I've wanted to learn since Zoli showed me it. His effusive praise made it sound like the best language, period. So, over the summer, I completed a brief tutorial through Codecademy. However, I lacked a project to learn the language. I've always felt that knowing a language without having a project was like having a paperweight. Sure, its nice, but its completely useless.
I got my inspiration for the project from Etienne, who had been making Javascript games since last year. I asked him how he got started, and he said Snake. So I started trying that out. However, I quickly grew disenchanted with the idea. When I heard that the GameHost team needed a game, I decided to try making Tic-Tac-Toe. It was perfect. A simple game, easy to code, and mildly interesting.
I started by drawing nine squares on the page. Whenever someone clicked somewhere, the code would check whether or not the click was in a box. If it was, it colored the box and marked it as filled. Then, it would change the fill color, so that the next click would color the box differently.
I ended up with a nice visual representation of a tic-tac-toe game. It doesn't calculate win conditions yet, and I need to use more objects in my code. Here are some ideas for moving forwards--make a class that represents a box, then create functions inside that class. The first function checks whether or not a point is inside the box, another colors it, etc. Then, to get the tic-tac-toe grid, we need a 2D array of square objects.
The only problem is that today, I got an email from my professor today, giving us ideas to work forwards on. Rest in pieces, Tic-Tac-Toe game. I'll get back to you someday.
Tuesday, September 2, 2014
Independent Studies
It's a little frightening to start Independent Study. Instead of having assignments spoon fed to me, I have to have one assignment and focus on it throughout the year. For me, this will be difficult. I like to knock out entire assignments at once, to finish coding in sitting. Unfortunately, an Independent Study class does not work that way. I'll need to have a way to stay focused on one assignment, even without guidance and prodding from a teacher. So here's the plan.
My project is an extension of some work I did over the summer with a graduate student, where we mapped death data from flu in the USA, and tried to predict where the flu would strike next using a variety of models. The first was simply picking providers by trying to maximize the R² value between the death data nationally and the model built using regional death data from certain providers. The goal was to then build different models and try to compare them to the R² model.
In this class, I'm planning on continuing to do that same work, using class time to write and finish code. Currently, I've been working on the function that analyzes the different networks and determines their effectiveness based on R² values. It's an interesting project, and one I hope to finish soon.
My project is an extension of some work I did over the summer with a graduate student, where we mapped death data from flu in the USA, and tried to predict where the flu would strike next using a variety of models. The first was simply picking providers by trying to maximize the R² value between the death data nationally and the model built using regional death data from certain providers. The goal was to then build different models and try to compare them to the R² model.
In this class, I'm planning on continuing to do that same work, using class time to write and finish code. Currently, I've been working on the function that analyzes the different networks and determines their effectiveness based on R² values. It's an interesting project, and one I hope to finish soon.
Subscribe to:
Posts (Atom)

