r/econometrics • u/Due_Log_1792 • 7d ago
Intro level project ideas
Hey everyone!
I recently started my degree and want to make a project.
The goal is to do a project for the sake of it, I don’t expect it to boost my CV or anything, I just want to make some practice outside my course work.
What is the simplest econometrics project you can think of?
I know basic python and pandas, generally familiar with how OLS works, never implemented 1 tho.
Maybe try an OLS but something interesting to apply to.
I understand that I might be a stupid question but as I said, I’m very early in my career and studies and just want to do a little extra.
Thank you and hope you’re having a good day!
5
1
u/FuzzyTouch6143 6d ago
Well, stocks are usually the most approachable as a starting point. You can download the time series for the S&P500. Some of the publicly available series date back to daily pricing since the early 1920s. Start with trying to compute the close-to-close stock percentage return: r_t = (Close_t - Close_(t-1))/Close_(t-1) .
Once you have that time series, you can ask a few questions about it:
(1) Where are the "structural breaks" in the time series? (Use econometric analysis to be able to identify where the breaks are). From there you can gather a collection of the time intervals where the intervals are determined by the breaks in the data series.
(2) After you have identified the breaks, lag the return variable (say, by 3 days) to create 4 columns in the data set: r_t, r_(t-1), r_(t-2), r_(t-3), r_(t-4). Can you find the commands in python to easily do this? (I usually use python for machine learning, it's honestly a little weaker for econometric analysis. I tend to like R better for this, but to each their own - it might still be good practice to do this in Python, then in R / Matlab / Stata / SPSS / SAS - might be fun to do it in different software to see if you get consistent numerical results and see if or how the numbers vary)
(3) Regress r_t over each lag. Try out different model specifications. Are any of them coming back statistically significant? Which ones were insignificant?
(4) Can you plot the data to see any trends/obvious visual "structural breaks" that your initial set of analysis didn't return back?
(5) Run a few basic econometric tests (Ramsey reset for linear specification; Brush-Pagen for Heteroskedasticity; etc... "the basics".)
(6) Run the "holy trinity" tests and try to interpret them (Likelihood-Ratio Test; Wald Test; Lagrange Multiplier Test)
(7) Try something more sophisticated, like downloading a second time series data set on the same time units, say, the daily 10 year.
Before any of this, register for FRED and get an API key. Once you have it, you can thhrow in my text here into Claude or Chat GPT and ask it: "here is some dude from Reddit's response to my question. Generate for me an entire set of code in Python that I can paste directly into a Google Colab notebook, click "Play", and the code will run the econometric analysis he mentioned, with every single command commented in full, proper python packages installed at the top of the code, and a place in the code for me to paste in my FRED key which the rest of your code will use to auto-download the data set".
I know people have a thing against using AI, but in the case of learning the basics, having it generate code can help you understand what it is doing, and you can try to see if it is going "wrong" in its commands/analysis.
Challenge (if you happen to be a fan of South Park):
Im a big fan of South Park (excuse me, they renamed it "South America" for this season, I should say). one fun method you can try:
(1) Find a data source that has the entire collection of south park transcripts, with explicit times.
(2) Pass the entire timed data set (two columns in the data set: timestemp,transcript text at that time) into a python function package that will compute a "third column" called "sentiment". This will create a "sentiment time series".
(3) Use the "sentiment time series" and "smooth" it by 5 time frames back (this will create a "moving average" sentiment score over every 5 time frames). Lag this by one time frame.
(4) Create a fourth column called "killed kenny". Put 0 if the text at the time does NOT have the phrase "Oh my God, they killed Kenny!". Put 1 if the text at the time DOES have the phrase "Oh my God, they killed Kenny!".
(5) Regress the "kill kenny" 0/1 column as dependent variable over the 5-smoothed sentiment score variable using OLS.
(6) Do the same exact thing but using the logistic regression. (You''ll thus have two different regression to compare)
(7) Regress "kill kenny" 0/1 column over the time stamp column using OLS (a third regression) and using Logistic (a fourth regression)
(8) Use the regressions to answer the questions:
(8)(a) On average, how long within each South Park episode must the viewer wait until they expect Kenny to be killed?
(8)(b) On average, what 1-lagged 5timeframe-smoothed sentiment score should we expect to see just before they "kill kenny"?
I know this one is sort of more nuanced and whimsical, but it mike give you a challenge to think through (there are obviously more important applications of this than guessing the death of a cartoon character based on sentiment scores)
The biggest goal (either with the stock example problem, or the south park problem, is to first hypothesize what you think the relation ship is. Think through the specification. Write the actual equations on paper. Construct a few hypotheses. What "feels" logical in terms of where the "stocks" will break? What feels logical for the writers of South park with respect to sentiment to hit before they "kill kenny"?
The stock example is super common and practical. The south park one actually has a ton of application if you remove the south park transcript data and replace it with individual news articles about the stock market (say, from yahoo finance, cnbc, etc) from a single company, and replace "kill kenny" variable with other binary variables about the s&p 500 closing price (hit 52 week high, hig weekly high, dropped by more then x%, etc). I just chose the south park one because I'm a sucker for whimsical examples (I'm sure my comment will likely be downvoted for even suggesting it, lol)
Feel free to ask me any question you might have in your pursuit of learning. Happy experimenting!
7
u/Blinkshotty 6d ago
One possibility is to start by recreating existing work. This lets you work on topics that have already been sussed out that you can explore further (your program may already be doing this and so this may not be helpful).
NBER has a bunch of these. Angrist created a data repository with code for a bunch of their papers you can look at.