Statistica Applicata - Topics on Applied Statistics with computer applications
Supporto al corso e alla didattica telematica, by T. Gastaldi
#Sapienzanonsiferma #Sapienzadoesnotstop
tommaso.gastaldi@gmail.com
GRUPPO WHATSAPP:
https://chat.whatsapp.com/EGh63XPk4T1A7sQ2YRT3KZ
______________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e
venerdi 12-13/2020)
1-
Test video: intro e alcune analogie tra VB.NET e C# (01_Intro_C_VB_analogie.mkv)
https://drive.google.com/open?id=1mP8iUGIfr52c0v2dfR43EmvABgiTh_pW
2-
Test video: alcune differenze tra VB.NET e C# (02_VB_C_Differenze.mkv)
https://drive.google.com/open?id=15HDthxwiVlHNXqaF51lMqcmuGTzVPpeB
3-
Video: eventi in C# (03_EventiC.mkv)
https://drive.google.com/open?id=1Ebk3j6Y4rM2C5LIzAowV_OXrVREiY47o
4-
Video:
eventi in VB.NET e differenze rispetto a C#
(04_DifferenzaGestioneEventi.mkv)
https://drive.google.com/open?id=1Q-xgqevlI2PuCyeh41N7648lrCFGSKBu
5-
Video: inserimento di event handlers multipli per lo stesso controllo in VB.NET
/ C# (05_InserireEventHandlerMultipli.mkv)
https://drive.google.com/open?id=1LfDcZeBV85howzZ3jsByKANrxg6QKVlP
6-
Video: gestire diversi controlli con un un unico event handler
(06_GestioneCentralizzataDiControlliMultipli.mkv)
https://drive.google.com/open?id=1Mr5EqCi4WNCmnRruQeJymnlKZ-CFG0qO
7-
Video: Introduzione alle dichiarazioni e alle istruzioni di assegnazione
(07_Dichiarazione_Assegnazione.mkv)
https://drive.google.com/open?id=1ii7ENkLG4R7RpVcNodYLgr3pPC8LBmkR
8- Video: Tipi di dati principali. Differenza tra Value type and Reference type.
Classi e Strutture
(08_DataTypesReferenceAndValue.mkv)
https://drive.google.com/open?id=1ABL_o0BuvWaO5koJNWVBjC5_6P8s7AQE
9- Video: Tipi di dati principali, classi e strutture, versione C#, altre
analogie e differenze, aggiungere oggetti al progetto (09_DataTypesCVersion.mkv)
https://drive.google.com/open?id=1nVmOV68IwbLFB3fmPeRZXH4eaqgs-C86
Ricerche per il blog:
6) Esaminare le differenze e analogie sia sintattiche che strutturali nella gestione degli eventi in C# e VB.NET [ Alcune Differenze tra C# e VB.NET ]
7) Elencare i principali tipi di dati elementari disponibili nei linguaggi C# e VB.NET
8) Illustrare al meglio la differenza tra value type e reference type
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
2) Creare una applicazione winform a piacere in VB.NET dove si aggiungono alcuni
controlli al form iniziale
e vengono gestiti alcuni eventi a piacere di tali controlli
3) Ricreare gli stessi effetti in una analoga applicazione winform C#
4) Creare una applicazione winform a piacere in VB.NET dove si definiscono ed inizializzano alcuni tipi di dati
5) Replicare la stessa applicazione in C#
Link utili
https://docs.microsoft.com/en-us/dotnet/visual-basic/reference/language-specification/
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/language-specification/introduction
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/data-types/type-characters
https://sites.harding.edu/fmccown/vbnet_csharp_comparison.html
https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET
https://docs.microsoft.com/it-it/dotnet/framework/wpf/advanced/how-to-add-an-event-handler-using-code
https://stackoverflow.com/questions/1488573/how-to-raise-event-using-addhandler
https://docs.microsoft.com/it-it/dotnet/csharp/tour-of-csharp/types-and-variables
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/data-types/
https://www.tutorialsteacher.com/csharp/csharp-value-type-and-reference-type
______________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e
venerdi 19-20/3/2020)
10- Video:
Introduzione ai cicli DO, WHILE e agli IF (10_IntroStruttureLoopCondizionali.mkv)
[
File Memo Strutture Controllo ]
https://drive.google.com/open?id=1jqTATjVh3Vesl_RDvQKO_E_cAZPT-R9I
11- Video:
L'algoritmo "online" per il calcolo della running mean (D. KNUTH) (11_KnuthAlgo.mkv)
https://drive.google.com/open?id=1MVF2_Eipkq_tgHNDtoOt7fe5I3TZCiCf
12- Video:
Esempi circa i loop con DO, WHILE (12_StruttureDoLoopWhile.mkv)
https://drive.google.com/open?id=183mt0qFxymFxIYs_jD3Oh0-aCiVVjnaR
13- Video:
Introduzione agli Array ed ai cicli FOR, FOR EACH in VB.NET (13_ArrayECicliForVB.mkv)
https://drive.google.com/open?id=13puy1BHDjB3yWYFe4qziFyVqRc8Nn4yZ
14- Video: Introduzione agli Array ed ai cicli FOR, FOR EACH
in C#
(14_ArrayECicliForC.mkv)
https://drive.google.com/open?id=1AeiEp62M94z4ApAVRXJDRwutf4MdBdn3
15- Video: Introduzione alle Sub e Function, passaggio per riferimento
(15_Sub_Function_ByRef.mkv)
https://drive.google.com/open?id=1PGHnnyXfV7XHTxC7BtZFykTP8TGmRvg5
Ricerche per il blog:
9) On line algo per il calcolo della "running mean" (Knuth)
10) Strutture di DO, WHILE in VB.NET e C#
11) Strutture CONDIZIONALI in VB.NET e C#
12) Array e strutture iterative FOR, FOREACH
13) Differenza tra passaggio per Reference e per Value
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
6) Creare una applicazione winform a piacere in VB.NET dove si calcola la media
di tutti i gli interi pari e di tutti gli interi dispari tra un "Primo
Intero" ed un "Ultimo Intero" a piacere definiti.
7) Replicare la stessa applicazione in C#
Link utili
https://www.c-sharpcorner.com/article/andalso-orelse-operators-in-C-Sharp/n-C-Sharp/
https://stackoverflow.com/questions/4820610/is-relying-on-short-circuiting-safe-in-net
https://blog.jsinh.in/short-circuiting-in-c-sharp/#.Xm7dgHJKi00
do, while
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/keywords/do
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/keywords/while
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/do-loop-statement
Collections
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/concepts/collections
https://docs.microsoft.com/it-it/dotnet/csharp/programming-guide/concepts/collections
array
https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-2012/wak0wfyt(v=vs.110)?redirectedfrom=MSDN
https://www.geeksforgeeks.org/c-sharp-arrays/
http://kcwebprogrammers.blogspot.com/2011/01/vb-arrays-vs-c-arrays-in-aspnet.html
for
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/for-next-statement
http://www.authorcode.com/use-of-for-each-next-loop-in-vb-net/
https://www.tutorialsteacher.com/csharp/csharp-for-loop
http://www.blackwasp.co.uk/CSharpForEachLoop.aspx
ByRef, ByVal
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/procedures/passing-arguments-by-value-and-by-reference
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/keywords/ref
https://www.youtube.com/watch?v=75Ju0eM5T2c Donald Knuth - My advice
to young people (93/97)
https://en.wikipedia.org/wiki/Monospaced_font
______________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e venerdi
26-27/3/2020)
16- Video: Rappresentazione degli interi (16_IntegerRepresentation.mkv)
https://drive.google.com/open?id=1kTeN5WiPoJfUz-i5VAPgjR0QspWhKkt1
17- Video: Rappresentazioni numeri con virgola (17_FloatingPointRepresentation.mkv)
https://drive.google.com/open?id=1YQipR8WkGUhdexpA4YLMhYolGm9ttL2y
18- Video: Perdita di significatività nei floating point (18_LossOfSignificance.mkv)
https://drive.google.com/open?id=1qPKoa5OIp9bbZmGFlH8GOY9IoQGsWkn6
19- Video: Liste e dizionari (19_ListDictionary.mkv)
https://drive.google.com/open?id=1D5awMGtVJrdFJJ15o4cKBsSIqTxICLAC
20-Video: Primo esempio sulle liste e organizzazione di un programma
(20_ListExamplesAndProgramOrganization.mkv)
https://drive.google.com/open?id=1IOs7_MErv3_0l9YHGKw1BGYtOCEzPcFi
21- Video: Algoritmo di Welford per la varianza (21_WelfordVarianza.mkv)
https://drive.google.com/open?id=1p44XXjbWKqxEqtDjYdBFzyUGO4eGi1S2
Ricerche per il blog:
14) Rappresentazione dei numeri nel computer: tipi interi e floating point [ Programma test tipi numerici ]
15) Il problema della perdita di significatività e la cancellazione catastrofica
16) Le liste e i dizionari: differenze e similitudini
17) Gli algoritmi per il calcolo della varianza
18) Le convenzioni sui nomi utilizzate in programmazione (PascalCasing, camelCasing, snake_casing, ...)
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
8) Creare una applicazione winform a piacere in VB.NET dove si calcola la
media e varianza di tutti i gli interi utilizzando l'algoritmo di Welford, dopo
averli memorizzati in una lista.
9) Replicare la stessa applicazione in C#
Link utili
Number representation
https://www.cs.uky.edu/~jzhang/CS321/lecture1.pdf
Floating point
https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
https://www.volkerschatz.com/science/float.html
https://en.wikipedia.org/wiki/Floating-point_arithmetic
https://stackoverflow.com/questions/618535/difference-between-decimal-float-and-double-in-net
0.1 in floating point base 2:
https://math.stackexchange.com/questions/2431129/how-to-determine-a-number-closest-to-a-given-number-in-floating-point
https://www.exploringbinary.com/why-0-point-1-does-not-exist-in-floating-point/
https://stackoverflow.com/questions/588004/is-floating-point-math-broken
https://www.exploringbinary.com/floating-point-converter/
https://en.wikipedia.org/wiki/Dyadic_rational
https://stackoverflow.com/questions/55755444/why-is-the-precision-accurate-when-decimal-takes-in-a-string-instead-of-float
https://jonskeet.uk/csharp/DoubleConverter.cs
Underflow
https://en.wikipedia.org/wiki/Arithmetic_underflow
Epsilon (proprietà):
https://docs.microsoft.com/it-it/dotnet/api/system.double.epsilon?view=netframework-4.8
https://stackoverflow.com/questions/11781899/c-sharp-decimal-epsilon
Machine Epsilon:
https://en.wikipedia.org/wiki/Machine_epsilon
Stabilità numerica
http://www.ams.sunysb.edu/~jiao/teaching/ams526_fall12/lectures/lecture08.pdf
http://www.physics.udel.edu/~bnikolic/teaching/phys660/PDF/unavoidable_errors.pdf
https://epdf.pub/accuracy-and-stability-of-numerical-algorithms66ed566c6de1c9442780fa4ffa4c02a190717.html
https://stackoverflow.com/questions/2056445/no-overflow-exception-for-int-in-c
Welford:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.302.7503&rep=rep1&type=pdf
https://www.johndcook.com/blog/standard_deviation/
https://www.johndcook.com/blog/2008/11/05/how-to-calculate-pearson-correlation-accurately/
https://www.johndcook.com/blog/2008/09/28/theoretical-explanation-for-numerical-results/
https://it.wikipedia.org/wiki/Algoritmi_per_il_calcolo_della_varianza
https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
http://cpsc.yale.edu/sites/default/files/files/tr222.pdf
"Algorithms for computing the sample variance: Analysis and recommendations"
Convenzioni sui nomi delle variabili:
https://devopedia.org/naming-conventions
https://stackoverflow.com/questions/149491/pascal-casing-or-camel-casing-for-c-sharp-code
https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/
Kahan, Neumaier
summation (compensazione somma)
https://en.wikipedia.org/wiki/Kahan_summation_algorithm
https://github.com/JuliaLang/julia/issues/199
______________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e
venerdi 2-3/4/2020)
22- Video: Relazioni di ricorrenza per la covarianza (22_CovarianceRecurrence.mkv)
https://drive.google.com/open?id=1_yFbuxvfqXR8GwINTr_h3YD2ME5LK4Iq
23- Video: Covarianza e Correlazione (23_CovarianceAndCorrelation.mkv)
https://drive.google.com/open?id=1ukJgmSnzzk-0_OsDZT8elSFIk1rUho0b
24- Video: Introduzione ai coefficienti binomiali, permutazioni,
combinazioni, fattoriali (24_CoefficientiBinomiali)
https://drive.google.com/open?id=1lhARr194lWVVWL8CYhY3BJvVIwiCoC5x
25- Video: Altre proprietà dei coeff. binomiali, simmetria, zero fattoriale
(25_CoefficientiBinomialiSimmetryAndZero.mkv)
https://drive.google.com/open?id=1SrvRTysTUEyJWy8hwdF1jhXGWS60PwVk
26- Video: Aggiunta di References, Struct BigInteger, Struttura Try Catch, Parte
1 (26_AddReferenceBigIntegerTryCatch_1)
https://drive.google.com/open?id=1Hpl2bxWgMUl05pCmKayuBhCr0DrhbQvE
27- Video: Aggiunta di References, Struct BigInteger, Struttura Try Catch, Parte
2 (27_AddReferenceBigIntegerTryCatch_2)
https://drive.google.com/open?id=1srL7SIWQW-owlsl2-5nvg35ZrZSFhQEI
28-
Video: Extra info su
Start Up applicazioni, Application Framework, void Main()
(28_AppendiceStartupApplicazione.mkv)
https://drive.google.com/open?id=1L8FIDmwJtnbmEA1Evx5T8bpQQ8RFjb7c
Ricerche per il blog:
19) Relazioni di ricorrenza per la covarianza
20) Coefficienti binomiali e loro proprietà
21) La struttura Try Catch e la gestione delle eccezioni in C# e VB.NET
22) Gli algoritmi per il calcolo del fattoriale
23) Tipi numerici a precisione arbitraria e la Struct BigInteger di System.Numerics
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
10) Creare una applicazione winform (in VB.NET e C#) che calcoli le medie e varianze degli interi pari e dispari (2n, 2n-1), n=1,2,... e poi calcolare la covarianza tra le due liste di valori
11) Creare una applicazione winform (in VB.NET e C#) che utilizzi la struttura BigInteger e il
meccanismo Try Catch Finally
Link utili
Covarianza https://stats.stackexchange.com/questions/29713/what-is-covariance-in-plain-language
Sorted List
https://stackoverflow.com/questions/1427147/sortedlist-sorteddictionary-and-dictionary
Namespace
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/namespaces/using-namespaces
Relazioni ricorrenza
https://www.math.unipd.it/~tonolo/didattica/Matematica_D/2004/ricorrenze.pdf
Ricorrenza binomiale
https://proofwiki.org/wiki/Pascal's_Rule/Combinatorial_Proof
https://en.wikipedia.org/wiki/Binomial_coefficient
System Numerics
https://stackoverflow.com/questions/9824479/how-to-add-a-reference-to-system-numerics-dll
BigInteger
https://docs.microsoft.com/en-us/dotnet/api/system.numerics.biginteger?redirectedfrom=MSDN&view=netframework-4.8
Precisione arbitraria
https://it.qwe.wiki/wiki/Arbitrary-precision_arithmetic
Conversioni, troncamenti
https://docs.microsoft.com/it-it/dotnet/api/microsoft.visualbasic.conversion.int?view=netframework-4.8
Algoritmi efficienti per fattoriale
https://cs.stackexchange.com/questions/14456/factorial-algorithm-more-efficient-than-naive-multiplication
http://www.luschny.de/math/factorial/FastFactorialFunctions.htm
http://www.cecm.sfu.ca/personal/pborwein/PAPERS/P29.pdf
http://www.luschny.de/math/factorial/conclusions.html
Try catch, throw, throw new, stepthrough, catch and rethrow, unhandled
exceptions
https://www.appmarq.com/public/robustness,7910,Never-exit-a-finally-block-with-a-return-break-continue-or-throw
https://docs.microsoft.com/it-it/dotnet/standard/exceptions/best-practices-for-exceptions
https://airbrake.io/blog/dotnet-exception-handling/exception-class-hierarchy
https://stackoverflow.com/questions/5164497/c-does-throw-exit-the-current-function
https://www.completecsharptutorial.com/basic/complete-system-exception.php
https://www.tutorialsteacher.com/csharp/csharp-exception
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/throw-statement
https://softwareengineering.stackexchange.com/questions/306669/differences-between-throw-and-throw-new-and-exactly-how-exceptions-bubble-u
https://agirlamonggeeks.com/2017/12/12/c-attributes-you-should-know-2-debuggerstepthrough-and-debuggerhidden/
https://visualstudiomagazine.com/articles/2016/11/01/handle-unhandled-visual-basic-and-c-exceptions.aspx
https://stackoverflow.com/questions/5762526/how-can-i-make-something-that-catches-all-unhandled-exceptions-in-a-winforms-a
https://social.technet.microsoft.com/wiki/contents/articles/36836.exception-bubbling-in-c.aspx
https://www.csharp-examples.net/catching-unhandled-exceptions/
https://stackoverflow.com/questions/881473/why-catch-and-rethrow-an-exception-in-c
Main() function Vs MyApplication, Application Framework
https://stackoverflow.com/questions/7258909/where-is-the-main-function-in-vb-nett
OnLoad
https://stackoverflow.com/questions/3670806/form-load-event-or-override-onload
https://docs.microsoft.com/it-it/dotnet/api/system.windows.forms.form.onload?view=netframework-4.8
__________________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e
venerdi 9-10/4/2020)
29- Video: Regressione, part 1
(29_Regression_1.mkv)
https://drive.google.com/open?id=1mR-nHY2iOEALj6yWrxWN_eHlbsuAXfJK
30- Video: Regressione, part 2 (30_Regression_2.mkv)
https://drive.google.com/open?id=1mBJ1U2wqxQ-Q32J1_e7KmGX1i62aV3Fx
31- Video: Regressione, part 3 (31_Regression_Extra.mkv)
https://drive.google.com/open?id=1LE_vK4eD_CaGemukdZAx8JeCKdMFYSBy
32- Video: Operatori in C#, VB.NET (32_OperatoriCenniClassificazione.mkv)
https://drive.google.com/open?id=1DkFoV_eie2d20HKY874PRRnxXk9hcp-Z
33- Video: Operatori logici e bitwise, shift aritmetici
(33_BitwiseLogiciShift.mkv)
https://drive.google.com/open?id=1_NnocGnYKB27dV3IMFudEUkjGPPXmDpS
Ricerche per il blog:
24) Regressione lineare
25) Scomposizione della varianza nella regressione lineare
26) I principali operatori in VB.NET e C#
27) Cercare su Internet applicazioni interessanti ed eleganti di operatori bitwise
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
12) Creare una applicazione winform in VB.NET che calcoli la retta di regressione di Y rispetto a X, il coefficiente di accostamento R² e la scomposizione della varianza da un dataset bivariato reale a piacere preso da Internet. Ad esempio, si può prendere dalla banca dati: https://data.world/datasets/multivariate o qualsiasi altra fonte si desideri. Possibilmente usare dei dati che vi interessano personalmente e trarre qualche conclusione personale dai risultati. Per il calcolo di media, varianza, covarianza, ovviamente utilizzare le formule di ricorrenza che abbiamo studiato (Knuth, Welford, ...) [e non le formule naive].
13) Riscrivere o tradurre l'applicazione in C# controllando la corrispondenza dei risultati e discutendo eventuali punti di interesse/attenzione e divergenza tra i linguaggi.
Link utili
Regressione
https://en.wikipedia.org/wiki/Simple_linear_regression
http://www.dsu.univr.it/documenti/OccorrenzaIns/matdid/matdid324170.pdf
Operatori bitwise
https://en.wikipedia.org/wiki/Bit_manipulation
https://it.cppreference.com/w/cpp/language/operator_precedence
https://stackoverflow.com/questions/141525/what-are-bitwise-shift-bit-shift-operators-and-how-do-they-work/141873#141873
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/operators/bitwise-and-shift-operators
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/operators-and-expressions/logical-and-bitwise-operators
https://www.codeproject.com/Articles/544990/Understand-how-bitwise-operators-work-Csharp-and-V
Nuovi operatori
https://devblogs.microsoft.com/dotnet/building-c-8-0/
https://csharp.today/c-6-features-null-conditional-and-and-null-coalescing-operators/
https://docs.microsoft.com/en-us/dotnet/csharp/tutorials/ranges-indexes
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/ranges
https://blog.jetbrains.com/dotnet/2019/04/24/indices-ranges-null-coalescing-assignments-look-new-language-features-c-8/
https://stackoverflow.com/questions/102084/hidden-features-of-vb-net
https://stackoverflow.com/questions/6792729/vb-net-null-coalescing-operator
https://stackoverflow.com/questions/45470502/is-there-a-null-conditional-operator-in-vbnet
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/operators/null-conditional-operators
https://stackoverflow.com/questions/54092458/why-doesnt-the-new-hat-operator-index-from-the-c-sharp-8-array-slicing-feature
https://devblogs.microsoft.com/dotnet/building-c-8-0/
https://stackoverflow.com/questions/45470502/is-there-a-null-conditional-operator-in-vbnet
Esempi manipolazione bit
https://www.hackerearth.com/practice/notes/bit-manipulation/
https://graphics.stanford.edu/~seander/bithacks.html
https://www.geeksforgeeks.org/count-set-bits-in-an-integer/
https://codeforwin.org/2018/05/10-cool-bitwise-operator-hacks-and-tricks.html
Alcuni data set / link vari
https://new.censusatschool.org.nz/resource/multivariate-data-sets/
https://datasetsearch.research.google.com/
https://help.yahoo.com/kb/download-historical-data-yahoo-finance-sln2311.html
https://data.world/datasets/multivariate
https://data.oecd.org/
https://data.worldbank.org/
https://people.bath.ac.uk/pssiw/stats2/page16/page16.html
https://vincentarelbundock.github.io/Rdatasets/datasets.html
https://g2aging.org/?section=page&pageid=18
http://www.share-project.org/special-data-sets.html
https://www.data.gov/
https://guides.emich.edu/data/free-data
__________________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e
venerdi 16-17/4/2020)
34- Video: Valore del LSB
(34_LSBValue.mkv)
https://drive.google.com/open?id=1Y-8KLvUXwQHoGDBwwVoCx2J8YxHvPjZY
35- Video: Unset rightmost bit
(35_UnsetRightmostSetBit.mkv)
https://drive.google.com/open?id=1yC6okDwYW0ZMDoB31gzZUNYIKI7NSdcH
36- Video: Somma dei bit, naive algo e Kernighan algo
(36_SetBitCount.mkv)
https://drive.google.com/open?id=1ODrBk5875iimmKI7Up3DQV108X_DcNfl
37- Video: Test potenza di 2, shift, odd rounding
(37_TestPower_Shift_OddRounding.mkv)
https://drive.google.com/open?id=1TYdt2IUHvRSSoLNY_Vrghul46p22GoIv
38- Video: Massima potenza di 2 in N
(38_MaxPowerOfTwoFactor.mkv)
https://drive.google.com/open?id=1J4dcNEmjy79iayJiKiwZxAlyra_WrRdu
39- Video: Formula di Legendre, valutazione 2-adica, massima potenza di 2 in N!
(39_Legendre2adicValuation.mkv)
https://drive.google.com/open?id=1uDD5koWh_Agkx9oLUIjDzbbCLyM863Yi
40- Video: Leggere un file di dati
- Part 1: specifica CSV, StreamReader, TextFieldParser
(40_DataFileParsing_CSV.mkv)
https://drive.google.com/open?id=12ofp1DSRQ5pfxWkxihQdLlAyl7hhTYv8
41- Video: Leggere un file di dati - Part 2: Using statement
(41_UsingStatement.mkv)
https://drive.google.com/open?id=1qkR5YKsU8xvSQSi1RdguN2-qY7JfppNM
[
File con esempio (EsempioLetturaCSV.txt) di TextFieldParser per il
file sui mammiferi
scaricato dal sito:
https://new.censusatschool.org.nz/resource/multivariate-data-sets/
dimostra anche la funzionalità di drag drop del nome file in una TextBox, da cui
successivamente può essere letto o modificato dall'utente.
Variante della
funzione di lettura con lo StreamReader
(VarianteFunzioneLetturaConStreamReader.txt) ]
Ricerche per il blog:
28) Algoritmi classici di manipolazione dei bit, usando maschere e operatori
bitwise, e relative classiche domande da intervista tecnica (interview questions) per assunzione (Google/Amazon/...).
29) La formula di Legendre e la sua utilità nelle applicazioni
30) Elementi fondamentali della specifica CSV
31) Metodi disponibili per leggere file testuali di dati statistici,
con esempi
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
14) Collegare la lettura di dati da un file
dati a vostra scelta (tra i dataset
disponibili su Internet) alla vostra precedente applicazione (HW 12) sulla
regressione, automatizzando la lettura e le successive elaborazioni. Svolgere l'esercizio in VB.NET e C#.
[Cercare, laddove possibile, di rendere l'applicazione più generale possibile evitando il più
possibile specificità legate al particolare dataset utilizzato.]
Link utili
http://graphics.stanford.edu/~seander/bithacks.html
https://codeforwin.org/2016/01/c-program-to-check-lsb-of-number.html
https://stackoverflow.com/questions/33726223/how-can-i-set-the-least-significant-bit-of-an-integer-in-c
https://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer#109025
https://www.techiedelight.com/brian-kernighans-algorithm-count-set-bits-integer/
https://tutorialspoint.dev/algorithm/bitwise-algorithms/count-set-bits-in-an-integer
https://stackoverflow.com/questions/47981/how-do-you-set-clear-and-toggle-a-single-bit
https://www.geeksforgeeks.org/print-kth-least-significant-bit-number/
https://stackoverflow.com/questions/108318/whats-the-simplest-way-to-test-whether-a-number-is-a-power-of-2-in-c
https://www.geeksforgeeks.org/highest-power-2-less-equal-given-number/
https://aticleworld.com/interview-questions-on-bitwise-operators-in-c/
https://medium.com/@codingfreak/bit-manipulation-interview-questions-and-practice-problems-27c0e71412e7
https://www.careercup.com/page?pid=bit-manipulation-interview-questions
Legendre
https://it.wikipedia.org/wiki/Identit%C3%A0_di_Legendre-de_Polignac
https://artofproblemsolving.com/wiki/index.php/Legendre%27s_Formula
https://www.geeksforgeeks.org/legendres-formula-highest-power-of-prime-number-that-divides-n/
CSV spec
https://tools.ietf.org/html/rfc4180
https://www.thoughtspot.com/6-rules-creating-valid-csv-files
https://en.wikipedia.org/wiki/Comma-separated_values
StreamReader / TextFieldParser - CSV parsing
https://docs.microsoft.com/it-it/dotnet/api/microsoft.visualbasic.fileio.textfieldparser?view=netframework-4.8
https://stackoverflow.com/questions/16588454/textfieldparser-class
https://www.codeproject.com/Questions/384247/How-to-read-from-csv-file-using-csharp-net
https://stackoverflow.com/questions/3507498/reading-csv-files-using-c-sharp
https://stackoverflow.com/questions/41935187/read-csv-file-with-streamreader-in-c-sharp
https://stackoverflow.com/questions/35437313/read-a-csv-file-in-c-sharp-efficiently
https://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader
Using statement
https://www.codeproject.com/Articles/6564/Understanding-the-using-statement-in-C
https://stackoverflow.com/questions/212198/what-is-the-c-sharp-using-block-and-why-should-i-use-it
__________________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi e
venerdi 23-24/4/2020)
42- Video: Distribuzione semplice di frequenze in classi intervallari, Lambda expressions
(42_FrequencyDistribution_Part1_LambdaExpressions.mkv)
https://drive.google.com/open?id=1jAm-RfmCxtJ7NAppQqARfycwvNJjWPrR
43- Video: Introduzione alla grafica 2D, Part 1: esempio
scatterplot
(43_IntroGrafica_ScatterPlot.mkv)
https://drive.google.com/open?id=1p60_qCCnB6sxue0mOMCaV4Dwjnmeuz_4
44- Video: Introduzione alla grafica 2D, Part 2: esempio
histogram
(44_IntroGrafica_Istogram.mkv)
https://drive.google.com/open?id=1vK1hNzcy6sV_e1LY21iwC6ebNwPHw5jC
45- Video: Introduzione alla grafica 2D, Part 3: interactive charting
(45_IntroGrafica_InteractiveChart.mkv)
https://drive.google.com/open?id=1499eL1XtjwP7nZKwMPoVtZbQA_8uo-8C
46- Video: Distribuzione bivariata / multivariata di frequenze
(46_BivariateFrequencyDistribution.mkv)
https://drive.google.com/open?id=1tlQotLCNZ-KkxsdjDDG53xW-dcYc8kW4
Ricerche per il blog:
32) Procedure per calcolare la distribuzione di frequenze univariata o bivariata
33) Fare un approfondimento sulle "Lambda expressions"
34) Principali oggetti grafici: Graphics, Bitmap, Rectangle, Point, PointF,
Size, SizeF, Pen, Brush, Color, Font, ...
35) Trasformazione di coordinate: dal "mondo reale" al "mondo virtuale"
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
15) Inserire il calcolo delle distribuzioni semplici e bivariate di alcune variabili di interesse nella vostra precedente applicazione (HW 15) di analisi dati. Aggiungere anche una rappresentazione grafica a piacere di variabili del vostro dataset, programmata con la libreria GDI+ di .NET. Svolgere l'esercizio in VB.NET e C#.
(link al
progetto di esempio relativo al file mammals.csv con lo scatterplot)
16) Estendere a piacere a funzionalità della
classe di chart interattivo (in VB.NET o C#) aggiungendo la capacità di
ridimensionare il rettangolo ponendo il mouse sui lati o sugli angoli del
rettangolo e altre eventuali funzionalità che pensate possano essere utili (es.
rotazioni, etc.).
Link utili
https://www.superprof.co.uk/resources/academic/maths/statistics/descriptive/frequency-distribution.html
https://en.wikipedia.org/wiki/Frequency_distribution
https://en.wikipedia.org/wiki/Contingency_table
https://en.wikipedia.org/wiki/Marginal_distribution
Lambda expression
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/procedures/how-to-create-a-lambda-expression
https://www.tutorialsteacher.com/linq/linq-lambda-expression
https://www.codemag.com/Article/1001051/Practical-Uses-of-Lambdas
https://linqsamples.com/linq-to-objects/Any-lambda
Graphics (2D)
https://www.vbtutor.net/vb2017/vb2017_lesson26.html
https://docs.microsoft.com/en-us/dotnet/framework/winforms/advanced/how-to-create-graphics-objects-for-drawing
https://www.dreamincode.net/forums/topic/67275-the-wonders-of-systemdrawinggraphics/
https://www.codeproject.com/Articles/1355/Professional-C-Graphics-with-GDI
https://www.c-sharpcorner.com/topics/gdi
Mouse / rotation
https://www.codeproject.com/Articles/33789/Custom-Mouse-Cursors-VB-NET
https://stackoverflow.com/questions/6921585/how-to-rotate-a-rectangleshape-in-vb-net
https://docs.microsoft.com/it-it/dotnet/api/system.drawing.graphics.rotatetransform?view=netframework-4.8
https://docs.microsoft.com/it-it/dotnet/api/system.drawing.drawing2d.matrix?view=netframework-4.8
https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.cursors?redirectedfrom=MSDN&view=netframework-4.8)
__________________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi 30/4/2020)
47- Video: Nozione di Stack, action frame, Heap,
uso della memoria da parte dei programmi
(47_Stack_Heap.mkv)
https://drive.google.com/open?id=16z_MpuJRhPS0JIq1eRFdsjvMXeippXQW
48- Video: Prima introduzione alla nozione di ricorsione, esempio classico: fattoriale
naive
(48_Ricorsione_Intro_Fatt_1_Naive.mkv)
https://drive.google.com/open?id=1ds8lHTn4qsLhOZj9PAaxpC_V0-hPnFdh
49- Video: Introduzione alla simulazione di processi aleatori, oggetto random, numeri
pseudocasuali
(49_StochasticProcess_Part1_RandomObject.mkv)
https://drive.google.com/open?id=1NA77bdyVzXoaogYDSbQ6X6N5y8SqsR64
50- Video: Bernoulli random walk, generazione e rappresentazione
(50_StochasticProcess_Part2_BernoulliRandomWalk_Chart.mkv)
https://drive.google.com/open?id=1U8flFDg168CzXkOIWMy9tPbOs9nF6fyk
51- Video: Brownian motion, Introduzione al teorema del limite centrale (CLT)
funzionale, Donsker's theorem + 2 Esercizi
(51_StochasticProcess_Part3_BrownianMotion_FunctionalCLT_DonskerTheorem.mkv)
https://drive.google.com/open?id=1rL270Rk-WDyLsPJawha0f9tO_pkvmUvo
-------------- Video opzionali (help esercizi 1-2) -------------
51- Video: Optional 1 - Help per Esercizio 1
(51_Optional1_Esercizio1_Part1.mkv) [cercare di fare l'esercizio prima da
soli]
https://drive.google.com/open?id=1p7JAWpjN7QBB8-OLF96X-_xmRzBUOgDS
51- Video: Optional 2 - Help per Esercizio
2 - 1/4
(51_Optional2_Esercizio2_Part1.mkv)
https://drive.google.com/open?id=1ayT_rk5EGpenVI24Yx5-nXV_ML_Md3Rk
51- Video: Optional 3 - Help per Esercizio 2 - 2/4
(51_Optional3_Esercizio2_Part2.mkv)
https://drive.google.com/open?id=1Ron2SC1VQgN0D3Gxf5WeU3VcxapWIo1L
51- Video: Optional 4 - Help per Esercizio 2 - 3/4
(51_Optional4_Esercizio2_Part3.mkv)
https://drive.google.com/open?id=1s0mYl4jspsHHd1Z5vRqvIJ4HMr3LigBw
51- Video: Optional 5 - Help per Esercizio 2 -
4/4
(51_Optional5_Esercizio2_Part4.mkv)
https://drive.google.com/open?id=1z05tmdCyOwOMf_WbnzyEWADyBgVu80E0
Ricerche per il blog:
36)
Uso della memoria da parte di un programma, nozione di stack e Heap
37) Spiegare a parole proprie la nozione di ricorsione confrontandola con
quella di iterazione
38) Introdurre la nozione di processo aleatorio e
in particolare la
Random walk
39) Spiegare
in termini semplici e intuitivi il significato del teorema funzionale del limite
centrale per processi aleatori e la sua analogia
con il teorema del limite centrale (CLT)
40) Spiegare in termini semplici la nozione di Brownian motion, specialmente
come limite della random walk.
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
17) Svolgere gli Esercizi 1 e 2 (indicati nel video 51) con vostro il linguaggio preferito (C# o VB.NET).
Esempio di output dell'esercizio 2 (Wiener Process come Scaling limit di Random Walk)
Esempio di output dell'esercizio 2 (Wiener Process, Brownian Motion)
Link utili
Call stack
https://www.youtube.com/watch?v=Q2sFmqvpBe0
Memoria, stack, ricorsione
https://www.youtube.com/watch?v=ygK0YON10sQ
Stack vs Heap
https://www.youtube.com/watch?v=ZMZpH4yT7M0
https://www.youtube.com/watch?v=IX3fDYz0WyM
Ricorsione
https://www.sparknotes.com/cs/recursion/whatisrecursion/section1/page/3/
https://www.codeproject.com/Articles/142292/Recursive-methods-in-Csharp
https://stackoverflow.com/questions/931762/can-every-recursion-be-converted-into-iteration
https://stackoverflow.com/questions/5002946/recursive-function-be-converted-into-a-non-recursive-function
https://www.youtube.com/watch?v=HXNhEYqFo0o (Programming Loops vs Recursion - Computerphile)
https://www.youtube.com/watch?v=Mv9NEX(What on Earth is Recursion? - Computerphile)
https://stackoverflow.com/questions/21426688/the-difference-between-head-tail-recursion?noredirect=1&lq=1
https://stackoverflow.com/questions/33923/what-is-tail-recursion?rq=1rsion?rq=1
Da iterazione a ricorsione e viceversa
https://www.refactoring.com/catalog/replaceIterationWithRecursion.html
https://web.archive.org/web/20120227170843/http://cs.saddleback.edu/rwatkins/CS2B/Lab%20Exercises/Stacks%20and%20Recursion%20Lab.pdf
https://stackoverflow.com/questions/931762/can-every-recursion-be-converted-into-iteration?noredirect=1&lq=1
Overhead ricorsione
http://www.cs.iit.edu/~cs561/cs331/recursion/recursionoverhead.html
Random Walk
https://it.wikipedia.org/wiki/Passeggiata_aleatoria
https://github.com/danielbank/RandomWalk
https://www.softcover.io/read/bf34ea25/math_for_finance/random_walks
Brownian Motion
https://it.wikipedia.org/wiki/Processo_di_Wiener
https://it.wikipedia.org/wiki/Moto_browniano
http://www.math.unl.edu/~sdunbar1/MathematicalFinance/Lessons/BrownianMotion/PathProperties/pathproperties.pdf
https://math.stackexchange.com/questions/3145821/why-isn-t-brownian-motion-differentiable
https://www.jstor.org/stable/2243421?seq=1#metadata_info_tab_contents (by
Monroe D. Donsker)
http://www.columbia.edu/~ks20/4404-Sigman/4404-Notes-sim-BM.pdf
https://www.stat.berkeley.edu/~aldous/Research/Ugrad/ZY1.pdf
https://math.stackexchange.com/questions/918943/simple-question-about-the-definition-of-brownian-motion
https://www.stat.berkeley.edu/~aldous/205B/bmbook.pdf
http://homepage.ntu.edu.tw/~jryanwang/course/Financial%20Computation%20or%20Financial%20Engineering%20(graduate%20level)/FE_Ch01%20Wiener%20Process.pdf
https://www.csie.ntu.edu.tw/~lyuu/finance1/2014/20140423.pdf
https://www.probabilitycourse.com/chapter11/11_4_1_brownian_motion_as_the_limit_of_a_symmetric_random_walk.php
http://www.math.tau.ac.il/~tsirel/Courses/Brown/lect3.pdf
http://galton.uchicago.edu/~lalley/Courses/313/WienerProcess.pdf
https://almostsure.wordpress.com/2009/10/08/the-pathological-properties-of-brownian-motion/
https://www.math.wisc.edu/~roch/grad-prob/gradprob-notes27.pdf
Generazione variabili aleatorie Normal
(Gaussian) (µ,σ²)
https://en.wikipedia.org/wiki/Marsaglia_polar_methodlar_method
https://en.wikipedia.org/wiki/Ziggurat_algorithm
https://www.doc.ic.ac.uk/~wl/papers/07/csur07dt.pdf
https://www.researchgate.net/publication/5142858_Fast_Generation_of_Discrete_Random_Variables
(article by George Marsaglia et al.)
http://www.mat.ufrgs.br/~viali/estatistica/mat2274/material/textos/p376-muller.pdf
(by Mervin Edgar Muller)
http://interstat.statjournals.net/YEAR/2012/articles/1205003.pdf
Discrete r.v. generation
https://stats.stackexchange.com/questions/67911/how-to-sample-from-a-discrete-distribution/68041#68041
https://math.stackexchange.com/questions/1427288/how-to-sample-a-binomial-random-variable
https://math.stackexchange.com/questions/1420248/generation-of-random-variable-from-a-complicated-cdf/1420322#1420322
https://stackoverflow.com/questions/9956486/distributed-probability-random-number-generator/9958717#9958717
https://stats.stackexchange.com/questions/198431/how-to-understand-the-alias-method-for-generating-discrete-random-variables
http://www.jstatsoft.org/v11/i03/paper
https://github.com/cantino/walker_method
https://keithschwarz.com/darts-dice-coins/
https://www.keithschwarz.com/interesting/code/?dir=alias-method
https://www.jstor.org/stable/pdf/2683739.pdf?casa_token=mXVTh2MsufQAAAAA:U9f6FK7NiPBpRVDYnyIUJqL8cxYP53hh2cKdxX3E_TlGh3nig2fiTQWuevpIyQ0fSiveVZenoxAz_9nODjRykkAJ4mbr4lE39K4LqycpZdvZK8b-4w
Math.NET Numerics (NuGet Packages)
https://numerics.mathdotnet.com/
Nullable types
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/data-types/nullable-value-types
Extension methods
C#
https://docs.microsoft.com/it-it/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
VB.NET
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/procedures/how-to-write-an-extension-method
______________________________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi/venerdi
6-7/5/2020)
52- Video: Dalla Random Walk al Processo di Wiener, Teorema funzionale del
limite centrale
(52_FromRandomWalkToWienerProcess)
https://drive.google.com/open?id=1Ei_Bei8nKUJhlkcBjDbo2lEP1536T0ko
53- Video: Dal Brownian Motion al Geometric Brownian Motion (incrementi
moltiplicativi e "returns", Lognormale)
(53_FromBrownianMotionToGBM.mkv)
https://drive.google.com/open?id=1_FdzpbqODI-0OHYKqI6gaHscYKnJWO9o
54- Video: Il processo di Poisson e la sua relazione con le principali
distribuzioni (Bernoulli, Binomiale, Poisson, Uniforme, Esponenziale negativa,
Normale)
(54_PoissonJumpProcess.mkv)
https://drive.google.com/open?id=1qVrANd7IMe1Y42OMStmbz9KNJXNfyKdq
Proprietà del processo di Poisson e richiami sulle principali distribuzioni
coinvolte:
55- Video: Proprietà del processo di Poisson: richiami sulla Binomiale
(55_ProprietaProcessoPoisson_1_RiepilogoBinomiale.mkv)
https://drive.google.com/open?id=1MTEWuPxZnt_4PTjrrlRsFbHZukdUUX3Q
56- Video: Proprietà del processo di Poisson: richiami sulla Poisson come limite
della Binomiale (56_ProprietaProcessoPoisson_2_RiepilogoPoisson.mkv)
https://drive.google.com/open?id=1FtHa7LdcYfxtvEqce-RRasuE0Jr6cBNc
57- Video: Proprietà del processo di Poisson: richiami sulla Poisson sulla
Esponenziale come distribuzione "memoryless" degli interarrivi
(57_ProprietaProcessoPoisson_3_RiepilogoEsponenziale.mkv)
https://drive.google.com/open?id=1n4Caef-kG-iJaiRjN7bhkSfo1nbU7w3m
Ricerche per il blog:
41) Definizione differenziale del processo di Wiener
42) Definizione differenziale del processo Geometric Brownian Motion e
significato intuitivo/motivazione
43) Il processo di Poisson e la sua relazione con
varie distribuzioni
statistiche
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
Svolgere gli Esercizi e ripassi (indicati nel video 54):
18) Esercizio di completamento del programma sui processi stocastici:
-
Aggiungere la simulazione del Geometric Brownian Motion:
Esempio di output dell'esercizio 2 (Geometric Brownian Motion)
-
Implementare la simulazione del Processo di Poisson con plot delle seguenti
distribuzioni: Distribuzione del processo alla fine dell'intervallo di tempo e su 1 o 2 tempi
scelti a piacere, distribuzione dei tempi di arrivo, distribuzione dei tempi di interarrivo:
Esempio di output dell'esercizio 2 (Poisson Jump Process)
19) Punto A)
Raccogliere (da Internet) e testare (con vostro grafico/simulazione) programmi/snippets per
- i
principali generatori di numeri pseudocasuali:
- Distribuzioni discrete qualsiasi: Inversione della CDF, "Alias" method
-
Principali discrete: Bernoulli, Binomiale, Ipergeometrica, Poisson, etc.
- Principali continue: Normale, Esponenziale, Weibull, Lognormale, Gamma, (Chi
quadro, F Fisher, T Student), etc.
20) Punto B) Raccogliere (su Internet) e testare programmi/snippets
per il calcolo delle probabilità per le principali distribuzioni discrete:
Binomiale, Ipergeometrica, Poisson
[Nota importante: Incorporare sempre, come commenti nel codice, i link dai quali si sono tratte o ricavate le funzioni e le procedure utilizzate.]
Link utili
Geometric Brownian Motion
https://en.wikipedia.org/wiki/Geometric_Brownian_motion
https://www.quantstart.com/articles/Geometric-Brownian-Motion/
https://math.stackexchange.com/questions/2288421/stochastic-differential-equation-solution-for-geometric-brownian-motion
https://quant.stackexchange.com/questions/33360/on-the-application-of-itos-lemma-to-geometric-brownian-motion
https://scholar.uwindsor.ca/cgi/viewcontent.cgi?article=1020&context=major-papers
Itō Lemma, Stochastic calculus
https://en.wikipedia.org/wiki/Stochastic_calculus
https://en.wikipedia.org/wiki/It%C3%B4_calculus
https://en.wikipedia.org/wiki/Riemann%E2%80%93Stieltjes_integral
https://ocw.mit.edu/courses/mathematics/18-s096-topics-in-mathematics-with-applications-in-finance-fall-2013/lecture-notes/MIT18_S096F13_lecnote18.pdf
https://math.stackexchange.com/questions/1553893/stochastic-integrals-are-confusing-me-please-explain-how-to-compute-int-w-sdw
https://math.stackexchange.com/questions/1807057/the-integral-is-the-area-under-the-curve-is-there-a-similar-notion-for-stochast?noredirect=1&lq=1
http://www.columbia.edu/~ww2040/4701Sum07/lec0813.pdf
https://projecteuclid.org/download/pdf_1/euclid.pja/1195572786 (by Kiyosi
Itō)
https://it.wikipedia.org/wiki/Kiyoshi_It%C5%8D
http://math.uchicago.edu/~may/REU2017/REUPapers/Zhang,Shangxi.pdf
https://en.m.wikipedia.org/wiki/It%C3%B4_calculus
https://www.sjsu.edu/faculty/watkins/ito.htm
https://en.m.wikipedia.org/wiki/Malliavin_calculus
https://en.m.wikipedia.org/wiki/Malliavin_derivative
https://en.m.wikipedia.org/wiki/Skorokhod_integral
https://www.quantstart.com/articles/Itos-Lemma/
Lognormale
https://it.wikipedia.org/wiki/Distribuzione_lognormale
https://stats.stackexchange.com/questions/238529/the-sum-of-independent-lognormal-random-variables-appears-lognormal?newreg=5fcf09fc5dcf472fb5b241b9f24259c1
Distributions
https://en.wikipedia.org/wiki/Random_variableom_variable
https://en.wikipedia.org/wiki/Probability_distribution
https://en.wikipedia.org/wiki/List_of_probability_distributions
http://www.stat.yale.edu/Courses/1997-98/101/ranvar.htm
Poisson jump process
https://www.probabilitycourse.com/chapter11/11_1_2_basic_concepts_of_the_poisson_process.php
https://stats.stackexchange.com/questions/325539/lambda-exponential-vs-poisson-interpretation/325662
http://www.it.uu.se/edu/course/homepage/fussmobb/ht06/computing/labb5.pdf
http://www.math.unl.edu/~sdunbar1/ProbabilityTheory/Lessons/Poisson/PoissonOld/poisson.shtml
Compound Poisson process
https://en.wikipedia.org/wiki/Compound_Poisson_process
Binomiale
https://www3.nd.edu/~rwilliam/stats1/x13.pdfats1/x13.pdf
Ipergeometrica
https://math.stackexchange.com/questions/2236194/derivation-for-hypergeometric-distribution-formula-and-comparsion-with-bernoulli/2246014
Poisson
https://it.wikipedia.org/wiki/Distribuzione_di_Poisson
https://medium.com/@andrew.chamberlain/deriving-the-poisson-distribution-from-the-binomial-distribution-840cc1668239
Exponential
https://en.wikipedia.org/wiki/Exponential_distribution
Generazione variabili aleatorie
https://en.wikipedia.org/wiki/Inverse_transform_sampling
https://en.wikipedia.org/wiki/Alias_method (alias)
https://core.ac.uk/download/pdf/6287927.pdf (ziggurat)
https://www.doornik.com/research/ziggurat.pdf
https://www.jstatsoft.org/index.php/jss/article/view/v005i08/ziggurat.pdf
(George Marsaglia)
https://www.jstatsoft.org/article/view/v011i03/v11i03.pdf
https://dl.acm.org/doi/pdf/10.1145/355744.355749 (Walker)
https://www.encyclopediaofmath.org/index.php/Generating_random_variables
https://blogs.mathworks.com/cleve/2015/05/18/the-ziggurat-random-normal-generator/
https://stackoverflow.com/questions/218060/random-gaussian-variables
https://math.stackexchange.com/questions/2429125/generate-random-variable-with-given-pdf/2429191#2429191
https://math.stackexchange.com/questions/1427288/how-to-sample-a-binomial-random-variable
https://math.stackexchange.com/questions/1722835/simulate-a-random-variable
https://math.stackexchange.com/questions/2321370/simulation-of-asymmetric-double-exponential-distribution?rq=1
Calcolo distribuzioni
https://math.stackexchange.com/questions/202554/how-do-i-compute-binomial-coefficients-efficiently
https://math.stackexchange.com/questions/3460756/can-a-binominal-or-multinomial-coefficient-be-computed-efficiently?noredirect=1&lq=1
https://cs.stackexchange.com/questions/48669/how-to-improve-the-binomial-algorithm
https://www.lexifi.com/quant/efficient-simulation-method-poisson-distribution/
https://www.jstor.org/stable/2686033?seq=2#metadata_info_tab_contents
Select/Switch
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/select-case-statement
https://stackoverflow.com/questions/252489/why-was-the-switch-statement-designed-to-need-a-break
Enum
https://docs.microsoft.com/it-it/dotnet/csharp/language-reference/builtin-types/enum
https://docs.microsoft.com/it-it/dotnet/visual-basic/language-reference/statements/enum-statement
Modificatori di accesso
/
Livelli di accesso
http://www.binaryintellect.net/articles/255f31ac-a304-4063-ad2d-93a790417f3c.aspx
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/declared-elements/access-levels
______________________________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi/venerdi
14-15/5/2020)
58- Video: Introduzione ai
modelli con Mean Reversion, Ornstein–Uhlenbeck aritmetico e geometrico
(58_Ornstein_Uhlenbeck_Vasicek.mkv)
https://drive.google.com/open?id=1Wo-s1Q3MfvYaGJld6tsgC3QrPNnM9aem
59- Video: Introduzione al calcolo del PNL (order
matching) (59_PNLComputation_1_LotMatching.mkv)
https://drive.google.com/open?id=15FtDoD-2JkDT1M-2f_Y3s70T5HAhwVKF
60- Video: Calcolo del PNL per sequenze arbitrarie di ordini. Lot identification
method. Esempi implementazione (60_PNLComputation_2_Programming.mkv)
https://drive.google.com/open?id=1gQZtMcHtyTvXvCVeYs1zC4TW9MBOxChg
-------------- Video opzionali (help per esercizio 3) -------------
60- Video: Optional 1 - Help per Esercizio 3 - 1/3
(60_Optional1_Esercizio3_Part1.mkv) [fare l'esercizio prima da
soli]
https://drive.google.com/open?id=1NZkfnqsCMKDkzQ8htXq1cNUz-tUD7dDK
60- Video: Optional 2 - Help per Esercizio
3 - 2/3
(60_Optional1_Esercizio3_Part2.mkv)
https://drive.google.com/open?id=1EGOKveLBXhfE5UuKta3VYmCcIQI_IavP
60- Video: Optional 3 - Help per Esercizio 3 - 3/3
(60_Optional1_Esercizio3_Part3.mkv)
https://drive.google.com/open?id=1VdYXP1qgooYPCDA79ePgJTu_o3wUb1rBu_o3wUb1rB
----- Video extra opzionali di esercizio base programmazione (sul tema della
ricorsione e algoritmi Divide & Conquer) ------
48- Video: Optional 1 - Product splitting
(48_Optional1_Ricorsione_Fatt_2_ProductSplitting.mkv)
https://drive.google.com/open?id=1Cf212GIkctBzBBjs11EpSmua1Q6xaomn
48- Video: Optional 2 - Odd Product splitting
(48_Optional2_Ricorsione_Fatt_3_ProductSplitting.mkv)
https://drive.google.com/open?id=1X1BeR5H-pz5I_i4eiTETJpuVHY8_YiWg
48- Video: Optional 3 - Binary splitting
(48_Optional3__Ricorsione_Fatt_4_BinarySplitting.mkv)tting.mkv)
https://drive.google.com/open?id=14WJ2sEsNhRp8LSnYfKOC-efYxMTFINvb
48- Video: Optional 3 - Hamming weight, popcount
(48_Optional4_BitCount_HammingWeight.mkv)
https://drive.google.com/open?id=1-_jlA9w4potK7U8a9k1H3oBKJf9eZmHZ
Ricerche per il blog:
44) Processi stocastici con mean reversion: Ornstein–Uhlenbeck
process, Dixit & Pindyck Model, Vasicek model, etc.
45) Scomposizione del PNL e concetto di matching degli ordini
(o lot)
47) Linguaggi: Breve nota di utilizzo sui componenti: Timer e Backgroud worker.
E sulla nozione di "extension method":
https://docs.microsoft.com/it-it/dotnet/api/system.windows.forms.timer?view=netcore-3.1
https://docs.microsoft.com/it-it/dotnet/api/system.componentmodel.backgroundworker?view=netcore-3.1
vb.net extension method
https://docs.microsoft.com/it-it/dotnet/visual-basic/programming-guide/language-features/procedures/extension-methodss
c# extension method
https://docs.microsoft.com/it-it/dotnet/csharp/programming-guide/classes-and-structs/extension-methods
Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
- Aggiungere all'Esercizio 2 sui Processi Stocastici, anche 2
esempi di modello con Mean reversion (uno per incrementi aritmetico, uno per
incrementi geometrici)
- Svolgere l'Esercizio 3 indicato nel video 60 di
calcolo/scomposizione PNL, e rappresentazione grafica del lot matching.
Esempio di processo con mean reversion (Processo Ornstein–Uhlenbeck originante da 0 con reversion speed 0.5 e livello di equilibrio 2)
Esempio di processo con mean reversion (GBM originante a 100, con reversion speed 0.5 e livello di equilibrio 300)
Esempio di semplice rappresentazione lot matching (ordini casuali) - Esercizio 3
Link utili
Ornstein–Uhlenbeck process, Vasicek model, Dixit & Pindyck Model
https://en.wikipedia.org/wiki/Ornstein%E2%80%93Uhlenbeck_processess
http://stat.math.uregina.ca/~kozdron/Teaching/Regina/441Fall14/Notes/L31-32-Nov19.pdf
https://www.biorxiv.org/content/10.1101/067363v3.full
https://www.jstor.org/stable/3318524?seq=5#metadata_info_tab_contents
https://www.vosesoftware.com/riskwiki/GeometricBrownianMotionmodels.php
https://www.sciencedirect.com/topics/economics-econometrics-and-finance/mean-reversion
http://marcoagd.usuarios.rdc.puc-rio.br/sim_stoc_proc.html#mc-gbm
(pagina di Marco A. G. Dias)
http://marcoagd.usuarios.rdc.puc-rio.br/revers.html
Lot Matching, tax lot identification method
https://www.tradingtechnologies.com/xtrader-help/fix-adapter-reference/pl-calculation-algorithm/understanding-pl-calculations/ns/
https://www.interactivebrokers.com/en/software/ibto/ibto/lotmatchingmethods.htm
https://www.krisan.com/understanding-the-5-matching-methods-in-portfoliocenter/
https://www.investopedia.com/articles/05/taxlots.asp
https://www.investopedia.com/terms/s/specific-share-identification.asp
https://novelinvestor.com/choose-right-default-cost-basis-method/
https://www.schwab.com/resource-center/insights/content/save-on-taxes-know-your-cost-basis
Divide & Conquer, Hamming weight
https://en.wikipedia.org/wiki/Divide-and-conquer_algorithm
https://en.wikipedia.org/wiki/Hamming_weight
https://bisqwit.iki.fi/source/misc/bitcounting/
https://appunti.fandom.com/it/wiki/Algoritmi_e_programmazione:Il_paradigma_%22divide_et_impera%22
https://it.qwe.wiki/wiki/Divide_and_conquer_algorithm
https://www.geeksforgeeks.org/divide-and-conquer/
https://en.wikipedia.org/wiki/Rate_of_return#Logarithmic_or_continuously_compounded_return
https://www.mcxindia.com/education-training/knowledge-series/methodogies/aav
https://onlinelibrary.wiley.com/doi/pdf/10.1111/opec.12007
https://www.investopedia.com/ask/answers/021015/how-can-you-calculate-volatility-excel.asp
https://en.wikipedia.org/wiki/Volatility_(finance)
______________________________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi/venerdi
21-22/5/2020)
61- Video: Esercizio 4 + Help su esercizio 4 - 1/4
(61_Esercizio4_Part1.mkv)
https://drive.google.com/open?id=1ErXwSDz7oiMH3nyjl5C-yCocr4DBf910
62- Video: Help su esercizio 4 - 2/4
(62_Esercizio4_Part2.mkv)
https://drive.google.com/open?id=1_e1G6mgLW99KZVNC9BPr4P8a3uoDxHFv
63- Video: Help su esercizio 4 - 3/4
(63_Esercizio4_Part3.mkv)
https://drive.google.com/open?id=1v1L6zTKlsOESOhzeaM92hbP7CAthYUvw
64- Video: Help su esercizio 4 - 4/4 (64_Esercizio4_Part4.mkv)
https://drive.google.com/open?id=1kFto9m810CUahWAbExK5F3faQEj-Mncl
Esempio di simulazione trading con calcolo PNL - Esercizio 4
Ricerche per il blog:
48) Moving averages
49) Bollinger Bands
50) Alcuni esempi di strategie di trading algoritmico utilizzate
Homework Homework (inserire nel blog il link al file zip contenente l'intera
soluzione)
-
Svolgere l'Esercizio 4 indicato nel video 49 (processo aleatorio + ordini e
calcolo PNL)
- Completare l'Esercizio 4 aggiungendo i 4 indicatori quantitativi indicati alla fine del video 52 (Running Mean, Moving Averages, Moving STD, Bollinger Bands)
Link utili
MA
https://www.investopedia.com/terms/m/movingaverage.asp
https://school.stockcharts.com/doku.php?id=technical_indicators:moving_averages
https://it.wikipedia.org/wiki/Media_mobile
https://en.wikiversity.org/wiki/Moving_Average
Bollinger bands
https://it.wikipedia.org/wiki/Bande_di_Bollinger
http://www.traderpedia.it/wiki/index.php/Bollinger_bands
https://origin2.cdn.componentsource.com/sites/default/files/resources/dundas/538216/Documentation/Bollinger.html
http://www.great-trades.com/Help/bollinger%20bands%20calculation.htm
Trading strategies
https://www.capitalindex.com/uk/eng/pages/trading-guides/different-types-of-trading-strategies
https://www.investopedia.com/articles/trading/06/daytradingretail.asp
https://en.wikipedia.org/wiki/Trading_strategy
https://www.ig.com/en/trading-strategies/the-complete-guide-to-trading-strategies-and-styles-190709
https://www.fxcm.com/markets/insights/different-types-forex-trading-strategies/
______________________________________________________________________________________________________
VIDEO LEZIONI E ARGOMENTI SPECIFICI (lezione di giovedi/venerdi
28-29/5/2020)
Ultimazione esercizi e ricerche prima dell'esame.
______________
Esercizio/Progetto di Esame (1 appello, giugno) ______________
Simulare i prezzi di uno strumento finanziario e creare una qualsiasi strategia
di trading a piacere che usi le bande di Bollinger.
Applicare la strategia
generando gli ordini e visualizzando il corrispondente andamento del PNL e del
Drawdown.
Nel grafico dei prezzi rappresentare esplicitamente i seguenti elementi:
-
Running mean, Moving mean (k termini), e bande di Bollinger (ovviamente basate sulla moving mean e la
moving variance) [naturalmente sempre formule del tipo Knuth/Welford che abbiamo
studiato per i calcoli di
medie e varianze.]
Infine, plottare la distributione dei returns relativi ai prezzi BID (o ASK)
generati. -
Consegna: entro sabato 6 giugno. Per la consegna, come al solito,
caricare su google drive la soluzione zippata e inviare il link.
Valutazione: Verrà discussa all'orale
Condizioni: Si può utilizzare uno qualunque dei linguaggi che abbiamo
studiato (C#, VB.NET) in Visual Studio.
Si può consultare e utilizzare liberamente qualunque materiale tratto da qualunque fonte
purchè se ne citi esplicitamente la provenienza e l'intero progetto sia comunque
nel suo complesso una
realizzazione personale e individuale.
Se però due progetti risultassero ovviamente fatti dalla stessa mano (quindi a
parte camuffamenti superficiali) saranno ovviamente entrambi annullati per la
sessione corrente di esami.
Gli orali per gli scritti sufficienti potranno iniziare fin
da lunedi.
______________
Esercizio/Progetto di Esame (2 appello, luglio) ______________
Data una sequenza di istanti qualsiasi, generare e rappresentare graficamente 2
serie storiche di prezzi X, Y utilizzando un generatore di processo aleatorio a
piacere (random walk, ABM o GBM, etc.) e calcolare e rappresentare graficamente
la nuvola di punti X, Y, le linee delle medie, il baricentro e le due rette di regressione di Y rispetto a X e
viceversa. Calcolare il coefficiente di determinazione R^2. Commentare
brevemente il risultato con considerazione personali. (NB: Per medie, varianze e
covarianze, usare sempre gli algoritmi di Knuth/Welford, come sudiato).
-Variante per bonus lode: Anzichè Y indipendente da X, dare la
possibilità di generare Y in modo tale
che, dato X, la correlazione teorica r, tra X ed Y, sia uguale ad un valore
prefissato dall'utente (in caso ricercare su internet come generare serie correlate).
Verificare che il coefficiente r empirico sia prossimo al teorico prefissato.
Consegna: entro 13 luglio. Per la consegna, come al solito,
caricare su google drive la soluzione zippata e inviare il link.
Valutazione: Verrà discussa all'orale
Condizioni: Si può utilizzare uno qualunque dei linguaggi che abbiamo
studiato (C#, VB.NET) in Visual Studio.
Si può consultare e utilizzare liberamente qualunque materiale tratto da qualunque fonte
purchè se ne citi esplicitamente la provenienza e l'intero progetto sia comunque
nel suo complesso una
realizzazione personale e individuale.
Se però due progetti risultassero ovviamente fatti dalla stessa mano (quindi a
parte camuffamenti superficiali) saranno ovviamente entrambi annullati per la
sessione corrente di esami.
Gli orali per gli scritti sufficienti potranno iniziare dal 14 luglio.
______________________________________________________
______________
Esercizio/Progetto di Esame (Appello, settembre 2020) ______________
1) Creare (o cercare su Internet) dei data set che enfatizzino al massimo
l'opportunità di utlizzare le formule di Knuth e Welford per il calcolo di
media, varianza, covarianza. Mostrando con simulazioni come in certi casi le
formule "naive" possano generare risultati del tutto incorretti nella
rappresentazione "floating point". Discutere brevemente quali sono le cause
tecniche di tali errori che possono sorgere utilizzando le formule naive e
illustrare, confrontandoli con diversi esperimenti al PC, quali siano le
migliori soluzioni tecniche per correggere tali problematiche.
2) Generare una serie storica di uno strumento finanziario simulato, mediante GBM con mean reversion su un prezzo di equilibrio dato, e applicare una strategia a piacere per generare e visualizzare gli ordini con rappresentazione a piacere. Calcolare e visualizzare con dei grafici sia il PNL corrente che il drawdown corrente con grafici a piacere.
Consegna: entro 13 Settembre. Per la consegna, come al solito,
caricare su google drive la soluzione zippata e inviare il link (nel nome del
file mettere il proprio nome).
Valutazione: Verrà discussa all'orale
Condizioni: Si può utilizzare uno qualunque dei linguaggi che abbiamo
studiato (C#, VB.NET) in Visual Studio.
Si può consultare e utilizzare liberamente qualunque materiale tratto da qualunque fonte
purchè se ne citi esplicitamente la provenienza e l'intero progetto sia comunque
nel suo complesso una
realizzazione personale e individuale.
Se però due progetti risultassero ovviamente fatti dalla stessa mano (quindi a
parte camuffamenti superficiali) saranno ovviamente entrambi annullati per la
sessione corrente di esami.
Gli orali per gli scritti sufficienti potranno iniziare dal 14
Settembre, ore 14:00, nostro gruppo Whatsapp.
______________________________________________________
______________ Esercizio/Progetto di
Esame (Appello, Ottobre 2020) ______________
1) Creare (o cercare su Internet) dei data set che
illustrino al meglio
l'opportunità di utlizzare le formule di Knuth e Welford per il calcolo di
media, varianza, covarianza in luogo delle formule naive. Mostrando con simulazioni come in certi casi le
formule "naive" possano generare risultati errati nella
rappresentazione "floating point" (specialmente a 32 bit). Discutere brevemente quali sono le cause
tecniche di tali errori che possono sorgere utilizzando le formule naive e
illustrare, confrontandoli con diversi esperimenti al PC, quali siano le
migliori soluzioni tecniche proposte per correggere tali problematiche.
2) Data una sequenza di istanti qualsiasi, generare e rappresentare graficamente 2 serie storiche di prezzi X, Y utilizzando un generatore di processo GBM per il primo processo, mentre la seconda serie storica venga generata con una correlazione uguale a 0.8 rispetto alla prima e calcolare e rappresentare graficamente la nuvola di punti X, Y, le linee delle medie, il baricentro e le due rette di regressione di Y rispetto a X e viceversa. Calcolare il coefficiente di determinazione R^2. Commentare brevemente il risultato con considerazione personali. (NB: Per medie, varianze e covarianze, usare sempre gli algoritmi di Knuth/Welford, come sudiato).
Consegna: entro 4 Ottobre. Per la consegna, come al solito,
caricare su google drive la soluzione zippata e inviare il link (nel nome del
file mettere il proprio nome).
Valutazione: Verrà discussa all'orale
Condizioni: Si può utilizzare uno qualunque dei linguaggi che abbiamo
studiato (C#, VB.NET) in Visual Studio.
Si può consultare e utilizzare liberamente qualunque materiale tratto da qualunque fonte
purchè se ne citi esplicitamente la provenienza e l'intero progetto sia comunque
nel suo complesso una
realizzazione personale e individuale.
Se però due progetti risultassero ovviamente fatti dalla stessa mano (quindi a
parte camuffamenti superficiali) saranno ovviamente entrambi annullati per la
sessione corrente di esami.
Gli orali per gli scritti sufficienti potranno iniziare
il 5 Ottobre, ore 14:00, nostro gruppo Whatsapp.
______________________________________________________
Strumenti utili in generale
Visual Studio: https://visualstudio.microsoft.com/it/downloads/
https://visualstudio.microsoft.com/it/vs/older-downloads/
Video Player VLC (in caso servisse):
https://www.videolan.org/vlc/download-windows.it.html
Notepad++ (per lavorare con file dati CSV)
https://notepad-plus-plus.org/downloads/v7.8.5/
OBS Studio, open broadcaster software: https://obsproject.com/
Catalogo corsi Sapienza https://corsidilaurea.uniroma1.it/it/users/tommasogastaldiuniroma1it