Smoothing an irregular TimeSeries and calculate it's Derivative

I’m not very experienced with this part of Mathematica so please bear me.
I’ve a data set consisting of two columns, the first column is a date and the second is a numeric cumulative amount. I tried to create a time series, resample it and smooth, but I couldn’t manage to smooth it enough. I’m a noob with Mathematica. Can you help me to understand what I’m doing wrong?

enter image description here

data = Import[
    "https://1drv.ms/x/s!AiF0MVfYzFaAi3cO044kGlJW0Oam?e=Mt7qTv"][[1]];

data2 = data[[2 ;;, {1, 2}]] 

DateListPlot[data2]

ts = TimeSeries[data2, 
  ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}]

tr = TimeSeriesResample[ts, "Day", 
  ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}]

MovingMap[Median, tr, Quantity[3, "Months"]]

quotient[values_, times_] := 
 First[Differences[values]/Differences[times]]

mm = 
 MovingMap[quotient[#BoundaryValues, #BoundaryTimes] &, 
  tr, {.1, Right}]


DateListPlot[mm]

Crossposted here.

Duke:

I’ve been doing a bit of resampling lately. Though, oddly enough, my use case requires the resampling method that you are using. To get smoother, I suggest you try other ResamplingMethods.

Here is what I’ve learned from my use case:

{"Interpolation", InterpolationOrder -> 1}

Will give you a straight line between our observation points.

{"Interpolation", InterpolationOrder -> 0}

Will give assume that the observed values remain unchanged until your next observation. This gives you a stair step curve.

As I understand it, if you increase the InterpolationOrder, then you will start using curves of the order specified as opposed to lines.

You might also want to try other “ResamplingMethods”, but there is a good chance you just need to increase your InterpolationOrder.

I hope that helps.

Have a great and safe weekend.

Thanks, I will try with some different values.

That Import gives me an empty string. Perhaps you could add the x-y pairs to the post, or put them in a notebook and attach it to the post?

Uncompress[“1:eJyt3X18z/X+x/
GNZW1yEXMZIxTCmQo158y4TWd1cJOcJBwHHXN9tS1XuUgsJFfH5awlNpMw5SLDiCWUVY78
LEWZ63CopJJz8vu+njvdvuff83rYH27cbrjfPp/v5/O6er8/n++9/
UY8lTS2dEhISlhISEjHQSmpSaVC/vtP9puUyMAv7fum9u/cb3D/
51KTyvz33xj0dXhIyKDQkN9+Cfntl+SQ//x0DfyFkCeGp6T2HZ7aNSLw+8Tk/gNGJA/qO/
y3v9K25De7e+wGegWoHxpP9CpQz5tA9Hv8+rL0wE/
oZKLX9utpl7rkRX8zhejRUJ85leh1/HpkUdbIuD9Pc+
r2j8gdJ30C0ktBvVYa0UtDvT3Sw6A+FOl3QH3zDKJX9Osj4wL+90iv6tcNHxkzk+jV/
LoFm7SJSK/p16NyE4vHZ3t13Wwg2khv8CrRwf0u/
QzSwf0esKNyi2YTvZxfNzwxdA7RK8Ez3xHp4H5XtLlzLtHBHacz3xjpoLKS3gXpoLKSPg7
poLKSvsWr61YHsa7X3ILrjSrMIzqIdQ/bz6NIB9WF9I5IvxPqqUiP8OuBT73X3BlIj/
TruubfQfpdfv3jwsDPMaTTHFdhPtHLw6uuAdLB7CLamtjyfyc6qOenWVHbCel3+3Xl9+
lIj/LrSfaTi3QwNZLeZgHRaWU1Aemgk5I+D+nVoZ6HdDCvUw+7YxHRa0H9J6SDmlb6/
sVEBzWtIu09S5y6iirQRUqPR3oZv25D4vQBSA/36+
qgJyIdVJXS5yO9LNRXIR3UdYp1M5cSHWRY3e+vIx3kuCw7+GtIB1lGeoV0otfw61ZQF/+
IdJDjpEcuIzrIMjamvRTn1RVkwcpIIxsfjEQ6yDLSpyEdTA9u2c9BpIM4Lz0hg+
hgerDeAn0PpIPpgfq42UgHWaanTcx2Ix100NKPIB100A/
Z9CD8NaKDDlp6YibRweqA9INIBxlW+
k2kgwwrvcLrRAdrE9KnIx1k2K3WzBxCOujjllovc2C5U1cbA1YHrLj4R+
wbRAfVhfROSAdrE9LrrCA6qC6yAxX1MwlIBx209hr1RjpdGRmIdFBd/
Ghl5R6kg9WBy1bQ/x/SQXXxuTVyV5EOqosHrJ6/
hXTQQVsDXz9yJdFBfq8buOUebYR00MNut1g3FZ15MKeVvhPpIL9LL43OPMjv0st5dQVZMK
+THod00ElJ7410EGmlJyMddBN2v+cVIR2sx0m/inQY6/JaZhEd9DLS45EOIu0qq+
vy0ZkHkVZ6IdLBTifp0d4zr3EVqOelpyIdzCqlT0I66Cak5yAd1PPSLyM9AuoPZBMdZFjp
bZEOclxZ2z+
fiHSw12iUVdRDkQ56GekvIh30MnbiI99HOpiUSv8Y6aC2seHBHUeRDvo4rYzUXEV0kN8Nn
zwZHTvI77Yy8no20kEnJX030kEnFRG46HeW9n7uGhiBWaX0e5EOahvpDyId1DbSY5EOahv
pCUgHk1LpzyAd1DbS+yIdVBdah12OdFBdSP8S6aC6sHWZGj8jHfTv0qvmEB3saF1nq/
91kA5WA6XHIR3k99o2p52HPneQ3x+0lZGtSAf5XXpt75lXEwUyrPT7kA4yrPQYpIMMK/
0JpIMcJ/1DpIf79Uq5icW/XFxNdNC/329rUqFvEh1MyKXXQzroIqW3RXplv/
6S5fdnkQ5280pfhHSQYWvZjDoD6WA+L30b0kF+l74H6SC/
z7YHI8cgHfSw0t1XnQIN2O0jfTXSQYaVXgXpIMv8LSkp6dzvvFlGOujjpD+
EdLDjRfpwpIM+bon1MtlIB32c9IFIB7NK6ezMgywj/SWkgzgv/VWkgzgvfbyjpj0Z/
luQBbFO+nakg4nZv21GvQLpoJuQvgXpIM5LP4V0EOelX0Y66CZuw7GDOG/6rUqO+
z2og26ieaCF3VQD6aCbkN4M6WBaKL0D0kGOk34Q6WC3j/
RjSAc5TvpppIMcJ70h0sGs8prto+7o1TUoBL2M9O5IB/ld+
mtIB9NC6XuRDvJ757zotCFdHX1cUAd7jaTPRTrI79LPojMP+
jjp15EOJqXSH0RnHtQ20j9Axw52+
0hfhHQwp91iO5mnIB1UF9LnIx30sCtsf91jSAfVhfSnkU476CXeel467aA7OdYigzpYi5T
+tFenb4iVPgjpYCVU+jik09nFVaSD6kJ6Ne81Lx1MD6Q3RjqoLqQ/
j3SQYaUvQDqd04Z6I610kN+lV0E6yO/S+yK9EtQ9M+
qgDiYn7ilxUKcT8mxvTSudZtg30R0H1iJt18emHt4zr/
YV5LiDhYWFHYciHXTQ0l9HOpjPS89FOshx0g8hHXSR0t/03nHSQY6T/
jnSQY6Tnod0EOeln0I6mM9Lv4B0kGVWWh9XYw3RQQctPQfpYLeP9MNIBz2s9O+
RDjKs7SVeOAvFOtDDSs/w6kowoIcdF5Wb2PcA0kF+l34F6aCHld7KG23o23Er247W+
kgH1YX0/kgH/bv06UgHE3Lpnv11QR3UNtI9uzqDOnhaR3pnb6SVDmob6aFIB/279HCkg/
5degzSQV0n/Sekg7pOepO3iA4qK+m/
RzqYHkgfh3RQ10kvi3SwMiL9GaSDqlJ6SxRpQVVpb8ddONWrK7mCuk56OtJBZSX9Q6SD2k
b6MaSDyYn0b5AOdj5I/xbpIL/rjdCVvVlGOsjv0t21jXSQ36XXRzrIsNIbIh1MTqQ/
h3QYaaMGeLtI6WCHm/
StSAfzeel7vLrCHMwyUbW90UY6jPNR7r1G0mGcj0pBegTUi5AOeljpsd66TjqYz0tPQDrN
cR8hnea4I0inWeZ7pINuQnqVtUQH3YT0nkinOW6/
N8NKBzlujj2V6Y42KmdBlpHunpxIBzNq6e2QDjop6fORHubX9Ra1CkgHOU7v9qmGdDAllt
4a6SDDnrQvlOqBdJDjpA9GOphVSs9DOshx0k8iHXRS0pORDmaV0o8iHcwqb8Oxg/
wufSHS4RsjbyWgDAvWoKW7p4XSQQ8rfSvSwfuopTfxfu5Kb6C6kB6PdPrtde6JmXSwCix9
KdJB/y4933vVSaff3HcOHTuorKTfRDqorKRP9HaR0sEKuPQO3j5OOujfpT+
LdLASWqKjM0/fyTwC6aC2kT4b6aC6kH4a3XG0uijt1XWrg/5d+
n1Ipxk2Aem0g56OdJrjMpFOc9ynSKdZ5t9IBzNqeydz3AlvdSEdvGVFunuflXSwEiq9AdJ
B/y69FdJB/y69G9JBfpf+OtJBfpe+G+lgeiC9qje/
SwdrE9JbIx1UF9IHojMPqgt9G3WRdw1aQ1JQXUh3v12Hvo9auvttG/
R91FodqOTNMvR91NJrIR1UF3pmpB0682A+
L70L0kGGlZ6CdJBlfrU3yLmfl5EOsoz0TKSDLlJ6DNJBjpPeCekgzkuf7n3ng3SwBv2kvV
1nl1enb0WWHuJ9Cls6yDLS70M6yDLSWyIdTImlz0KfO+igpWcgHazDSl+LdDCrlP4+
0kGcl/4Z0kFFLX0E0kGklR7j+
K7MoA5WxOwd7MffdujF4b8FWfj++eO7kQ5qWulHkA7W46RfQDqoqKWXcXxzX1AH0Ub6UnT
soKKW3gLpYHqgen6A4xuZgzqINtJPvOHUVdaA+116sxVEB5WV9PfQsYPKSvpnSKcddH+
kR0B9KtLB6oD0JUgH83npW5AOIm374vFRuT8uJzp900gNdOz0TSONkQ4irc78u8uIDjpo6
V94dfq2TOk9MogOIq30AqSDHlb6RaSDOC+9zGtEB/
ttpFdFxw7W40p0dM2DSan0X5cSHcwqpddMJzqI89JfWUJ0UFEPi4ssyiqLzjyI89IrLyY6
iPPS05AOpgfSq3h1te4g0kqPQzpYFbrQJS86LQTp4KqTHjWf6OCqszfAd0n26vRNYtKHIx
3MbQbbVXd8BtHBlFh605lEB5MT6anTiQ6u+SP21EbsJKKD5yYWpAd+
Kr9IdBBp77dvZN7vPXYFWVDPSz8/kehgXUZ64liik29kNn0J0kFFLX3M80QH0Ub6M8lEB/
V8n8DtXvx9X6KDNakeehL5KaKDel76hmeJDiYnSwsDP6/+
leggzn9heuHYtkAHtY30u7y6whyItNLzRxMdVFbSmyI9DOqXU4kOugnpvZAO5jbS/
5VCdDAhlz4Bfe4gx5Uc+/NEB/
P523DHgR3s0l9D0QbMrKTXQjrIMh0CzcTIVejMgyxzf6CJzOs3heggy0h/
yKvTt6xIj0Q6yDKvWF3X4wWig0gr/fB4ooNIK/
0ppIP7XfrKcUQHd1zJmUefO7jjbtrErAM682B6IL2sV7f/
lNzvhwPNxNwy3jgvHdzv0nPGEB1UldLPjSI6mBZK7+atbaSDmrZE91aV0kH/
XnLVIR1UF9L3oc8dxDrpi73dhHQQ6xJsbhOPdBDrpFfw6kquINpIX+
793KWDvQclZx7pINa9nBT4uTKM6CDWlehDiA5infRJSI+A+
leDiQ5m1CttbeKRqUQn36VlevhLRCf7aU3v7O1lpJP9tKZXm+nU6ROpS21K/
Hwa0UGskz4M6SDWSV81jegg2kj/
wHvHSQcrYiXH7r3j6NO40rd47zjpYF5Xcs0jHayINbfJyS+TiQ52896G+
x1MD6SvR7EOrIh1tD1muxYRHexwk957MdFBlpG+
GB07eGej9GivTp9Ilf7DQqKDLCN9AtJBRS39+
AKigxwnfTzSQY6T3g2debC7r0ZuYvH4B5EOIq30O5YSHex8kH5zOdFBnL+rKGvkztAV/
7t+ynT6RKr0j98gOqjnpe9AOoi00tOQDqpK6d8gHfTv0k8gHawKSR+ErnlQ00q/
hnRQ00qfvJLolaCegHSw+i+9chbRQZyX/
nwO0Wmcf2c10cHUSHrRGqKDCbn0nUgHe4mPZY2MeyXHqyu90QybgnRQUevY33mT6KCilj4
d6aCilt4ZnXmQ36UnIh1MyKXfh3Sww036ZfS5g/wufQbSQX6XXhHpYG1C+jpvlpEO+
jjpc5AO8rv0o+uIDtbfc/T0/
XqigxVw6UO8x64mCvRxOvOPIp3muOZIpzkuDek0x3VFOs1x+
9cSHfSwKXGRRfXzkQ4ybNvIoqxvy6IzD1aFpB9Bxw4yrKLNQqSDHlbH3h/
poIeV3hPpIL9Lv/gW0UF+lz7PW1VKB/ldV12bDUQH/XtJlkE6qC6kv4R0sB4nvRXSQW0j/
QGkg9mF9K9yiQ7WIqUXeHX7E1kNlP53pNO6rgfSQW2j6uJFpIMJufSFSAergeVsZrXC28t
IB9OD1RbnByEd1DbSeyId1DY6852RDmob6VWRDvL7y5e65PUu2kh0kN/
rpl3qMvYw0kGGlf4h0kGWsTP/1WSvTt9vI/2vSAerwNIXIx1kWOnuz106mB5c7pIX/
Vge0kGG1bGvRTrIsF3zotPW5iAd9O92v/88CulgRm3H3iQT6SDLSC9AOuhhpd+
5ieggx0n/dCvRQY6TPhPpYA1a9/
t3SAcdtPQzSAc9rPRDSAc97LbotEt3b0M6qC4sy3wQlkd0sPovvf02p66FAbD6r8+
9DdJpbfMA0mlt85H3c5dOns4zfR3SydN5pq9EOqisVF2kIx1MD6SXQ1cdWJdRFxmJdFDXK
cNORTqYHkgfinRQ160aGRdZrSfSQV0nPR7poK6TfmIn0cHTOp8UFhZ2XId0UFkNtGeBVyA
dVFbS53t1Nc8gv0ufiXSQ36X/Bekgv0vvjnSQ36U3RzqYUZt+
rj7SwXuJM9LT02s8hHSQZaZbbVMP6SDLSK+AdNBB32tz2kikgzg/r+B6o/zM3UQH/
Xu2dn0gHUzITS/qh3TQQTNdpTyIdfYV6K/0RjroZaQ/
iXTQy5geORTpYFI6yt4APwjpoKo0vX7jAqKDaGOP/u+
qgnRQ10mfsYfo4H6XvgPpYGJmepttXt3+
U1JV1gnw3bciHVSV0tcgHUQbmxauykY6mJxYlvmpDNLB3kLTxzRCOujf86LTLs2vjnQQ6+
wrVvKmIR1UVtMC+KSJSAf9+23QQaQ1/dchXl0LwKB/vxi43892RjrY+
bDHvnLhEaSDTsr0Ea2RDmqbhr3mFixqiXTQx309Pip3/
wKkg2hzrVGvuafGIx3c77dBB7WN9Klenb5BzvR+yUgHfZyOfTbSQW0j/
QOkg2hTK5BhPy9AOqgu3rUEX9vby0gHsU56TaSDaPORfc1IKNLB3KZSbmJx6xvocwddpPS
LSAe1zXCbHpxFOoi0axOLx7c47dXpm8Skf4J0sLvP9M27kQ76OOkZSAerA9LHIh3EedN/
GIV0EOveC9S0FUp5Y510EOukn3Ec++nwEP42LdM3FCI9HOq5SAdPbUh/
FelgReyeQHqv7plZBXVwx42Jyk0M/RTpoLYxvd0Nxx0X1MH9/
lYg2vz5CtJBdSH9ENJBdWH6Dwe9ugINiDbSNyMd9DLSZyMd5PfboIP7vWKgpt2ehHTQSUm
vtpfoINqY3ro90sHUSHos0kGs+y7Qv6+sh3RQ20i/9T7RQaR9Zm7B9Td/8er0/
TamXziNdLD+/krB9UZ/2I50sNPpW5uYbUE62E+rY9+IdFBVmp4/
Dekg1unYcz8gOliTWmP9ewHSQbSRvgPpoLIyffMmr66hCViT0rFvQDqIddKHIB3sPTg+
Pip3wCCkR0A9A+mgqpQ+B+
nguQnps5AOsoz0GUgHcd70832RDqYHowMd9J7uSAfdhOmh3ZAOKmrTp7x4gOigorZ6vmYK
0kGGtS6yxQikg1Vg0zcPQzqcnLQYinQ6OYlBOliXkd7Uq2v5GVQX99m+i9pIB/
nd9Crf7Cc6WH/vHujjDpxBOsgy0j9EOojz0vchHUyNpC9EOuikpBd/
RHQQ52Mji7KaH0Q6iLTL7cmFbUiHnVSLLUgHz/5LX+
PVNbIBsW6o7d6fjHQQ62rajtbRSAfdhPRkpINIK30Y0sEzI7MKrjeqNRDpYPX/+qTB+
dm9kQ6yzK2nyzcr1QPpIMv0z09dMLAr0kGWkd4Z6aCXGbmgetgfx31CdNBNHL0xaXDTUUg
H08LER2a2mzcE6SDDSu+OdJBhs/Z1eCT9T17dADItnNauz9k+
rZEOMqz0h5AOMqz0ckgHq0KmnwxDOlh/71K+2cb1Fz4mOtjdJ/
0g0sGc9tLqfR3270U6qKxMT9yJdFBZmR6eh3RQWc2tHtbt1zVIB3Paxhszry7JQjqorB6e
2a5Py9eQDp4NtOoiaSrSQV1n+rkXkA7qurwn7ip1rfw/
iA7quriWvbeHVkI6qOtMX1ER6aC2MX1PJNLB9ED6j4ecupIrqG2yMvbWHXsF6aC6MD3vIt
LD4bGfRzqobaS39l51gkFtozP/MNJBllmfPHD+9Rikg0grvepnRAeRds4/
J8QPi0A66GFNXx+
NdNDD7qn7dvKLNZEO4nzD6VWPJUUhHazHmZ7z7mGnbv8p6aAvTohvuW8T0kGWefL0qox1m
UgP8+vrAvd7lWVIB/27fe5/
XIx0kGGlFyMd5LivV2Xsffw40kGOM33G50gHHfRjd5Vq0vko0sFOp7HxLXu/
dBjpoIfdmrqg+plPkQ6qC9MbFCIddJGVw7qVn30A6WCn0/rMq6vvH+
3NcdJBbdPIZhdJSAddZPysoefL9kE6qC7ePjB619edkA6qi6oxJxrktPXqCrJgt8/pm2u+
S26FdFDbTFyUMKvjw0gHtY30OkgHtU3vit1jo9z1vHRQ25h+
5B6kg9omedfymhvcfZx0MD0wPaYS0kFl9XmDMlNaVkR6BNO3lEY6efN/
mSmLEsKRTr5TKaCXvuHN79LByojO/LdIBysj0v+
JdLDnxPTrl5BOvk8qdvOBVheQDlZGpJdB1zyoaV8eev7moOZIJ9/
YaHpTpIOK2vTGdY4QHVTUpwKV1cqqSAd7SqVXQjqYVU4IVFb5FZEOZpWm/ysXXXWgm5D+
FtJBN6EzPwzpYEXM9AkDvDp9d5/O/
HNIBxW19BFIB1Wl9KFIB3Vdi80HRl9xTw8Eg9rG9OGxSAcTM9NzWyId5Dgd+xGkgyxj+
u8+RDqYGumqO4V0kON07Ju8usbTINYtqxlzInsV0sHkpErMiQbnZiMd9LCP96vYPf1VpIO
1CdNvTEQ6WB2QvgHpoId9IZBlmi5COojzphfOQTroYe3M12A6yDKmPzsL6aCDfn/
0ruXLKiAddJF/
qdg9dlp5pIMMa3r700gHXWSbWYEm9qhDP2O6FgZAnJdegPQwqO9BOqjnTX9hK9JBPW/
6jmykgwyrM/
8G0kGOK9s9dvOdy5EOcpzpMzxrkUEdRFqbWUX0RDqYVf605rvDnTojHcwqB56/
uaY4Hukgy0j39HFBHWSZUlMWJfzesw4b1EGWsRXw+JuOCXlQB52U6e/tQscO5nVaf3/
Bq6uFA33c3kBl9Usy0kF+
lz4F6SDD6llgduZBN1FY78sb5T0Ts6AOugnT5zyJdJBl7InUQx2RDrKM6SOZDuK8dHe0kQ
73WTX09O9BHUTak4fqfXmslmNdRroCDdhrZHr6F95jlw66iYur93UYsx/pYGp0G3Qwn6/
95Y1Jf9qBdLDv4snyzTbW3oZ0UM+
vy7y6OsczLQzqIMuMG5yfumkG0sHUyHa0dpqGdPL9cR0emRl6P9JBNzGneli3K54dbkEd1
PM9zx6ql3EvirQgy5je07P3IKiDVSHpntX/
oA5WhSzDJoYjHWRY5fdQpINepsDuuBvomgd7D0wv/gnpYO+BdHeOU2EB+rhegWt+
7Xakgz5O+rdIB5WV6U0uIR3sJf5x0uD8MM8qcFAHc1rpJ5EOJqWmZx9DOqjrim5MGvwHz9
6DoA7qOumHkQ7qOtPz2R0HOuik/NQFj3rWpII6qKyks6sO9O/SB3szrHRQ25j+
83NIBzsbpQ9BOqgu0q+u3teEHTuoLmxiFt3Lq2tMCfK79CeQDjKs6b1LIx3MaW1i9sYt7/
0uGGRY00+6a1rpEUyvex3p4ElknXl3lpEOqgud+ctIBxlWx34e6SDHSXdXlfR91Kb3aY/
ud5DjdOz1kA7fllm3IdJBjpNew6urjQETcp35ykincT4E6TDO1z3hveOk02jjntNKB/
d78aF6X8a6J2bSwR1n+
rbHvXo4vOqi7K0LCUgHV53pH8cjHawKSY9FOuigTe9003vNSwcr4Dr2a0iHK+
Ah3yAdroCHnEU6iDbWx92MQlcdWBmxzz3ubqSDWJebeXX10SlIB9WF9GSvrjAHeljTF7sn
J/R9laZ3a4N0kGVMbxWHdNBFmv7ug0gHXaTpo90VtXQQ53Xmo5EO4rzOvLuilg7ivM78d9
44Lx30sNLdPSx9W6b0g0gH67DStyAdZJls+
86FFHTVgSwT2Wxj5q2BSAfrsKZPfsCrK8iCLCO9GtLD4Zkvh3QQ53XsnvddBHXQQevYWyO
9EtPjmx1p+/+lj2rO”]

would work?

Here comes a simple approach using MeanFilter - I personally like this function because it preserves the values of the “x-axis” i.e. date values. Maybe this works for you (let data be your data from above):

ts = TimeSeries@data;
mfts = MeanFilter[ts, Quantity[4, "Weeks"]];
deriv0 = Differences[mfts];   (* quick and dirty method! *)
deriv1 = MeanFilter[deriv0, Quantity[4, "Weeks"]];
DateListPlot[{ts, mfts}, PlotStyle -> {Green, Red, Blue}, GridLines -> Automatic, ImageSize -> Large, PlotLabel -> "orig. values and smoothed values"]
DateListPlot[{deriv0, deriv1}, PlotStyle -> {Green, Red, Blue}, GridLines -> Automatic, ImageSize -> Large, PlotLabel -> "(deriv. of smoothed vals.) and (smoothed deriv. of smoothed vals.)"]

Thanks Henrik. I had not learned the MeanFilter[] yet. It will likely help me in my next project.

Thanks, this is really what I was looking for

Dear all,

in my code above I calculated the derivative like so:

deriv0 = Differences[mfts];   (* quick and dirty method! *)

and yes - maybe this is a bit too quick and dirty! But TimeSeries has a lot of nice properties to offer: E.g. “PathFunction” gives an InterpolatingFunction, from which easily the derivative can be calculated:

Plot[mfts["PathFunction"]'[t], {t, mfts["FirstTime"], mfts["LastTime"]}, ImageSize -> Large, GridLines -> Automatic]

Here the abscissa is in terms of AbsoluteTime, i.e. the number of seconds starting from 01.01.1900. Consequently the unit of the derivative is (unit of your data)/seconds.

This then can be resampled (here e.g. in 3-day-interval) and converted back into a TimeSeries for further smoothing:

sampleDates = DateRange[FromAbsoluteTime@mfts["FirstTime"], FromAbsoluteTime@mfts["LastTime"], Quantity[3, "Days"]];
deriv = TimeSeries[{#, mfts["PathFunction"]'[AbsoluteTime@#]} & /@ sampleDates];
derivSmooth = MeanFilter[deriv, Quantity[4, "Weeks"]];
DateListPlot[{deriv, derivSmooth}, ImageSize -> Large, GridLines -> Automatic, PlotStyle -> {Green, Red}]

This definitely is a cleaner solution. Regards – Henrik

Consider the answer to the same question posted on MathematicaStackExchange which uses kernel regression.