Today I got a notification from Twitter saying it was my 9 year anniversary. That's a long time and a lot has changed in the last 9 years. Looking back, my 2009 tweets include such things as "Waiting for the bus" and "Can't wait for finals to be over" -- a lot of my old tweets are pretty uneventful. There are a bunch of tweets regarding sporting events like the Olympics in 2016 and Super Bowl games and half-time shows. I've also got tweets that have "expired", i.e. tweets mentioning open job or internship postings with deadlines in the past. All of these old tweets are no longer relevant, are not representative of what I'm currently up to, and are now taking up a lot of space on my timeline.
So I've decided it's time to clean up my Twitter feed. A start to my spring cleaning - online edition. While writing this post I Googled "Deleting old tweets" to see what came up regarding the topic and I came across a post on Digital Minimalism (the author deletes 40,000 old tweets). It was a fitting post, as it covers many of the reasons why I'm cleaning up my Twitter feed. For me, it's important to keep the online version of myself up-to-date and to be deliberate about what I post. (Though on the latter point, Twitter is more than anything a stream of consciousness social media platform so deliberateness doesn't quite apply.) Ultimately, by getting rid of my old tweets I'll be maintaining a fresher Twitter timeline. While on that Google search (deleting old tweets), I also found there are apps you can use to make your old tweets self-destruct after a certain number of hours/days. I'm not going to go into any of those. For this endeavor, I'll be using the Twitter API, Stata, and cURL to delete my old posts. Before I get started on deleting old tweets, this is what my Twitter profile looks like. Notice the 5,493 tweets, this is going to go down by the end of this post.
First things first, I downloaded my Twitter archive to get all of my tweets going back to the very first one - you can do this too by going to this link. Note that I didn't use the API since it can only return the most recent 3,200 tweets, for more information on the API check out Twitter's documentation.
The downloaded archive includes my Twitter export (all tweet activity) in CSV and JSON format. There's also an archive browser interface where I can search through all tweets and browse tweets by year and month (right side of the image below). Mine looks like this:
I imported my CSV file into Stata. Looking at my overall Twitter activity, I confirm that the bulk of my Twitter feed is indeed really old and outdated. About 80% of my tweets are from 2009-2014. I tweeted the most in 2012 and I tweeted the least last year. Here's a graph of my annual Twitter activity:
I made the bar graph using Stata and used Twitter's corresponding RGB colors. If you're interested in how I made it, here's the code for the graph:
graph bar totaltweets, over(year, label(labc("0 132 180"))) /// ylab(, labc("0 132 180")) blabel(total, c("29 202 255")) /// ytitl("Tweets", c("0 132 180")) bar(1, c("0 172 237"))/// tit("Historical Twitter Activity", c("0 132 180") span pos(11)) /// note("Source: My Twitter Archive", c("192 222 237") span) /// graphregion(color(white))
Now that I see what my activity looks like I can start flagging the tweets I want to delete. I'll be looping through the flagged tweets to delete them using the Twitter API. If you're not familiar with using Stata and the Twitter API together I suggest you first check out these two very informative blog posts by William Matsuoka: Stata and the Twitter API Part I and Part II, as I pretty much mirror his process.
First, I create a variable called delete which is equal to 1 if I want to delete that particular tweet (note: data is unique by tweet_id) Second, I decide what tweets I want to delete. My criteria is something like this:
In between the second and the third step, I also created another variable called always_keep that makes sure I keep Tweets with certain text in them like "Stata", "StataTip", "blogupdate", etc. This step is also not mentioned in the code below. As a short example, here's what my code looks for deleting tweets pre-2015: clear all set more off version 15.1 /*Import the data*/ local twitter_dir "/Twitter API/Tweets/" import delimited using "`twitter_dir'/twitter_archive/tweets.csv", clear /// stringcols(1 2 3) bindquotes(strict) replace timestamp = subinstr(timestamp, "+0000","",.) gen date = dofc(clock(timestamp,"YMDhms")) /*Create variable to mark tweets I want to get rid of*/ gen delete = 1 if year(date)<2015 levelsof tweet_id if delete ==1, local(mlist) clean /*See http://www.wmatsuoka.com/stata/stata-and-the-twitter-api-part-ii for what's included in this following .do file */ qui do "`twitter_dir'/0-TWITTER-PROGRAMS.do" * For Timestamp (oauth_timestamp) in GMT /*Note: Will uses a plugin for this portion. I shelled out date program on my Mac */ tempfile f1 ! date +%s > `f1' mata: st_local("ts", cat("`f1'")) /*Pass the timestamp and tweet_ids as arguments in the following loop*/ foreach tweetid in `mlist'{ do 99_Delete_Tweets.do "`tweetid'" "`ts'" }
The deletion of those pre-2015 tweets took my computer about 90 minutes to complete -- a rate of 40 tweets deleted per minute. The 99_Delete_Tweets.do file referenced above follows a very similar format to the one Will outlines in his blog post, except that instead of writing a tweet, we're removing it. For more information on deleting statuses see: Twitter's API Documentation. That do file looks a little something like this (note: I removed my personal API access information)
*99_Delete_Tweets.do: ***************************************************************************** * Twitter API Access Keys ***************************************************************************** * Consumer Key (oauth_consumer_key) local cons_key = "" * Consumer Secret local cons_sec = "" * Access Token local accs_tok = "" * Access Secret local accs_sec = "" * Signing Key local s_key = "`cons_sec'&`accs_sec'" * Nonce (oauth_nonce) mata: st_local("nonce", gen_nonce_32()) * Signature method (oauth_signature_method) local sig_meth = "HMAC-SHA1" ***************************************************************************** *Delete tweets ***************************************************************************** local del_id = "`1'" local ts = "`2'" * BASE URL local b_url = "https://api.twitter.com/1.1/statuses/destroy/`del_id'.json" * Signature mata: st_local("pe", percentencode("`b_url'")) local sig = "oauth_consumer_key=`cons_key'&oauth_nonce=`nonce'&oauth_signature_method=HMAC-SHA1&oauth_timestamp=`ts'&oauth_token=`accs_tok'&oauth_version=1.0" mata: st_local("pe_sig", percentencode("`sig'")) local sig_base = "POST&`pe'&" mata: x=sha1toascii(hmac_sha1("`s_key'", "`sig_base'`pe_sig'")) mata: st_local("sig", percentencode(encode64(x))) !curl -k --request "POST" "`b_url'" --header "Authorization: OAuth oauth_consumer_key="`cons_key'", oauth_nonce="`nonce'", oauth_signature="`sig'", oauth_signature_method="HMAC-SHA1", oauth_timestamp="`ts'", oauth_token="`accs_tok'", oauth_version="1.0"" --verbose
Having perused the remaining Tweets in my archive, I ended up deciding to discard tweets older than 90 days with the exception of those that I flagged as always_keep.
After all this, my Twitter timeline now consists of 210* tweets. So I got rid of 96% of my tweets. I imported my current Twitter timeline into Stata using twitter2stata, twitter2stata tweets _belenchavez, clear
and created a visualization of my most commonly tweeted words using a word cloud. My new Twitter timeline is now up-to-date and fresher than before.
How many Stata's can you count?
Happy Anniversary, Twitter!
*Note: For as long as I can recall, I've had a discrepancy of 17 tweets on my timeline. So if you were to import my Twitter feed you'd get 193 tweets instead of the 210 that it shows me having on my Twitter profile. When users bulk delete their data there are 17 left over. It happens to a lot of people. The only recommendation I could find is to contact support.twitter.com.
0 Comments
Hello and Happy New Year, blog readers! I hope everyone's having a great 2018 so far. This month will mark the third year that I've had a Fitbit and you know what that means, right? I now have 3 years-worth of Fitbit data!
2017 was the first year where I met my step goal of 10,000 steps every single day. In fact, it's now been a solid 380 days since I last missed my goal. I intend on keeping this streak up in 2018. It should be noted that I participated in a Workweek Challenge with my Fitbit friends pretty much every week in 2017 which helped keep me accountable. Using Stata 15's newest graph transparency feature to plot my steps over the last 3 years you can see 2017 steps are consistently above 10k, though they're not as high as 2016's steps (as you'll recall, I trained for and ran 2 half marathons that year).
My steps in 2017 were fairly consistent with a range of 11k-14k average daily steps on a monthly basis. The chart below shows the average daily steps I took by month for each year that I've had my Fitbit:
Note that I don't have a full calendar year's worth of data for 2015 as my Fitbit arrived mid-January and it was stolen for a few days in October that year. Keeping that in mind here are the annual stats for each year that I've had my Fitbit:
Total steps taken: 2015: 3,695,222 2016: 5,257,825 2017: 4,747,316 Average steps taken per day: 2015: 10,528 2016: 14,366 2017: 13,006 My daily step maximum per year: 2015: 20,825 which happened on Sept. 6 2016: 42,431 which happened on June 5 2017: 23,503 which happened on Jan. 16 Number of days I missed my 10k daily step goal: 2015: 125 2016: 16 2017: 0 Using Google Charts, I've plotted the data below on a Calendar chart:
In the first 4 days of 2018 I've averaged 13,290 steps per day. It's also worth noting that I'm currently winning my Workweek Hustle as you can see in the small snippet below.
Cheers to 2018 and I hope this year's step counts are even better than last year's! Hello, again blog readers! It's been about 60 days since my last post and it's about time I did another Fitbit step comparison - the last one I did was in April. Yikes. Before I jump into that, let me take a minute to answer some questions you might have: What's new? Well, since I last blogged, a few things have happened. Like I went to Chicago to present at the Stata Conference and that was pretty awesome. I've never presented at a professional conference and our work was very well received. I got to visit San Diego a few weeks ago and that was very nice. We got to see old friends and hang out with family. I loved going back home. The beach was perfect, the weather was just right and the Mexican food was delicious. Besides that, work's good and time has gone by pretty fast. I can't believe I've been at my new job for 3 months. Seems like soon I won't be able to claim claim "new girl" status anymore. In Seattle, we've been exploring plenty of dog friendly places and we try to discover new places every weekend. Most recently, my blog was featured on Stata News! It felt so awesome seeing my name (with an accent and everything) and my blog post mentioned there. Thank you, Stata! For those of you who left a comment in that blog post, I will respond to it shortly. Why haven't I kept up with my blog? Not sure I have a good answer for that one - the easiest explanation is lack of free time. Any free time I do have I spend it with my fiancé and my dog, running, doing yoga/barre, or exploring the city. I will strive for more blog posts. Really. I like blogging, I like writing and I like exploring my data and sharing it with you all. You presented it and we you blogged about it, so where's gcharts? Yes, I presented beta version at the conference. Will and I are working on it and hope to have it ready for public release in the next few weeks. Stay tuned. If you have any additional questions, feel free to ask away. Okay, now moving onto the blog post. So what has my steps data looked like from May to now? This is especially interesting as I did another half marathon in June and moved soon after. My schedule, work, and day to day activities have changed a lot since moving from San Diego. Below you'll see my average daily steps for the last 6 months compared to my friend Will's average daily steps. Interestingly, our steps show a similar trend leading up to and right after May 2016. May was my last full month in San Diego, so my hypothesis is that the decrease in joint work break walks and half-marathon training has something to do with that decrease for the both of us. Keeping with the tradition of posting monthly graphs, I've graphed our daily step activity for May through August below. As I mentioned earlier, Will and I ran the Rock'n'Roll Half on June 5th in San Diego which explains that spike. That date also happens to coincide with the personal record, in terms of daily steps (42,431 steps) and half-marathon finish time, of your's truly. 1:58:32. I know! Thank you. Not bad for my second half. Although, I must say that course was a lot easier than my first one. I also moved to Seattle in June and unfortunately for Will, the asphalt around Balboa Park was pretty bad so and he tripped and scraped his knees and palms around mile 8 or 9 of the course (he needed stitches) and so those injuries are the reason for his low step count that month. July is interesting in that there are a few days with very similar steps. A group of us, including Will, had Fitbit challenges (Work Week Hustle and Weekend Warrior Challenges - these are challenges through the app where you compete with friends in total steps during weekdays and weekends. More on that in a post to follow) and so I'm thinking that's why there are a lot of days with similar step activity, not sure though. I'll have to look into that and get back to you. August is funny. I didn't meet goal on a Saturday during my vacation! I tried, people, but Orange County is not that close to San Diego (traffic took a while) and lounging on the beach doesn't allow for many steps. Oh well, at least I had fun in the sun, and isn't that the point? Overall, August was a pretty good month for steps. Below, I've graphed our average hourly step count during weekdays (I also excluded holidays). I wanted to see what our graphs looked like together before and after I moved and I'm using Will's hourly step shape as a control. This data represents 60 days before and 60 days after moving. Interestingly, our hourly weekday graphs are very similar when I was in SD (March - May) and are not so similar when I moved (June-August). The similarity of our hourly graphs is due to the similarity in work schedules, meetings, lunch breaks, etc. Both of our hourly shapes changed after I moved. For me, the reason is that I walk more now that I don't drive to work and I'm allowed to bring my dog to the office so there's that difference, too. I take a couple of dog walks (about 2 a day, though, so not that many) 2-3 times a week. For Will, I'm not sure what's changed in his day-to-day, so you'll have to call and ask him. My speculation is now that our other friends/coworkers also have Fitbits/Garmin trackers maybe they take walks at different times. I'll find out. Now that I've updated you on the last few months of Fitbit activity, I thought it appropriate to look at the last year just to see what that all looks like. That's July 2015 - August 2016 average daily steps for the both of us. Cool, right? While, I only beat Will's average daily step count 4 out of 13 months, you can see how positive of an effect training for both half marathons had on our step activity. I'm tempted to sign up for another one soon, but it should definitely be held someplace warm. It's already cooling down over here and running outside is hard for this Southern Californian. Well, there you have it. I hope you've enjoyed this latest blog post. I'll leave you with this cool picture of my Rock'N'Roll race course graph as seen through my Fitbit app. I loved saying farewell to my favorite city by running through some of my favorite parts of it. In case you're wondering, Mission Bay is my absolute favorite running spot in San Diego. And just so you know what I'm talking about, here's a picture I took of Mission Bay on my last sunset run there. I know this isn't Instagram, so this should go without saying, but no filter was used to touch this picture up. Gorgeous, right? Until next time, blog readers.
A year ago today I posted my first blog post on my data blog: Stata+Fitbit. Here's a quick update regarding that post and a comparison with this year's data: Below is a replication of last year's look on YTD steps with 2016 step activity. Much better than last year's graph referenced in the post above, am I right? Only 7 blue diamonds this year, which means I only missed goal 7 out of 193 days so far. Yay! I've met my step goal 96% of the time for 2016. I've combined 2015 and 2016 steps from January-June in the graph below. This year's steps are represented by light blue circles and last year's steps are in blue diamond shapes. You can see 2016 is consistently better than 2015- you can barely see the horizontal red line at 10,000 steps which represents my daily goal. Looks like I missed goal (below that 10k mark) quite a lot last year and only a few times this year. Like I've been saying 2016 me has improved a lot over 2015 me :) Now back to the anniversary of the blog: Since starting my blog I've made 34 posts, averaging about 3 posts per month - although it's really tapered off in the last 5 months. I started off with 3-4 posts per month but that number went down in March of this year to 1-2 posts/month. During that time I put blogging on the back burner as I was balancing a full-time job, a part-time teaching position, half-marathon training, Stata gchart writing, among other time-consuming activities like moving from San Diego to Seattle. Sorry, blog and blog readers :( The graph below illustrates the number of monthly posts I've made since last July: I had really hoped to keep a steady stream of blog posts and thought that I'd be making 3-4 posts a month -- that was the plan, at least. In the graph below, the solid blue line below shows the actual blog posts I made throughout the year and the dashed light blue line shows what I was going for (a target, so to speak). With the 1 post per month in the last few months you can see I really "missed the mark", but now that I've settled into Seattle I'm planning on blogging a lot more. Hoping that I'll continue the 3-4 blog posts per month. Coming soon are some Fitbit update posts (I can't believe I haven't made any May-June Fitbit posts, especially since it's late July now. Whoops!) and non-data related posts. Next week, I'll be attending the Stata Conference in Chicago and I'll blog about my experience as a presenter this year.
Anyway, happy anniversary blog and blog readers! I'm glad that I keep seeing site visitors through Google Analytics. Thanks for reading my blog and for being my audience :)
Hello, blog readers! It's been a while since I last blogged about anything besides Fitbit, and even then it's been sparse. I apologize, but if you've read my good friend Will's latest Stata blog post, you'll see it's for good reason. I recently moved to Seattle and life got a little hectic the last couple of months with moving and job hunting, so blogging got put on the back burner. More updates on my move in a later post!
In that same blog post I mentioned above, Will briefly mentions our joint presentation at the Stata User Group Meeting coming up in July. I thought this would be great opportunity for me to follow up on that topic here and and get into the details of what we've been working on. Our program is called gcharts and it has required learning a lot about Stata graphics like studying all the different options for all kinds of graph types. Like his post says, we've studied "Stata graphics enough to be labeled as completely crazy, but at least it has resulted in a marvelous presentation". Well put, Will. Anyway, we've been able to apply what we've learned in such a way that Stata users will now be able to render web-based graphics through Google Charts. The abstract we submitted is below: Stata graphics are professional, visually pleasing, and easy to format, but lack the interactive experience or transparency options requested by many users. In this presentation, we introduce a new command, gchart: it is a fully functional wrapper for the Google Chart API, which is written almost entirely like the twoway command, and allows users to write quality JavaScript data visualizations using familiar Stata graphing syntax. While other Google Chart-based programs already exist, gchart aims to be the most comprehensive library to date. With gchart, Stata users can present interactive web-based graphics without exporting their data to secondary software packages or learning JavaScript and HTML. The gchart library contains most Stata graph types such as bar, pie, and line as well as new graphs offered by Google Charts such as treemaps, timelines, Sankey diagrams, and more! The command contains an option to create interactive tables directly from datasets and even has preset settings to make resulting Google Charts feel more Statalike. Once the visualizations are rendered, web visitors and blog readers will be happy to play with the resulting graphics. So, why Google Charts? Well, Will and I both like the functionality of Google Charts. They offer a suite of tables, traditional graphs, and other types of data visualizations. It doesn't require the installation of additional software and using it is pretty straightforward. Why Google Charts + Stata? Because both of us already do everything on Stata (Stata is the best) and we wanted web-based graphics that we could automate. Once you do something over and over again, you might as well make a program for it (Thanks for that important lesson, Will) and this project started budding over that idea. Combining Google Charts API with Stata isn't new, but like our abstract says, we made sure to make the program resemble Stata's twoway so that Stata users can quickly and easily start making web-based graphics without needing to pick up JavaScript or HTML. Let's see an example: If you want to make a line graph in Stata you'd type something like the following. Note we're using S&P500 data and we're making some missing data for our "high" variable: sysuse sp500, clear replace high = . in 100/120 * Interpolate missings - default in Stata line open high, cmissing(yes) * Same as writing: line open high
Gives us the following graph:
If you wanted to make a line graph using that same dataset in Google Charts API you'd have to do write out the data (note I truncated the data below to make it easier to read) and add any additional options as follows:
Or we could do it as follows:
*In gcharts - interpolating missings is not the default gchart line open high, cmissing(yes)
And we'd get the same resulting HTML as above and a graph that looks like:
Note the cmissing() option. Did you know that existed? Did you know that cmissing(yes) was the default in Stata? I didn't know that before embarking on this project. I also didn't know about the multitude of options there are out there in twoway. Some more options that we learned about were regarding axis suboptions, like the ones pictured below:
What would our graph look like if we typed cmissing(no)? Stata would not interpolate the missing values and we'd see a gap in our graph - see graph below. By default, Google Charts API does not interpolate nulls. We also studied a whole lot about all the details and options of Google Charts API. More on that posts to come.
As you can see we really tried making it as easy as placing gchart in front of what you'd type in your twoway command. Why? Because we're here to simplify your life and we like to keep things as straightforward as possible.
So something like: scatter high low would become: gchart scatter high low Hope you've enjoyed the small preview of what's to come. I'll be posting some more examples along with our code along the way. I'll also be going into all kinds of options and more complicated examples. Stay tuned! Well it's a bit late for the April Fitbit update, but better late than never, right? :) Last month my friend Will ran his first half marathon - the La Jolla Half Marathon. Congrats, Will! He had an awesome month. He came in with an average of 16,869 daily steps while my average daily step count was 14,352 for April. His total steps for April were 506,042 while mine came in at 430,568. I only beat Will's step count 7 out of 30 days, but at least that's an improvement over March! On Will's race day he got a total of 30,538 which coincides with his highest step count day for the month. I wanted to throw this in here for fun because its got a week's worth of hourly steps for the both of us. You can see our steps are very correlated with each other - with the exception of his race day and a couple of days where I was super motivated to run. Luckily, I've had my Fitbit for over a year now and I can do year-over-year comparisons which I think are really fun and informative. Last year's April shows me having a total of 256,818 monthly steps with an average daily step count of 8,561. Not bad, but not as great as this year's April! My minimum last month came in at 10,011 which means I didn't miss my step goal once. It's quite a different story for last year. Check out my improvement below: Now that I have some historical data for the both of us I can make cool plots like the one below which shows that Will and I have been picking up our step counts over the last few months. Will's made bigger improvements, but I really like our 6 month trend. Below is my 12 month historical graph. Will didn't get his Fitbit until July, so I left him out of this one. It's very clear that once July 2015 came (coinciding with Will's Fitbit purchase) I averaged higher daily steps than April-June 2015. What a huge improvement in steps, am I right? Stay tuned for May's update next month. Hoping to post that later this week!
Well, I did it. I completed my first half marathon on March 13 and it was so much fun! I look forward to signing up for another half marathon as I found that training for a half marathon definitely increased my motivation for running and exceeding my step goals. I'll keep you posted on what race and when, but for now here's my step count comparison for March. Thanks to last year's data on my step count I can do an YoY comparison. Check out my improvements:
Now onto the comparison with Will. Clearly Will beat my step count most days. In fact, I only beat him 5 days out of 31. You can tell that after the half marathon my step count was well below Will's step count. To be fair, he has a half marathon coming up this month and he's been training for that. Like I said, race training means more steps. Will's March 2016 average daily step count: 14,149 and his total March 2016 steps was 438,630 (about 10% more steps than me).
Seeing as both of us have been training for half-marathons and seem to be more competitive with our step counts, I've graphed our average daily steps for the last 6 months. There's clearly a positive trend and both of us are improving our step counts over time. Hope this trend keeps up :)
Recently, I assigned a GIS problem set to my students and had them geocode addresses to obtain latitude and longitude coordinates using mqgeocode in Stata. The reason I had them use mqgeocode and not geocode3 is because the latter is no longer available through ssc. Does anybody know why? Somebody please tell me. What's the difference between the two? One difference between the two is that mqgeocode uses MapQuest API and geocode3 uses Google Geocoding API.
Anyway, after my students downloaded mqgeocode, I received several emails from students letting me know that they could not obtain coordinates no matter what format the addresses were in. See below:
What? No coords? Why not? With the help of the nice people over at www.wmatsuoka.com we dug a little deeper and saw that the API key in that program had probably hit its limit which is why it wasn't returning any coordinates.
A quick fix for that is to replace the two lines in that ado file with your personal API key. How do you get a MapQuest API key? Just sign up for one here. It's pretty quick and fairly easy. Then look for the lines "local osm_url1 =" and put in your own API key. I put in my API key in a local called `apikey' which was passed on to the following lines in that program. The following two lines correspond to lines 47 and 141 of the mqgeocode.ado file, respectively: local osm_url1 = "http://open.mapquestapi.com/geocoding/v1/reverse?key=`apikey'&location=" local osm_url1 = "http://open.mapquestapi.com/geocoding/v1/address?key=`apikey'&location=" I renamed that ado file and program as mqgeo2 and quickly got to geocoding:
And voilà! We now have latitude and longitude coordinates for our address which happens to be the California State Capitol building.
Ta da! This is what (old) MapQuest looks like (I miss Google already) Hello! It's been too long. I'm sorry for the lack of content. I'll make up for it soon, I promise. Here's the Fitbit step comparison for February with Will. Unfortunately for me I didn't beat Will last month, but here's to hoping March changes that! My February daily step average was 12,169 with a total of 352,914 monthly steps. Will's February daily step average was 14,370 with a total of 416,748 monthly steps. We are both training for half marathons, so we ran about 9 or 10 miles on those two days with spikes. Yes! We both got above 30,000 steps on the same day. Will's new personal record is 30,912 while mine is a tiny bit higher at 31,975. Sorry, not sorry, Will. I missed goal 3 times last month. I was sick in the beginning of the month with an annoying cough due to running during a rainy day with crazy winds. That cough kept me from training for a good 2 weeks. Excuses, I know, but hey! it's true. Now that I've had my Fitbit for a little over a year, I can make annual comparisons. My February 2015 daily step average was: 10,471 with a monthly total of 293,196. In terms of totals, that's about 17% lower than this year (taking the extra day into account). Talk about healthier habits thanks to half-marathon training-- maybe I should keep this up and actually turn into a runner. Last year I missed goal 11 times and interestingly for both years I didn't meet goal on February 6th. This year it was due to being bedridden with a cold and last year it was due to commuting from San Diego to Glendale. I thought it was interesting how my total daily steps are almost exact. My half marathon is in just a few days. That should be a nice spike on next month's update. Wish me luck!
I am proud to say that my half-marathon training has increased my step count. January 2016 has been my best month yet. Totally patting myself on the back. Below I've graphed my average daily step count and my total monthly step count and comparing it to Will's for the last 6 months. Recall that I had my Fitbit stolen in October which is why there's a dip in October 2015. My average daily steps in January: 13,608 versus Will's 12,966. My total monthly steps in January: 421,858 versus Will's 401,965. I had a 14.5% increase in activity from December to January. While Will had a minuscule drop in step activity (about -0.4% change). Below is what the daily step counts looked like. The spike on the 17th is my personal record for most daily steps. It also beats Will's daily record of 25,370 steps. I got 27,026 steps that day. Note that in 2015, my daily step record was 20,825. In January 2016 I managed to get above 20,000 steps 5 times. (I only got above 20,000 steps 3 times in 2015). Hooray for running and training! In the last couple of weeks I've slowed down on my training due to a bug I caught, but I'll be running again soon. Stay tuned for February's update next month :)
|
AuthorMy name is Belen, I like to play with data using Stata during work hours and in my free time. I like blogging about my Fitbit, Stata, and random musings. Archives
March 2018
Categories
All
|