代写BEEM062 Main Assignment Part B Brief代做Python编程

BEEM062 Main Assignment Part B Brief

March 28, 2025

Abstract

Your main assignment (80%) must be handed in by Friday 25th April 2025. It consists of two equally weighted parts: part A) A 1,600 word essay; and part B) A technical task-based assignment. This document outlines your tasks for Part B, which on its own contributes 40% to your overall module grade. For Python based tasks, you MUST solve them using Jupyter Notebooks, with each line of code stored. You will submit your assignment as a set of documents with your notebooks stored separately (with the .ipynb extension so that they can be easily verified). You are welcome to store your own code on your own github repository or elsewhere, but the .ipynb files must be submitted. Since you submit one file, the best way to do this is to submit your part A document, and include a link to a repository (you can use your onedrive or any other) that contains all your files in one folder. Please do not submit large data files, and as ever, please pay attention to cyber security good practice (do not submit/share API keys). Note that any code files that are not .ipynb do not need to be submitted (you can use screen shots).

1 Gradient Descent with Python and NumPy (30 marks)

From a Jupyter notebook in Python, extract two time series of your choice from the CryptoCompare API, calling one xt and the other yt.

You do not have to use the CryptoCompare API (for example you can use the Nasdaq Data Link API). Depending on availability, choose your own frequency and time period, making sure that you can analyse both time series by treating them each as a one dimensional array of the same length, and make sure they are reasonably long (more than 100 observations). Use the numpy library to find OLS estimates of α and β and in the following specification, where et is an assumed white noise error:

yt = α + β + xt + et

 Analytically from standard OLS formulae

 By trial and error Machine Learning with a Gradient Descent (GD) Algo-rithm

One challenge you may encounter is obtaining convergence, depending on the underlying data. In words, describe why convergence to a Loss Function minimum may be difficult to obtain in practice, and how this might be overcome.

2 Time Series Forecasting with Regularisation (35 marks)

Create a Python notebook that produces a time series forecast of a financial time series of your choice. Pick one single financial time series that you are interested in (eg the Bitcoin price in Sterling), and conduct your analysis in stages:

1. In the first stage, you must describe why you have chosen the series, and what factors you think affect it. Where relevant, describe any general trends, specific events, and what variables you think may drive it. Distin-guish between variables that you should be able to obtain, versus those you cannot.

2. Extract the relevant time series (you could use the cryptocompare API calls already used, or any other).

3. Conduct analysis. You must reduce a larger model with many variables (more than 10) down to a smaller model by applying L1/L2 Regularisation. Scikit learn has examples of implementing the combination of L1 and L2 called elastic nets. Pay attention to stationarity, and use the Scikit learn implementation that uses cross validation (CV) to pin down the hyper parameters (weights on L1 and L2). Also, for the purposes of CV it is important to split time series appropriately by using Scikit learnís TimeSeriesSplit procedure.

3 Build an Experiment Platform. (35 marks)

In this section you are expected to apply the skills we developed building a smart contract using the sCrypt platform. However, feel free to use any other approach you have learnt on other modules or elsewhere, as long as you achieve the same objective.

Overall, design and implement a platform. that allows a researcher to set up a simple experiment like the Ultimatum Game, playing out the experiment on the blockchain (in the case of sCrypt, it uses the BSV blockchain). Your platform. will play out the experiment on-chain, with the logic enforced by the smart contract.

Choose your game from ONE of the following options:

1. Ultimatum Game

Player A proposes a split of a pot (e.g. 1000 satoshis). Player B either accepts or rejects it. If accepted, both receive as proposed. If rejected, neither gets anything.

2. Dictator Game

Player A decides the split of the pot unilaterally. Player B has no choice but to accept.

3. Trust Game (2-Step Transfer)

Player A decides how much to send to Player B. The amount is tripled. Then Player B decides how much to return to A.

4. Modified Ultimatum Game

Same as Ultimatum, but Player B can only accept/reject if the o§er is above a threshold (e.g., >300 satoshis).

5. One-Way Puzzle Incentive

Post a question or riddle on-chain. The first participant who solves it and unlocks the funds using a contract-defined condition (e.g., a correct answer hash) wins.

3.1 Procedure

Overall, proceed as follows:

1. Write up your overall design in words.

2. Write a smart contract that encodes your experiment logic (with sCrypt, you can then compile and test it locally).

3. Deploy the contract (with sCrypt, you can deploy it to the test or main net using small amounts of satoshis, eg 1000).

4. Build a simple front end (html/css/js) that shows how a participant could interact with the contract.

3.2 Submission

For this task, include screen shots (not the code files) in your submission that show you set up the contract logic, compiled and deployed the contract, and any relevant evidence (eg the txids on test or main net, if using sCrypt). You do not have to submit the actual code files, this part can all be based on screen shots. Note that you must not submit your own private keys used in any of the stages. For the front end part, again, there is no need to submit the actual code files, you can just submit screenshots to show it.



热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图