Daily foreign exchange rates (spot rates) can be obtained from the Federal Reserve Bank in St Louis (FRED). The data are the noon buying rates in New York City certified by the Federal Reserve Bank of New York. Consider the exchange rates between the U.S. dollar and the Euro from January 4, 1999 to March 8, 2013. See the file d-exuseu.txt. (a) Compute the daily log return of the exchange rate. (b) Compute the sample mean, standard deviation, skewness, excess kurtosis, minimum, and maximum of the log returns of the exchange rate. (c) Obtain a density plot of the daily long returns of Dollar-Euro exchange rate. (d) Test H0 : µ = 0 versus Ha : µ ̸= 0, where µ denotes the mean of the daily log return of Dollar-Euro exchange rate.
时间: 2024-01-25 09:02:14 浏览: 84
PSO.zip_PSO best solution_The Best Of All_best-so-far_pso global
(a) The daily log return of the exchange rate can be calculated using the following formula:
log return = ln(price[t]) - ln(price[t-1])
where price[t] represents the exchange rate at time t and price[t-1] represents the exchange rate at time t-1.
Using the data in the file d-exuseu.txt, we can calculate the daily log returns as follows (assuming the data is stored in a variable called "exchange_rate"):
```python
import numpy as np
log_returns = np.log(exchange_rate[1:]) - np.log(exchange_rate[:-1])
```
The first element of "exchange_rate" is excluded from the calculation because there is no previous price to compare it to.
(b) The sample mean, standard deviation, skewness, excess kurtosis, minimum, and maximum of the log returns can be calculated using the following code:
```python
mean = np.mean(log_returns)
std_dev = np.std(log_returns)
skewness = stats.skew(log_returns)
kurtosis = stats.kurtosis(log_returns, fisher=False)
minimum = np.min(log_returns)
maximum = np.max(log_returns)
print("Sample mean:", mean)
print("Standard deviation:", std_dev)
print("Skewness:", skewness)
print("Excess kurtosis:", kurtosis - 3) # convert to excess kurtosis
print("Minimum:", minimum)
print("Maximum:", maximum)
```
This code requires the "scipy.stats" module to be imported at the beginning of the script. The output will show the sample mean, standard deviation, skewness, excess kurtosis, minimum, and maximum of the log returns.
(c) To obtain a density plot of the daily log returns, we can use the following code:
```python
import matplotlib.pyplot as plt
plt.hist(log_returns, bins=50, density=True)
plt.xlabel("Daily log return")
plt.ylabel("Density")
plt.show()
```
This code will create a histogram of the log returns with 50 bins and normalize it to create a density plot. The output will show the density plot of the log returns.
(d) To test the hypothesis H0 : µ = 0 versus Ha : µ ̸= 0, where µ denotes the mean of the daily log return of Dollar-Euro exchange rate, we can use a t-test. The null hypothesis states that the mean log return is equal to zero, while the alternative hypothesis states that the mean log return is not equal to zero.
```python
from scipy.stats import ttest_1samp
t_stat, p_value = ttest_1samp(log_returns, 0)
print("t-statistic:", t_stat)
print("p-value:", p_value)
```
This code uses the "ttest_1samp" function from the "scipy.stats" module to calculate the t-statistic and the p-value. The output will show the t-statistic and the p-value of the test. If the p-value is less than the significance level (e.g., 0.05), we can reject the null hypothesis and conclude that the mean log return is significantly different from zero.
阅读全文