regressionLine ps = let
rval ds es
= ( avg
$ zipWith ( * ) ds es
) - ( avg ds
) * ( avg es
) val ds = rval ds ds
avgx = avg xs
valx = val xs
avgy = avg ys
valy = val ys
rvalxy = rval xs ys
a = rvalxy/ valx
b = avgy- a* avgx
in
( a, b)
dailyNewCasesInOsaka = [ ]
++ [ 74 , 52 , 55 , 88 , 40 , 85 , 54 ]
++ [ 31 , 35 , 31 , 29 , 16 , 30 , 32 ]
++ [ 44 ]
$ drop 0 dailyNewCasesInOsaka
patsAt a b x
= exp $ a
* x
+ b
april15 = 0 + 15 - 15
may06 = 30 + 06 - 15
main = do
let ( a, b) = regressionLine points
print $ "April 15th : " ++ ( show $ patsAt a b april15
) print $ "May 6th : " ++ ( show $ patsAt a b may06
) print $ "Lists of the expecred number of new patients from May 1st"
cmVncmVzc2lvbkxpbmUgcHMgPSBsZXQgCiAgICBuID0gZnJvbUludGVncmFsICQgbGVuZ3RoIHBzCiAgICB4cyA9IG1hcCBmc3QgcHMKICAgIHlzID0gbWFwIHNuZCBwcwogICAgYXZnIGRzID0gKC9uKSAkIHN1bSBkcwogICAgcnZhbCBkcyBlcyAKICAgICAgID0gKGF2ZyAkIHppcFdpdGggKCopIGRzIGVzKSAtIChhdmcgZHMpKihhdmcgZXMpCiAgICB2YWwgZHMgPSBydmFsIGRzIGRzCiAgICBhdmd4ID0gYXZnIHhzCiAgICB2YWx4ID0gdmFsIHhzCiAgICBhdmd5ID0gYXZnIHlzCiAgICB2YWx5ID0gdmFsIHlzCiAgICBydmFseHkgPSBydmFsIHhzIHlzCiAgICBhID0gcnZhbHh5L3ZhbHgKICAgIGIgPSBhdmd5LWEqYXZneAogIGluCiAgICAoYSxiKQoKZGFpbHlOZXdDYXNlc0luT3Nha2EgPSBbXQogICAgKysgWzc0LDUyLDU1LDg4LDQwLDg1LDU0XQogICAgKysgWzMxLDM1LDMxLDI5LDE2LDMwLDMyXQogICAgKysgWzQ0XQoKcG9pbnRzID0gaWQKICAgICQgemlwIFswLi5dIAogICAgJCBtYXAgbG9nIAogICAgJCBkcm9wIDAgZGFpbHlOZXdDYXNlc0luT3Nha2EKCnBhdHNBdCBhIGIgeCA9IGV4cCAkIGEgKnggKyBiCgoKYXByaWwxNSA9IDAgICArIDE1IC0gMTUKbWF5MDYgPSAzMCArIDA2IC0gMTUKCm1haW4gPSBkbwogICBsZXQgIChhLGIpID0gcmVncmVzc2lvbkxpbmUgcG9pbnRzCiAgIHByaW50ICQgIkFwcmlsIDE1dGggOiAiICsrIChzaG93ICQgcGF0c0F0IGEgYiBhcHJpbDE1KQogICBwcmludCAkICJUaGUgYXZlcmFnZSByYXRpbyA6ICIgKysgKHNob3cgJCBleHAgYSkKICAgcHJpbnQgJCAiTWF5IDZ0aCA6ICIgKysgKHNob3cgJCBwYXRzQXQgYSBiIG1heTA2KQogICBwcmludCAkICJMaXN0cyBvZiB0aGUgZXhwZWNyZWQgbnVtYmVyIG9mIG5ldyBwYXRpZW50cyBmcm9tIE1heSAxc3QiCiAgIHByaW50ICQgW3JvdW5kICQgcGF0c0F0IGEgYiB4IHwgeDwtWzE2Li4yMl1dCiAgIHByaW50ICQgW3JvdW5kICQgcGF0c0F0IGEgYiB4IHwgeDwtWzIzLi4yOV1dCiAgIHByaW50ICQgW3JvdW5kICQgcGF0c0F0IGEgYiB4IHwgeDwtWzMwLi4zNl1dCiAgIHByaW50ICQgW3JvdW5kICQgcGF0c0F0IGEgYiB4IHwgeDwtWzM3Li40M11d
stdout
"April 15th : 68.97613696989895"
"The average ratio : 0.9316696264403739"
"May 6th : 15.60269248285008"
"Lists of the expecred number of new patients from May 1st"
[22,21,19,18,17,16,15]
[14,13,12,11,10,10,9]
[8,8,7,7,6,6,5]
[5,5,4,4,4,4,3]