ECA 5307 Python Programming for Economists Midterm ExamPython

Java Python ECA 5307 Python Programming for Economists

Midterm Exam

1. (2 marks) Find the index of “c” in cars from the following text.

text = "Don't park your car next to the carousel with cars."

2. (2 marks) You have given two Python sets as follows.

set1 = {1,3,5,7,9}

set2 = {1,2,4,6,9}

(a) (1 mark) Find the intersection of two sets.

(b) (1 mark) Remove those elements from the first set.

3. (2 marks) You have given a Python list.

list1 = [7,5,3,3,9,6,7]

(a) (1 mark) Write a program to check whether value 7 is in the list.

(b) (1 mark) If it is present, replace the first occurrence with 99.

4. (2 marks) Create an array of odd rows and even columns from Q4 below.

import numpy as np

Q4 = np.reshape(np.arange(0,90,3),(5,-1))

5. You have given a 2-D array Q5 as follows.

import numpy as np

np.random.seed(1204)

Q5 = np.random.randint(1,20,size=(4,5))

(a) (1 mark) Print max from axis 0.

(b) (1 mark) Print mean from axis 1.

6. (2 marks) With Bob’s high school reunion fast approaching, he decides to get in shape and loses some weight. He records his weight every day for five weeks starting on a Monday.

import numpy as np

np.random.seed(1204)

dailywts = 100 + np.random.randn(35)*2

Given these daily weights (dailywts), build an array with his average weight per midweek.

Note that a midweek includes Tuesday, Wednesday, and Thursday.

Hint: dailywts[0] is his weight on Monday, dailywts[1] is his weight on Tuesday, and so on.

7. Many regression models assume homoskedasticity (i.e., constant variance of the error term), especially when calculating standard errors. So in the presence of heteroskedasticity, stan-dard errors will be incorrect. Heteroskedasticity-consistent (HC) standard errors — also called “heteroskedasticity-robust,” or sometimes just “robust” standard errors — are calcu-lated without assuming such homoskedasticity.

Specifically, the HC estimator takes the form. as follows.

This formula is also known as the sandwich form, i.e.,

where

In this question, you will calculate the robust standard errors by using some functions in np.linalg. The data generating process is as follows.

ECA 5307 Python Programming for Economists Midterm ExamPython

import numpy as np

np.random.seed(1024)

n = 400

w = np.random.randn(n,1)

e = np.random.randn(n,1)

y = 3 + 5*w + e

(a) (2 marks) Calculate the OLS estimates by using np.linalg.lstsq(X,y), where X is the independent variable and y is the dependent variable.

Hint: First, you need to create a column vector const which is n × 1, and all elements of const are 1. Second, create the independent variable X by combining the const and w horizontally. Last, np.linalg.lstsq(X,y) returns a tuple in which the first element is what you need.

(b) (2 marks) Calculate the residuals.

Hint: The residuals is equal to y − Xβˆ, where βˆ is the OLS estimates from the previous question. Also, note that the multiplication (i.e., Xβˆ) is defined as linear algebra and can be done by using the operator @.

(c) (2 marks) Calculate the square of residuals.

(d) (2 marks) Create a matrix where the diagonal is the the square of residuals and the rest is zero, i.e.,

where ˆui is the residual for i = 1, 2, . . . , 400.

Hint: First, use np.ravel() or np.squeeze(), to convert the 2-dimensional squared residuals from the previous question to an 1-dimensional array. Second, use np.diag() to create the matrix.

If you fail to create U, don’t worry. Please use U = 0.986*np.eye(n) for the following questions.

(e) (2 marks) Calculate the Ham,

Ham = XT UX,

where X> is the transpose of X.

Hint: Transpose can be done by .T or np.transpose(). Also, the multiplication (i.e., XT × U × X) is defined as linear algebra and can be done by using the operator @.

(f) (2 marks) Calculate the Bread,

Bread = (XT X) −1.

Hint: Use np.linalg.inv() to calculate the inverse. Also, the multiplication (i.e., XT × X) is defined as linear algebra and can be done by using the operator @.

(g) (2 marks) Calculate the robust var-covariance matrix,

Hint: Note that the multiplication (i.e., Bread × Ham × Bread) is defined as linear algebra and can be done by using the operator @.

(h) (2 marks) Calculate the robust standard errors.

Hint: Apply np.sqrt(np.diag()) to vcov.

(i) (2 marks) Please use the following code to verify your answer

import statsmodels.api as sm

mod = sm.OLS(y,X)

res = mod.fit(cov_type= 'HC1')

print(res         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值