Commit b1342638 authored by François Févotte's avatar François Févotte

Ex 04-1 : analyse Challenger en Julia

parent 7ad30490
# This file is machine-generated - editing it directly is not advised
[[AbstractFFTs]]
deps = ["LinearAlgebra"]
git-tree-sha1 = "051c95d6836228d120f5f4b984dd5aba1624f716"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "0.5.0"
[[Arpack]]
deps = ["Arpack_jll", "Libdl", "LinearAlgebra"]
git-tree-sha1 = "2ff92b71ba1747c5fdd541f8fc87736d82f40ec9"
uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97"
version = "0.4.0"
[[Arpack_jll]]
deps = ["Libdl", "OpenBLAS_jll", "Pkg"]
git-tree-sha1 = "e214a9b9bd1b4e1b4f15b22c0994862b66af7ff7"
uuid = "68821587-b530-5797-8361-c406ea357684"
version = "3.5.0+3"
[[ArrayInterface]]
deps = ["LinearAlgebra", "Requires", "SparseArrays"]
git-tree-sha1 = "5f34aee5e5dbc1ce5cfb137d63f719a64d98ae82"
uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9"
version = "2.8.5"
[[ArrayLayouts]]
deps = ["FillArrays", "LinearAlgebra"]
git-tree-sha1 = "f8904599065b57f51715faf6278126f853aef6fc"
uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a"
version = "0.2.4"
[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
[[BinaryProvider]]
deps = ["Libdl", "SHA"]
git-tree-sha1 = "5b08ed6036d9d3f0ee6369410b830f8873d4024c"
uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232"
version = "0.5.8"
[[Bzip2_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "3663bfffede2ef41358b6fc2e1d8a6d50b3c3904"
uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0"
version = "1.0.6+2"
[[CSV]]
deps = ["CategoricalArrays", "DataFrames", "Dates", "FilePathsBase", "Mmap", "Parsers", "PooledArrays", "Tables", "Unicode", "WeakRefStrings"]
git-tree-sha1 = "8fe77a5478781d59a9ba17f0ac47dda2be5f8ae7"
uuid = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
version = "0.6.1"
[[CategoricalArrays]]
deps = ["Compat", "DataAPI", "Future", "JSON", "Missings", "Printf", "Reexport", "Statistics", "Unicode"]
git-tree-sha1 = "23d7324164c89638c18f6d7f90d972fa9c4fa9fb"
uuid = "324d7699-5711-5eae-9e2f-1d82baa6b597"
version = "0.7.7"
[[ColorTypes]]
deps = ["FixedPointNumbers", "Random"]
git-tree-sha1 = "c4c1cca28748906265ed62c788d6fe6f0134d264"
uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
version = "0.10.0"
[[Colors]]
deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Reexport"]
git-tree-sha1 = "2fdeb981ebcf52cd800ddb6a0aa5eac34153552d"
uuid = "5ae59095-9a9b-59fe-a467-6f913c188581"
version = "0.12.0"
[[CommonSubexpressions]]
deps = ["Test"]
git-tree-sha1 = "efdaf19ab11c7889334ca247ff4c9f7c322817b0"
uuid = "bbf7d656-a473-5ed7-a52c-81e309532950"
version = "0.2.0"
[[Compat]]
deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"]
git-tree-sha1 = "0198d18b28c093bef39872a22f1a897218a925f5"
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
version = "3.8.0"
[[CompilerSupportLibraries_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "7c4f882c41faa72118841185afc58a2eb00ef612"
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
version = "0.3.3+0"
[[Contour]]
deps = ["StaticArrays"]
git-tree-sha1 = "6d56f927b33d3820561b8f89d7de311718683846"
uuid = "d38c429a-6771-53c6-b99e-75d170b6e991"
version = "0.5.2"
[[DataAPI]]
git-tree-sha1 = "674b67f344687a88310213ddfa8a2b3c76cc4252"
uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"
version = "1.1.0"
[[DataFrames]]
deps = ["CategoricalArrays", "Compat", "DataAPI", "Future", "InvertedIndices", "IteratorInterfaceExtensions", "Missings", "PooledArrays", "Printf", "REPL", "Reexport", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"]
git-tree-sha1 = "7d5bf815cc0b30253e3486e8ce2b93bf9d0faff6"
uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
version = "0.20.2"
[[DataInterpolations]]
deps = ["GaussianProcesses", "LinearAlgebra", "Optim", "RecipesBase", "RecursiveArrayTools", "Reexport"]
git-tree-sha1 = "5faf9a0324cbc3d92c072b8c46f2a7314eea73d2"
uuid = "82cc6244-b520-54b8-b5a6-8a565e85f1d0"
version = "2.0.0"
[[DataStructures]]
deps = ["InteractiveUtils", "OrderedCollections"]
git-tree-sha1 = "4dead20a1606a60292529023d6eac18a1ef6432e"
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
version = "0.17.12"
[[DataValueInterfaces]]
git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6"
uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464"
version = "1.0.0"
[[Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
[[DelimitedFiles]]
deps = ["Mmap"]
uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab"
[[DiffResults]]
deps = ["StaticArrays"]
git-tree-sha1 = "da24935df8e0c6cf28de340b958f6aac88eaa0cc"
uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5"
version = "1.0.2"
[[DiffRules]]
deps = ["NaNMath", "Random", "SpecialFunctions"]
git-tree-sha1 = "eb0c34204c8410888844ada5359ac8b96292cfd1"
uuid = "b552c78f-8df3-52c6-915a-8e097449b14b"
version = "1.0.1"
[[Distances]]
deps = ["LinearAlgebra", "Statistics"]
git-tree-sha1 = "23717536c81b63e250f682b0e0933769eecd1411"
uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7"
version = "0.8.2"
[[Distributed]]
deps = ["Random", "Serialization", "Sockets"]
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
[[Distributions]]
deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns"]
git-tree-sha1 = "55e1de79bd2c397e048ca47d251f8fa70e530550"
uuid = "31c24e10-a181-5473-b8eb-7969acd0382f"
version = "0.22.6"
[[DocStringExtensions]]
deps = ["LibGit2", "Markdown", "Pkg", "Test"]
git-tree-sha1 = "88bb0edb352b16608036faadcc071adda068582a"
uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
version = "0.8.1"
[[Documenter]]
deps = ["Base64", "Dates", "DocStringExtensions", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"]
git-tree-sha1 = "bc99c157ff2957c058a1067061d16c2c83d1ec42"
uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
version = "0.24.9"
[[ElasticArrays]]
git-tree-sha1 = "6643de157ea3332d73e35a6a6ed2bdffe7792b12"
uuid = "fdbdab4c-e67f-52f5-8c3f-e7b388dad3d4"
version = "1.1.0"
[[ElasticPDMats]]
deps = ["LinearAlgebra", "MacroTools", "PDMats", "Test"]
git-tree-sha1 = "c6ac4406d9b4a549f7316fc746f7ccd5f1bcd2cd"
uuid = "2904ab23-551e-5aed-883f-487f97af5226"
version = "0.2.1"
[[FFMPEG]]
deps = ["FFMPEG_jll"]
git-tree-sha1 = "c82bef6fc01e30d500f588cd01d29bdd44f1924e"
uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a"
version = "0.3.0"
[[FFMPEG_jll]]
deps = ["Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "LAME_jll", "LibVPX_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "Pkg", "Zlib_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"]
git-tree-sha1 = "814bf7865005bee373521cb49cad46182bec53b4"
uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5"
version = "4.1.0+2"
[[FastGaussQuadrature]]
deps = ["LinearAlgebra", "SpecialFunctions"]
git-tree-sha1 = "c139e3f4c75dc489a493627c7ee44befc177420f"
uuid = "442a2c76-b920-505d-bb47-c5924d526838"
version = "0.4.2"
[[FilePathsBase]]
deps = ["Dates", "LinearAlgebra", "Printf", "Test", "UUIDs"]
git-tree-sha1 = "2cd6e2e7965934f72cb80251f760228e2264bab3"
uuid = "48062228-2e41-5def-b9a4-89aafe57970f"
version = "0.7.0"
[[FillArrays]]
deps = ["LinearAlgebra", "Random", "SparseArrays"]
git-tree-sha1 = "51cc2f9bc4eb9c6c0e81ec2f779d1085583cc956"
uuid = "1a297f60-69ca-5386-bcde-b61e274b549b"
version = "0.8.7"
[[FiniteDiff]]
deps = ["ArrayInterface", "LinearAlgebra", "Requires", "SparseArrays", "StaticArrays"]
git-tree-sha1 = "f60e5d6944975f7140bde67278e10b6b01fb4f29"
uuid = "6a86dc24-6348-571c-b903-95158fe2bd41"
version = "2.3.0"
[[FixedPointNumbers]]
git-tree-sha1 = "3ba9ea634d4c8b289d590403b4a06f8e227a6238"
uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93"
version = "0.8.0"
[[ForwardDiff]]
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"]
git-tree-sha1 = "869540e4367122fbffaace383a5bdc34d6e5e5ac"
uuid = "f6369f11-7733-5829-9624-2563aa707210"
version = "0.10.10"
[[FreeType2_jll]]
deps = ["Bzip2_jll", "Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "7d900f32a3788d4eacac2bfa3bf5c770179c8afd"
uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7"
version = "2.10.1+2"
[[FriBidi_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "e479537bf8a8f060c546553c14fd0633978dda7e"
uuid = "559328eb-81f9-559d-9380-de523a88c83c"
version = "1.0.5+2"
[[Future]]
deps = ["Random"]
uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820"
[[GLM]]
deps = ["Distributions", "LinearAlgebra", "Printf", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "StatsBase", "StatsFuns", "StatsModels"]
git-tree-sha1 = "db0ace36f9dbe7b6a7a08434c5921377e9df2c72"
uuid = "38e38edf-8417-5370-95a0-9cbb8c7f171a"
version = "1.3.9"
[[GR]]
deps = ["Base64", "DelimitedFiles", "LinearAlgebra", "Printf", "Random", "Serialization", "Sockets", "Test", "UUIDs"]
git-tree-sha1 = "7ea6f715b7caa10d7ee16f1cfcd12f3ccc74116a"
uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71"
version = "0.48.0"
[[GaussianProcesses]]
deps = ["Distances", "Distributions", "Documenter", "ElasticArrays", "ElasticPDMats", "FastGaussQuadrature", "ForwardDiff", "LinearAlgebra", "Optim", "PDMats", "Printf", "ProgressMeter", "Random", "RecipesBase", "ScikitLearnBase", "SpecialFunctions", "StaticArrays", "Statistics", "StatsFuns", "Zygote"]
git-tree-sha1 = "105c668971f973b0f1b84931b0d68b94da78e692"
uuid = "891a1506-143c-57d2-908e-e1f8e92e6de9"
version = "0.11.2"
[[GeometryTypes]]
deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "StaticArrays"]
git-tree-sha1 = "96fd99cf83b1952a7d8cb54f4c585a648275805a"
uuid = "4d00f742-c7ba-57c2-abde-4428a4b178cb"
version = "0.8.2"
[[HTTP]]
deps = ["Base64", "Dates", "IniFile", "MbedTLS", "Sockets"]
git-tree-sha1 = "fe31f4ff144392ad8176f5c7c03cca6ba320271c"
uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3"
version = "0.8.14"
[[Highlights]]
deps = ["DocStringExtensions", "InteractiveUtils", "REPL"]
git-tree-sha1 = "f823a2d04fb233d52812c8024a6d46d9581904a4"
uuid = "eafb193a-b7ab-5a9e-9068-77385905fa72"
version = "0.4.5"
[[IRTools]]
deps = ["InteractiveUtils", "MacroTools", "Test"]
git-tree-sha1 = "1a4355e4b5b50be2311ebb644f34f3306dbd0410"
uuid = "7869d1d1-7146-5819-86e3-90919afe41df"
version = "0.3.1"
[[IniFile]]
deps = ["Test"]
git-tree-sha1 = "098e4d2c533924c921f9f9847274f2ad89e018b8"
uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f"
version = "0.5.0"
[[InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
[[InvertedIndices]]
deps = ["Test"]
git-tree-sha1 = "15732c475062348b0165684ffe28e85ea8396afc"
uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f"
version = "1.0.0"
[[IteratorInterfaceExtensions]]
git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856"
uuid = "82899510-4779-5014-852e-03e436cf321d"
version = "1.0.0"
[[JSON]]
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
git-tree-sha1 = "b34d7cef7b337321e97d22242c3c2b91f476748e"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.21.0"
[[LAME_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "a46bff84977753fdba8db3c50db1435bb1eb4288"
uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d"
version = "3.100.0+0"
[[LibGit2]]
deps = ["Printf"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
[[LibVPX_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "e3549ca9bf35feb9d9d954f4c6a9032e92f46e7c"
uuid = "dd192d2f-8180-539f-9fb4-cc70b1dcf69a"
version = "1.8.1+1"
[[Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
[[LineSearches]]
deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf", "Test"]
git-tree-sha1 = "54eb90e8dbe745d617c78dee1d6ae95c7f6f5779"
uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255"
version = "7.0.1"
[[LinearAlgebra]]
deps = ["Libdl"]
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
[[Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
[[MacroTools]]
deps = ["Markdown", "Random"]
git-tree-sha1 = "f7d2e3f654af75f01ec49be82c231c382214223a"
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
version = "0.5.5"
[[Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
[[MbedTLS]]
deps = ["Dates", "MbedTLS_jll", "Random", "Sockets"]
git-tree-sha1 = "426a6978b03a97ceb7ead77775a1da066343ec6e"
uuid = "739be429-bea8-5141-9913-cc70e7f3736d"
version = "1.0.2"
[[MbedTLS_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "066a4467008745eed36dad973ceb66405785a621"
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
version = "2.16.0+1"
[[Measures]]
git-tree-sha1 = "e498ddeee6f9fdb4551ce855a46f54dbd900245f"
uuid = "442fdcdd-2543-5da2-b0f3-8c86c306513e"
version = "0.3.1"
[[Missings]]
deps = ["DataAPI"]
git-tree-sha1 = "de0a5ce9e5289f27df672ffabef4d1e5861247d5"
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
version = "0.4.3"
[[Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
[[Mustache]]
deps = ["Printf", "Tables"]
git-tree-sha1 = "2e11fc5de3a01d23482a257e22009ddaab058d9a"
uuid = "ffc61752-8dc7-55ee-8c37-f3e9cdd09e70"
version = "1.0.2"
[[NLSolversBase]]
deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"]
git-tree-sha1 = "7c4e66c47848562003250f28b579c584e55becc0"
uuid = "d41bc354-129a-5804-8e4c-c37616107c6c"
version = "7.6.1"
[[NNlib]]
deps = ["BinaryProvider", "Libdl", "LinearAlgebra", "Requires", "Statistics"]
git-tree-sha1 = "d9f196d911f55aeaff11b11f681b135980783824"
uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd"
version = "0.6.6"
[[NaNMath]]
git-tree-sha1 = "928b8ca9b2791081dc71a51c55347c27c618760f"
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
version = "0.3.3"
[[Ogg_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "f4d4d03c562f40652c0baabd3e4cb2e756e157b7"
uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051"
version = "1.3.3+0"
[[OpenBLAS_jll]]
deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"]
git-tree-sha1 = "2ee3e636e94b9fd95fa8364d5cba2e20dae16609"
uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"
version = "0.3.9+2"
[[OpenSSL_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "d2a6f25262d568b5a7e454cf7ff5066a79d16c7d"
uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
version = "1.1.1+2"
[[OpenSpecFun_jll]]
deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"]
git-tree-sha1 = "d51c416559217d974a1113522d5919235ae67a87"
uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e"
version = "0.5.3+3"
[[Optim]]
deps = ["Compat", "FillArrays", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"]
git-tree-sha1 = "62054d469d3631960e3f472ceb8624be5b11c34d"
uuid = "429524aa-4258-5aef-a3af-852621145aeb"
version = "0.20.6"
[[Opus_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "c9931bf2fcdb57b48c227395c61ea82603212f7d"
uuid = "91d4177d-7536-5919-b921-800302f37372"
version = "1.3.1+0"
[[OrderedCollections]]
deps = ["Random", "Serialization", "Test"]
git-tree-sha1 = "c4c13474d23c60d20a67b217f1d7f22a40edf8f1"
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
version = "1.1.0"
[[PDMats]]
deps = ["Arpack", "LinearAlgebra", "SparseArrays", "SuiteSparse", "Test"]
git-tree-sha1 = "2fc6f50ddd959e462f0a2dbc802ddf2a539c6e35"
uuid = "90014a1f-27ba-587c-ab20-58faa44d9150"
version = "0.9.12"
[[PackageCompiler]]
deps = ["Libdl", "Pkg", "UUIDs"]
git-tree-sha1 = "8989a56e4506b7b6a050f2b912e7856742d6998c"
uuid = "9b87118b-4619-50d2-8e1e-99f35a4d4d9d"
version = "1.1.1"
[[Parameters]]
deps = ["OrderedCollections"]
git-tree-sha1 = "b62b2558efb1eef1fa44e4be5ff58a515c287e38"
uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a"
version = "0.12.0"
[[Parsers]]
deps = ["Dates", "Test"]
git-tree-sha1 = "75d07cb840c300084634b4991761886d0d762724"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "1.0.1"
[[Pkg]]
deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
[[PlotThemes]]
deps = ["PlotUtils", "Requires", "Statistics"]
git-tree-sha1 = "87a4ea7f8c350d87d3a8ca9052663b633c0b2722"
uuid = "ccf2f8ad-2431-5c83-bf29-c5338b663b6a"
version = "1.0.3"
[[PlotUtils]]
deps = ["Colors", "Dates", "Printf", "Random", "Reexport"]
git-tree-sha1 = "51e742162c97d35f714f9611619db6975e19384b"
uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043"
version = "0.6.5"
[[Plots]]
deps = ["Base64", "Contour", "Dates", "FFMPEG", "FixedPointNumbers", "GR", "GeometryTypes", "JSON", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "Reexport", "Requires", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs"]
git-tree-sha1 = "f226ff9b8e391f6a10891563c370aae8beb5d792"
uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
version = "0.29.9"
[[PooledArrays]]
deps = ["DataAPI"]
git-tree-sha1 = "b1333d4eced1826e15adbdf01a4ecaccca9d353c"
uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720"
version = "0.5.3"
[[PositiveFactorizations]]
deps = ["LinearAlgebra", "Test"]
git-tree-sha1 = "127c47b91990c101ee3752291c4f45640eeb03d1"
uuid = "85a6dd25-e78a-55b7-8502-1745935b8125"
version = "0.2.3"
[[Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
[[ProgressMeter]]
deps = ["Distributed", "Printf"]
git-tree-sha1 = "ea1f4fa0ff5e8b771bf130d87af5b7ef400760bd"
uuid = "92933f4c-e287-5a05-a399-4b506db050ca"
version = "1.2.0"
[[QuadGK]]
deps = ["DataStructures", "LinearAlgebra"]
git-tree-sha1 = "dc84e810393cfc6294248c9032a9cdacc14a3db4"
uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
version = "2.3.1"
[[REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
[[Random]]
deps = ["Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
[[RecipesBase]]
git-tree-sha1 = "b4ed4a7f988ea2340017916f7c9e5d7560b52cae"
uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01"
version = "0.8.0"
[[RecursiveArrayTools]]
deps = ["ArrayInterface", "LinearAlgebra", "RecipesBase", "Requires", "StaticArrays", "Statistics", "ZygoteRules"]
git-tree-sha1 = "48a8ce7a8cb156231de0477372dcaa6ada1472ef"
uuid = "731186ca-8d62-57ce-b412-fbd966d074cd"
version = "2.3.1"
[[Reexport]]
deps = ["Pkg"]
git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0"
uuid = "189a3867-3050-52da-a836-e630ba90ab69"
version = "0.2.0"
[[Requires]]
deps = ["UUIDs"]
git-tree-sha1 = "d37400976e98018ee840e0ca4f9d20baa231dc6b"
uuid = "ae029012-a4dd-5104-9daa-d747884805df"
version = "1.0.1"
[[Rmath]]
deps = ["Random", "Rmath_jll"]
git-tree-sha1 = "86c5647b565873641538d8f812c04e4c9dbeb370"
uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa"
version = "0.6.1"
[[Rmath_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "1660f8fefbf5ab9c67560513131d4e933012fc4b"
uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f"
version = "0.2.2+0"
[[SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
[[ScikitLearnBase]]
deps = ["LinearAlgebra", "Random", "Statistics"]
git-tree-sha1 = "7877e55c1523a4b336b433da39c8e8c08d2f221f"
uuid = "6e75b9c4-186b-50bd-896f-2d2496a4843e"
version = "0.5.0"
[[Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
[[SharedArrays]]
deps = ["Distributed", "Mmap", "Random", "Serialization"]
uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383"
[[ShiftedArrays]]
git-tree-sha1 = "22395afdcf37d6709a5a0766cc4a5ca52cb85ea0"
uuid = "1277b4bf-5013-50f5-be3d-901d8477a67a"
version = "1.0.0"
[[Showoff]]
deps = ["Dates"]
git-tree-sha1 = "e032c9df551fb23c9f98ae1064de074111b7bc39"
uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f"
version = "0.3.1"
[[Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
[[SortingAlgorithms]]
deps = ["DataStructures", "Random", "Test"]
git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd"
uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c"
version = "0.3.1"
[[SparseArrays]]
deps = ["LinearAlgebra", "Random"]
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
[[SpecialFunctions]]
deps = ["OpenSpecFun_jll"]
git-tree-sha1 = "e19b98acb182567bcb7b75bb5d9eedf3a3b5ec6c"
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
version = "0.10.0"
[[StaticArrays]]
deps = ["LinearAlgebra", "Random", "Statistics"]
git-tree-sha1 = "5a3bcb6233adabde68ebc97be66e95dcb787424c"
uuid = "90137ffa-7385-5640-81b9-e52037218182"
version = "0.12.1"
[[Statistics]]
deps = ["LinearAlgebra", "SparseArrays"]
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
[[StatsBase]]
deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"]
git-tree-sha1 = "19bfcb46245f69ff4013b3df3b977a289852c3a1"
uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"
version = "0.32.2"
[[StatsFuns]]
deps = ["Rmath", "SpecialFunctions"]
git-tree-sha1 = "f290ddd5fdedeadd10e961eb3f4d3340f09d030a"
uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c"
version = "0.9.4"
[[StatsModels]]
deps = ["DataAPI", "DataStructures", "LinearAlgebra", "ShiftedArrays", "SparseArrays", "StatsBase", "Tables"]
git-tree-sha1 = "5a140e0bf5d92b2c5c0daa0dcefdadbb57c8a7fb"
uuid = "3eaba693-59b7-5ba5-a881-562e759f1c8d"
version = "0.6.11"
[[SuiteSparse]]
deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"]
uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9"
[[TableTraits]]
deps = ["IteratorInterfaceExtensions"]
git-tree-sha1 = "b1ad568ba658d8cbb3b892ed5380a6f3e781a81e"
uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c"
version = "1.0.0"
[[Tables]]
deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "TableTraits", "Test"]
git-tree-sha1 = "c45dcc27331febabc20d86cb3974ef095257dcf3"
uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
version = "1.0.4"
[[Test]]
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
[[UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
[[Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
[[WeakRefStrings]]
deps = ["DataAPI", "Random", "Test"]
git-tree-sha1 = "28807f85197eaad3cbd2330386fac1dcb9e7e11d"
uuid = "ea10d353-3f73-51f8-a26c-33c1cb351aa5"
version = "0.6.2"
[[Weave]]
deps = ["Base64", "Dates", "Highlights", "JSON", "Markdown", "Mustache", "Printf", "REPL", "Requires", "Serialization", "YAML"]
git-tree-sha1 = "f4c004ae4ca7200a46fe1b454e11a0c7cec107c4"
uuid = "44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9"
version = "0.9.4"
[[YAML]]
deps = ["Base64", "Dates", "Printf"]
git-tree-sha1 = "c5e2eaa5ce818c5277388377d592eb4c81f27c00"
uuid = "ddb6d928-2868-570f-bddf-ab3f9cf99eb6"
version = "0.4.0"
[[Zlib_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "2f6c3e15e20e036ee0a0965879b31442b7ec50fa"
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
version = "1.2.11+9"
[[Zygote]]
deps = ["AbstractFFTs", "ArrayLayouts", "DiffRules", "FillArrays", "ForwardDiff", "IRTools", "InteractiveUtils", "LinearAlgebra", "MacroTools", "NNlib", "NaNMath", "Random", "Requires", "SpecialFunctions", "Statistics", "ZygoteRules"]
git-tree-sha1 = "014e1f208bd5b43e26448ca31d971053f58bc20a"
uuid = "e88e6eb3-aa80-5325-afca-941959d7151f"
version = "0.4.15"
[[ZygoteRules]]
deps = ["MacroTools"]
git-tree-sha1 = "b3b4882cc9accf6731a08cc39543fbc6b669dca8"
uuid = "700de1a5-db45-46bc-99cf-38207098b444"
version = "0.2.0"
[[libass_jll]]
deps = ["Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "Libdl", "Pkg", "Zlib_jll"]
git-tree-sha1 = "d0259e0624e08ae9ebae16c80257caabc25f2048"
uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0"
version = "0.14.0+1"
[[libfdk_aac_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "0e4ace600c20714a8dd67700c4502714d8473e8e"
uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280"
version = "0.1.6+1"
[[libvorbis_jll]]
deps = ["Libdl", "Ogg_jll", "Pkg"]
git-tree-sha1 = "71e54fb89ac3e0344c7185d1876fd96b0f246952"
uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a"
version = "1.3.6+2"
[[x264_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "23664c0757c3740050ca0e22944c786c165ca25a"
uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a"
version = "2019.5.25+1"
[[x265_jll]]
deps = ["Libdl", "Pkg"]
git-tree-sha1 = "9345e417084421a8e91373d6196bc58e660eed2a"
uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76"
version = "3.0.0+0"
name = "Challenger"
uuid = "457123a2-77f0-4d56-a035-49d1b3c810fd"
authors = ["François Févotte"]
version = "0.1.0"
[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"
DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0"
GLM = "38e38edf-8417-5370-95a0-9cbb8c7f171a"
HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3"
PackageCompiler = "9b87118b-4619-50d2-8e1e-99f35a4d4d9d"
Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80"
Weave = "44d3d7a6-8a23-5bf8-98c5-b353f8df5ec9"
<!DOCTYPE html>
<HTML lang = "en">
<HEAD>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Risk Analysis of the Space Shuttle: Pre-Challenger Prediction of Failure</title>
<script src="plotly-latest.min.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]},
TeX: { equationNumbers: { autoNumber: "AMS" } }
});
</script>
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<style>
pre.hljl {
border: 1px solid #ccc;
margin: 5px;
padding: 5px;
overflow-x: auto;
color: rgb(68,68,68); background-color: rgb(251,251,251); }
pre.hljl > span.hljl-t { }
pre.hljl > span.hljl-w { }
pre.hljl > span.hljl-e { }
pre.hljl > span.hljl-eB { }
pre.hljl > span.hljl-o { }
pre.hljl > span.hljl-k { color: rgb(148,91,176); font-weight: bold; }
pre.hljl > span.hljl-kc { color: rgb(59,151,46); font-style: italic; }
pre.hljl > span.hljl-kd { color: rgb(214,102,97); font-style: italic; }
pre.hljl > span.hljl-kn { color: rgb(148,91,176); font-weight: bold; }
pre.hljl > span.hljl-kp { color: rgb(148,91,176); font-weight: bold; }
pre.hljl > span.hljl-kr { color: rgb(148,91,176); font-weight: bold; }
pre.hljl > span.hljl-kt { color: rgb(148,91,176); font-weight: bold; }
pre.hljl > span.hljl-n { }
pre.hljl > span.hljl-na { }
pre.hljl > span.hljl-nb { }
pre.hljl > span.hljl-nbp { }
pre.hljl > span.hljl-nc { }
pre.hljl > span.hljl-ncB { }
pre.hljl > span.hljl-nd { color: rgb(214,102,97); }
pre.hljl > span.hljl-ne { }
pre.hljl > span.hljl-neB { }
pre.hljl > span.hljl-nf { color: rgb(66,102,213); }
pre.hljl > span.hljl-nfm { color: rgb(66,102,213); }
pre.hljl > span.hljl-np { }
pre.hljl > span.hljl-nl { }
pre.hljl > span.hljl-nn { }
pre.hljl > span.hljl-no { }
pre.hljl > span.hljl-nt { }
pre.hljl > span.hljl-nv { }
pre.hljl > span.hljl-nvc { }
pre.hljl > span.hljl-nvg { }
pre.hljl > span.hljl-nvi { }
pre.hljl > span.hljl-nvm { }
pre.hljl > span.hljl-l { }
pre.hljl > span.hljl-ld { color: rgb(148,91,176); font-style: italic; }
pre.hljl > span.hljl-s { color: rgb(201,61,57); }
pre.hljl > span.hljl-sa { color: rgb(201,61,57); }
pre.hljl > span.hljl-sb { color: rgb(201,61,57); }
pre.hljl > span.hljl-sc { color: rgb(201,61,57); }
pre.hljl > span.hljl-sd { color: rgb(201,61,57); }
pre.hljl > span.hljl-sdB { color: rgb(201,61,57); }
pre.hljl > span.hljl-sdC { color: rgb(201,61,57); }
pre.hljl > span.hljl-se { color: rgb(59,151,46); }
pre.hljl > span.hljl-sh { color: rgb(201,61,57); }
pre.hljl > span.hljl-si { }
pre.hljl > span.hljl-so { color: rgb(201,61,57); }
pre.hljl > span.hljl-sr { color: rgb(201,61,57); }
pre.hljl > span.hljl-ss { color: rgb(201,61,57); }
pre.hljl > span.hljl-ssB { color: rgb(201,61,57); }
pre.hljl > span.hljl-nB { color: rgb(59,151,46); }
pre.hljl > span.hljl-nbB { color: rgb(59,151,46); }
pre.hljl > span.hljl-nfB { color: rgb(59,151,46); }
pre.hljl > span.hljl-nh { color: rgb(59,151,46); }
pre.hljl > span.hljl-ni { color: rgb(59,151,46); }
pre.hljl > span.hljl-nil { color: rgb(59,151,46); }
pre.hljl > span.hljl-noB { color: rgb(59,151,46); }
pre.hljl > span.hljl-oB { color: rgb(102,102,102); font-weight: bold; }
pre.hljl > span.hljl-ow { color: rgb(102,102,102); font-weight: bold; }
pre.hljl > span.hljl-p { }
pre.hljl > span.hljl-c { color: rgb(153,153,119); font-style: italic; }
pre.hljl > span.hljl-ch { color: rgb(153,153,119); font-style: italic; }
pre.hljl > span.hljl-cm { color: rgb(153,153,119); font-style: italic; }
pre.hljl > span.hljl-cp { color: rgb(153,153,119); font-style: italic; }
pre.hljl > span.hljl-cpB { color: rgb(153,153,119); font-style: italic; }
pre.hljl > span.hljl-cs { color: rgb(153,153,119); font-style: italic; }
pre.hljl > span.hljl-csB { color: rgb(153,153,119); font-style: italic; }
pre.hljl > span.hljl-g { }
pre.hljl > span.hljl-gd { }
pre.hljl > span.hljl-ge { }
pre.hljl > span.hljl-geB { }
pre.hljl > span.hljl-gh { }
pre.hljl > span.hljl-gi { }
pre.hljl > span.hljl-go { }
pre.hljl > span.hljl-gp { }
pre.hljl > span.hljl-gs { }
pre.hljl > span.hljl-gsB { }
pre.hljl > span.hljl-gt { }
</style>
<style type="text/css">
@font-face {
font-style: normal;
font-weight: 300;
}
@font-face {
font-style: normal;
font-weight: 400;
}
@font-face {
font-style: normal;
font-weight: 600;
}
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
body {
margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
audio:not([controls]) {
display: none;
height: 0;
}
[hidden],
template {
display: none;
}
a:active,
a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
b,
strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
mark {
background: #ff0;
color: #000;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
pre {
overflow: auto;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
color: inherit; /* 1 */
font: inherit; /* 2 */
margin: 0; /* 3 */
}
button {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
button[disabled],
html input[disabled] {
cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input {
line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
textarea {
overflow: auto;
}
optgroup {
font-weight: bold;
}
table {
font-family: monospace, monospace;
font-size : 0.8em;
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
thead th {
border-bottom: 1px solid black;
background-color: white;
}
tr:nth-child(odd){
background-color: rgb(248,248,248);
}
/*
* Skeleton V2.0.4
* Copyright 2014, Dave Gamache
* www.getskeleton.com
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
* 12/29/2014
*/
.container {
position: relative;
width: 100%;
max-width: 960px;
margin: 0 auto;
padding: 0 20px;
box-sizing: border-box; }
.column,
.columns {
width: 100%;
float: left;
box-sizing: border-box; }
@media (min-width: 400px) {
.container {
width: 85%;
padding: 0; }
}
@media (min-width: 550px) {
.container {
width: 80%; }
.column,
.columns {
margin-left: 4%; }
.column:first-child,
.columns:first-child {
margin-left: 0; }
.one.column,
.one.columns { width: 4.66666666667%; }
.two.columns { width: 13.3333333333%; }
.three.columns { width: 22%; }
.four.columns { width: 30.6666666667%; }
.five.columns { width: 39.3333333333%; }
.six.columns { width: 48%; }
.seven.columns { width: 56.6666666667%; }
.eight.columns { width: 65.3333333333%; }
.nine.columns { width: 74.0%; }
.ten.columns { width: 82.6666666667%; }
.eleven.columns { width: 91.3333333333%; }
.twelve.columns { width: 100%; margin-left: 0; }
.one-third.column { width: 30.6666666667%; }
.two-thirds.column { width: 65.3333333333%; }
.one-half.column { width: 48%; }
/* Offsets */
.offset-by-one.column,
.offset-by-one.columns { margin-left: 8.66666666667%; }
.offset-by-two.column,
.offset-by-two.columns { margin-left: 17.3333333333%; }
.offset-by-three.column,
.offset-by-three.columns { margin-left: 26%; }
.offset-by-four.column,
.offset-by-four.columns { margin-left: 34.6666666667%; }
.offset-by-five.column,
.offset-by-five.columns { margin-left: 43.3333333333%; }
.offset-by-six.column,
.offset-by-six.columns { margin-left: 52%; }
.offset-by-seven.column,
.offset-by-seven.columns { margin-left: 60.6666666667%; }
.offset-by-eight.column,
.offset-by-eight.columns { margin-left: 69.3333333333%; }
.offset-by-nine.column,
.offset-by-nine.columns { margin-left: 78.0%; }
.offset-by-ten.column,
.offset-by-ten.columns { margin-left: 86.6666666667%; }
.offset-by-eleven.column,
.offset-by-eleven.columns { margin-left: 95.3333333333%; }
.offset-by-one-third.column,
.offset-by-one-third.columns { margin-left: 34.6666666667%; }
.offset-by-two-thirds.column,
.offset-by-two-thirds.columns { margin-left: 69.3333333333%; }
.offset-by-one-half.column,
.offset-by-one-half.columns { margin-left: 52%; }
}
html {
font-size: 62.5%; }
body {
font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */
line-height: 1.6;
font-weight: 400;
font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #222; }
h1, h2, h3, h4, h5, h6 {
margin-top: 2rem;
margin-bottom: 0;
font-weight: 300; }
h1 { font-size: 3.6rem; line-height: 1.2; letter-spacing: -.1rem;}
h2 { font-size: 3.0rem; line-height: 1.25; letter-spacing: -.1rem; }
h3 { font-size: 2.8rem; line-height: 1.3; letter-spacing: -.1rem; }
h4 { font-size: 2.6rem; line-height: 1.35; letter-spacing: -.08rem; }
h5 { font-size: 2.4rem; line-height: 1.5; letter-spacing: -.05rem; }
h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; }
p {
margin-top: 0; }
a {
color: #1EAEDB; }
a:hover {
color: #0FA0CE; }
.button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
display: inline-block;
height: 38px;
padding: 0 30px;
color: #555;
text-align: center;
font-size: 11px;
font-weight: 600;
line-height: 38px;
letter-spacing: .1rem;
text-transform: uppercase;
text-decoration: none;
white-space: nowrap;
background-color: transparent;
border-radius: 4px;
border: 1px solid #bbb;
cursor: pointer;
box-sizing: border-box; }
.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
.button:focus,
button:focus,
input[type="submit"]:focus,
input[type="reset"]:focus,
input[type="button"]:focus {
color: #333;
border-color: #888;
outline: 0; }
.button.button-primary,
button.button-primary,
input[type="submit"].button-primary,
input[type="reset"].button-primary,
input[type="button"].button-primary {
color: #FFF;
background-color: #33C3F0;
border-color: #33C3F0; }
.button.button-primary:hover,
button.button-primary:hover,
input[type="submit"].button-primary:hover,
input[type="reset"].button-primary:hover,
input[type="button"].button-primary:hover,
.button.button-primary:focus,
button.button-primary:focus,
input[type="submit"].button-primary:focus,
input[type="reset"].button-primary:focus,
input[type="button"].button-primary:focus {
color: #FFF;
background-color: #1EAEDB;
border-color: #1EAEDB; }
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea,
select {
height: 38px;
padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
background-color: #fff;
border: 1px solid #D1D1D1;
border-radius: 4px;
box-shadow: none;
box-sizing: border-box; }
/* Removes awkward default styles on some inputs for iOS */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none; }
textarea {
min-height: 65px;
padding-top: 6px;
padding-bottom: 6px; }
input[type="email"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="text"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
border: 1px solid #33C3F0;
outline: 0; }
label,
legend {
display: block;
margin-bottom: .5rem;
font-weight: 600; }
fieldset {
padding: 0;
border-width: 0; }
input[type="checkbox"],
input[type="radio"] {
display: inline; }
label > .label-body {
display: inline-block;
margin-left: .5rem;
font-weight: normal; }
ul {
list-style: circle; }
ol {
list-style: decimal; }
ul ul,
ul ol,
ol ol,
ol ul {
margin: 1.5rem 0 1.5rem 3rem;
font-size: 90%; }
li > p {margin : 0;}
th,
td {
padding: 5px 15px;
text-align: left;
border-bottom: 1px solid #E1E1E1; }
th:first-child,
td:first-child {
padding-left: 0; }
th:last-child,
td:last-child {
padding-right: 0; }
button,
.button {
margin-bottom: 1rem; }
input,
textarea,
select,
fieldset {
margin-bottom: 1.5rem; }
pre,
blockquote,
dl,
figure,
table,
p,
ul,
ol,
form {
margin-bottom: 1.0rem; }
.u-full-width {
width: 100%;
box-sizing: border-box; }
.u-max-full-width {
max-width: 100%;
box-sizing: border-box; }
.u-pull-right {
float: right; }
.u-pull-left {
float: left; }
hr {
margin-top: 3rem;
margin-bottom: 3.5rem;
border-width: 0;
border-top: 1px solid #E1E1E1; }
.container:after,
.row:after,
.u-cf {
content: "";
display: table;
clear: both; }
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
word-break: break-all;
word-wrap: break-word;
border: 1px solid #ccc;
border-radius: 4px;
}
pre.hljl {
margin: 0 0 10px;
display: block;
background: #f5f5f5;
border-radius: 4px;
padding : 5px;
}
pre.output {
background: #ffffff;
}
pre.code {
background: #ffffff;
}
pre.julia-error {
color : red
}
code,
kbd,
pre,
samp {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
font-size: 0.9em;
}
@media (min-width: 400px) {}
@media (min-width: 550px) {}
@media (min-width: 750px) {}
@media (min-width: 1000px) {}
@media (min-width: 1200px) {}
h1.title {margin-top : 20px}
img {max-width : 100%}
div.title {text-align: center;}
body {counter-reset: h1counter;}
h1 {counter-reset: h2counter;}
h2 {counter-reset: h3counter;}
h1.title:before {
content: none;
counter-increment: none;
}
h1:before {
content: counter(h1counter) "\0000a0-\0000a0";
counter-increment: h1counter;
}
h2:before {
content: counter(h1counter) "." counter(h2counter) "\0000a0-\0000a0";
counter-increment: h2counter;
}
h3:before {
content: counter(h1counter) "." counter(h2counter) "." counter(h3counter) "\0000a0-\0000a0";
counter-increment: h3counter;
}
</style>
</HEAD>
<BODY>
<div class ="container">
<div class = "row">
<div class = "col-md-12 twelve columns">
<div class="title">
<h1 class="title">Risk Analysis of the Space Shuttle: Pre-Challenger Prediction of Failure</h1>
</div>
<p>In this document we reperform some of the analysis provided in <em>Risk Analysis of the Space Shuttle: Pre-Challenger Prediction of Failure</em> by Siddhartha R. Dalal, Edward B. Fowlkes, Bruce Hoadley published in Journal of the American Statistical Association, Vol. 84, No. 408 &#40;Dec., 1989&#41;, pp. 945-957 and available at <a href="http://www.jstor.org/stable/2290069">http://www.jstor.org/stable/2290069</a>.</p>
<p>On the fourth page of this article, they indicate that the maximum likelihood estimates of the logistic regression using only temperature are: <span class="math">$\hat{\alpha}=5.085$</span> and <span class="math">$\hat{\beta}=-0.1156$</span> and their asymptotic standard errors are <span class="math">$s_{\hat{\alpha}}=3.052$</span> and <span class="math">$s_{\hat{\beta}}=0.047$</span>. The Goodness of fit indicated for this model was <span class="math">$G^2=18.086$</span> with 21 degrees of freedom. Our goal is to reproduce the computation behind these values and the Figure 4 of this article, possibly in a nicer looking way.</p>
<h1>Technical information on the computer on which the analysis is run</h1>
<p>We will be using the <a href="http://julialang.org">Julia</a> language:</p>
<pre class='hljl'>
<span class='hljl-k'>using</span><span class='hljl-t'> </span><span class='hljl-n'>InteractiveUtils</span><span class='hljl-t'>
</span><span class='hljl-nf'>versioninfo</span><span class='hljl-p'>()</span>
</pre>
<pre class="output">
Julia Version 1.4.0
Commit b8e9a9ecc6 &#40;2020-03-21 16:36 UTC&#41;
Platform Info:
OS: Linux &#40;x86_64-pc-linux-gnu&#41;
CPU: Intel&#40;R&#41; Core&#40;TM&#41; i5-6200U CPU @ 2.30GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-8.0.1 &#40;ORCJIT, skylake&#41;
Environment:
JULIA_PROJECT &#61; @.
</pre>
<p>The computations rely on a number of packages in the Julia ecosystem. The direct dependencies are summarized hereafter; the complete environment is described in the <a href="Manifest.toml"><code>Manifest.toml</code></a> file.</p>
<pre class='hljl'>
<span class='hljl-cs'># Setup environment</span><span class='hljl-t'>
</span><span class='hljl-k'>using</span><span class='hljl-t'> </span><span class='hljl-n'>Pkg</span><span class='hljl-t'>
</span><span class='hljl-n'>Pkg</span><span class='hljl-oB'>.</span><span class='hljl-nf'>activate</span><span class='hljl-p'>(</span><span class='hljl-nd'>@__DIR__</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>Pkg</span><span class='hljl-oB'>.</span><span class='hljl-nf'>instantiate</span><span class='hljl-p'>()</span><span class='hljl-t'>
</span><span class='hljl-cs'># Load dependencies</span><span class='hljl-t'>
</span><span class='hljl-k'>using</span><span class='hljl-t'> </span><span class='hljl-n'>HTTP</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>CSV</span><span class='hljl-t'>
</span><span class='hljl-k'>using</span><span class='hljl-t'> </span><span class='hljl-n'>Plots</span><span class='hljl-p'>;</span><span class='hljl-t'> </span><span class='hljl-nf'>plotly</span><span class='hljl-p'>()</span><span class='hljl-t'>
</span><span class='hljl-k'>using</span><span class='hljl-t'> </span><span class='hljl-n'>GLM</span><span class='hljl-t'>
</span><span class='hljl-k'>using</span><span class='hljl-t'> </span><span class='hljl-n'>DataFrames</span><span class='hljl-t'>
</span><span class='hljl-k'>using</span><span class='hljl-t'> </span><span class='hljl-n'>Printf</span><span class='hljl-t'>
</span><span class='hljl-nf'>include</span><span class='hljl-p'>(</span><span class='hljl-s'>&quot;utils.jl&quot;</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-cs'># Summary</span><span class='hljl-t'>
</span><span class='hljl-n'>Pkg</span><span class='hljl-oB'>.</span><span class='hljl-nf'>status</span><span class='hljl-p'>()</span>
</pre>
<pre class="output">
Project Challenger v0.1.0
Status &#96;~/tmp/MOOC-RR/module4/Project.toml&#96;
&#91;336ed68f&#93; CSV v0.6.1
&#91;a93c6f00&#93; DataFrames v0.20.2
&#91;82cc6244&#93; DataInterpolations v2.0.0
&#91;38e38edf&#93; GLM v1.3.9
&#91;cd3eb016&#93; HTTP v0.8.14
&#91;9b87118b&#93; PackageCompiler v1.1.1
&#91;91a5bcdd&#93; Plots v0.29.9
&#91;44d3d7a6&#93; Weave v0.9.4
</pre>
<h1>Loading and inspecting data</h1>
<p>Let&#39;s start by reading data.</p>
<pre class='hljl'>
<span class='hljl-n'>res</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>HTTP</span><span class='hljl-oB'>.</span><span class='hljl-nf'>request</span><span class='hljl-p'>(</span><span class='hljl-sc'>:GET</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-s'>&quot;https://app-learninglab.inria.fr/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/raw/master/data/shuttle.csv?inline=false&quot;</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>data</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>CSV</span><span class='hljl-oB'>.</span><span class='hljl-nf'>read</span><span class='hljl-p'>(</span><span class='hljl-n'>res</span><span class='hljl-oB'>.</span><span class='hljl-n'>body</span><span class='hljl-p'>)</span>
</pre>
<table class="data-frame"><thead><tr><th></th><th>Date</th><th>Count</th><th>Temperature</th><th>Pressure</th><th>Malfunction</th></tr><tr><th></th><th>String</th><th>Int64</th><th>Int64</th><th>Int64</th><th>Int64</th></tr></thead><tbody><p>23 rows × 5 columns</p><tr><th>1</th><td>4/12/81</td><td>6</td><td>66</td><td>50</td><td>0</td></tr><tr><th>2</th><td>11/12/81</td><td>6</td><td>70</td><td>50</td><td>1</td></tr><tr><th>3</th><td>3/22/82</td><td>6</td><td>69</td><td>50</td><td>0</td></tr><tr><th>4</th><td>11/11/82</td><td>6</td><td>68</td><td>50</td><td>0</td></tr><tr><th>5</th><td>4/04/83</td><td>6</td><td>67</td><td>50</td><td>0</td></tr><tr><th>6</th><td>6/18/82</td><td>6</td><td>72</td><td>50</td><td>0</td></tr><tr><th>7</th><td>8/30/83</td><td>6</td><td>73</td><td>100</td><td>0</td></tr><tr><th>8</th><td>11/28/83</td><td>6</td><td>70</td><td>100</td><td>0</td></tr><tr><th>9</th><td>2/03/84</td><td>6</td><td>57</td><td>200</td><td>1</td></tr><tr><th>10</th><td>4/06/84</td><td>6</td><td>63</td><td>200</td><td>1</td></tr><tr><th>11</th><td>8/30/84</td><td>6</td><td>70</td><td>200</td><td>1</td></tr><tr><th>12</th><td>10/05/84</td><td>6</td><td>78</td><td>200</td><td>0</td></tr><tr><th>13</th><td>11/08/84</td><td>6</td><td>67</td><td>200</td><td>0</td></tr><tr><th>14</th><td>1/24/85</td><td>6</td><td>53</td><td>200</td><td>2</td></tr><tr><th>15</th><td>4/12/85</td><td>6</td><td>67</td><td>200</td><td>0</td></tr><tr><th>16</th><td>4/29/85</td><td>6</td><td>75</td><td>200</td><td>0</td></tr><tr><th>17</th><td>6/17/85</td><td>6</td><td>70</td><td>200</td><td>0</td></tr><tr><th>18</th><td>7/2903/85</td><td>6</td><td>81</td><td>200</td><td>0</td></tr><tr><th>19</th><td>8/27/85</td><td>6</td><td>76</td><td>200</td><td>0</td></tr><tr><th>20</th><td>10/03/85</td><td>6</td><td>79</td><td>200</td><td>0</td></tr><tr><th>21</th><td>10/30/85</td><td>6</td><td>75</td><td>200</td><td>2</td></tr><tr><th>22</th><td>11/26/85</td><td>6</td><td>76</td><td>200</td><td>0</td></tr><tr><th>23</th><td>1/12/86</td><td>6</td><td>58</td><td>200</td><td>1</td></tr></tbody></table>
<p>We know from our previous experience on this data set that filtering data is a really bad idea. We will therefore process it as such.</p>
<pre class='hljl'>
<span class='hljl-n'>data</span><span class='hljl-oB'>.</span><span class='hljl-n'>Frequency</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-n'>data</span><span class='hljl-oB'>.</span><span class='hljl-n'>Malfunction</span><span class='hljl-t'> </span><span class='hljl-oB'>./</span><span class='hljl-t'> </span><span class='hljl-n'>data</span><span class='hljl-oB'>.</span><span class='hljl-n'>Count</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-n'>xlabel</span><span class='hljl-oB'>=</span><span class='hljl-s'>&quot;Temperature [F]&quot;</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>ylabel</span><span class='hljl-oB'>=</span><span class='hljl-s'>&quot;Frequency&quot;</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot!</span><span class='hljl-p'>(</span><span class='hljl-n'>data</span><span class='hljl-oB'>.</span><span class='hljl-n'>Temperature</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>data</span><span class='hljl-oB'>.</span><span class='hljl-n'>Frequency</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>seriestype</span><span class='hljl-oB'>=:</span><span class='hljl-n'>scatter</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>label</span><span class='hljl-oB'>=</span><span class='hljl-n'>nothing</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>disp</span><span class='hljl-p'>()</span>
</pre>
<div id="8196e83b-fcfd-404d-a407-99bab186c19a" style="width:576px;height:384px;"></div>
<script>
PLOT = document.getElementById('8196e83b-fcfd-404d-a407-99bab186c19a');
Plotly.plot(PLOT, [
{
"xaxis": "x1",
"colorbar": {
"title": ""
},
"yaxis": "y1",
"x": [
66.0,
70.0,
69.0,
68.0,
67.0,
72.0,
73.0,
70.0,
57.0,
63.0,
70.0,
78.0,
67.0,
53.0,
67.0,
75.0,
70.0,
81.0,
76.0,
79.0,
75.0,
76.0,
58.0
],
"showlegend": false,
"mode": "markers",
"name": "",
"zmin": null,
"legendgroup": "",
"marker": {
"symbol": "circle",
"color": "rgba(0, 154, 250, 1.000)",
"line": {
"color": "rgba(0, 0, 0, 1.000)",
"width": 1
},
"size": 8
},
"zmax": null,
"y": [
0.0,
0.16666666666666666,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.16666666666666666,
0.16666666666666666,
0.16666666666666666,
0.0,
0.0,
0.3333333333333333,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.3333333333333333,
0.0,
0.16666666666666666
],
"type": "scatter"
}
]
, {
"showlegend": true,
"xaxis": {
"showticklabels": true,
"gridwidth": 0.5,
"tickvals": [
55.0,
60.0,
65.0,
70.0,
75.0,
80.0
],
"visible": true,
"ticks": "inside",
"range": [
52.16,
81.84
],
"domain": [
0.07965529916399339,
0.9931649168853892
],
"tickmode": "array",
"linecolor": "rgba(0, 0, 0, 1.000)",
"showgrid": true,
"title": "Temperature [F]",
"mirror": false,
"tickangle": 0,
"showline": true,
"gridcolor": "rgba(0, 0, 0, 0.100)",
"titlefont": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 15
},
"tickcolor": "rgb(0, 0, 0)",
"ticktext": [
"55",
"60",
"65",
"70",
"75",
"80"
],
"zeroline": false,
"type": "-",
"tickfont": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 11
},
"zerolinecolor": "rgba(0, 0, 0, 1.000)",
"anchor": "y1"
},
"paper_bgcolor": "rgba(255, 255, 255, 1.000)",
"annotations": [],
"height": 384,
"margin": {
"l": 0,
"b": 20,
"r": 0,
"t": 20
},
"plot_bgcolor": "rgba(255, 255, 255, 1.000)",
"yaxis": {
"showticklabels": true,
"gridwidth": 0.5,
"tickvals": [
0.0,
0.1,
0.2,
0.30000000000000004
],
"visible": true,
"ticks": "inside",
"range": [
-0.009999999999999998,
0.3433333333333333
],
"domain": [
0.07897368948673088,
0.989747375328084
],
"tickmode": "array",
"linecolor": "rgba(0, 0, 0, 1.000)",
"showgrid": true,
"title": "Frequency",
"mirror": false,
"tickangle": 0,
"showline": true,
"gridcolor": "rgba(0, 0, 0, 0.100)",
"titlefont": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 15
},
"tickcolor": "rgb(0, 0, 0)",
"ticktext": [
"0.0",
"0.1",
"0.2",
"0.3"
],
"zeroline": false,
"type": "-",
"tickfont": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 11
},
"zerolinecolor": "rgba(0, 0, 0, 1.000)",
"anchor": "x1"
},
"legend": {
"tracegroupgap": 0,
"bordercolor": "rgba(0, 0, 0, 1.000)",
"bgcolor": "rgba(255, 255, 255, 1.000)",
"font": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 11
},
"y": 1.0,
"x": 1.0
},
"width": 576
}
);
</script>
<h1>Logistic regression</h1>
<p>Let&#39;s assume O-rings independently fail with the same probability which solely depends on temperature. A logistic regression should allow us to estimate the influence of temperature.</p>
<pre class='hljl'>
<span class='hljl-n'>model</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>glm</span><span class='hljl-p'>(</span><span class='hljl-nd'>@formula</span><span class='hljl-p'>(</span><span class='hljl-n'>Frequency</span><span class='hljl-t'> </span><span class='hljl-oB'>~</span><span class='hljl-t'> </span><span class='hljl-n'>Temperature</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>data</span><span class='hljl-p'>,</span><span class='hljl-t'>
</span><span class='hljl-nf'>Binomial</span><span class='hljl-p'>(),</span><span class='hljl-t'> </span><span class='hljl-nf'>LogitLink</span><span class='hljl-p'>())</span><span class='hljl-t'>
</span><span class='hljl-n'>α</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>β</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>coef</span><span class='hljl-p'>(</span><span class='hljl-n'>model</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>σα</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>σβ</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>stderror</span><span class='hljl-p'>(</span><span class='hljl-n'>model</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'></span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>deviance</span><span class='hljl-p'>(</span><span class='hljl-n'>model</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>nDOF</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>Int</span><span class='hljl-p'>(</span><span class='hljl-nf'>dof_residual</span><span class='hljl-p'>(</span><span class='hljl-n'>model</span><span class='hljl-p'>))</span><span class='hljl-t'>
</span><span class='hljl-n'>model</span>
</pre>
<pre class="output">
StatsModels.TableRegressionModel&#123;GeneralizedLinearModel&#123;GLM.GlmResp&#123;Array&#123;Float64,1&#125;,Binomial&#123;Float64&#125;,LogitLink&#125;,GLM.DensePredChol&#123;Float64,LinearAlgebra.Cholesky&#123;Float64,Array&#123;Float64,2&#125;&#125;&#125;&#125;,Array&#123;Float64,2&#125;&#125;
Frequency ~ 1 &#43; Temperature
Coefficients:
────────────────────────────────────────────────────────────────────────────
Estimate Std. Error z value Pr&#40;&gt;|z|&#41; Lower 95&#37; Upper 95&#37;
────────────────────────────────────────────────────────────────────────────
&#40;Intercept&#41; 5.08498 7.47703 0.68008 0.4965 -9.56973 19.7397
Temperature -0.115601 0.115184 -1.00362 0.3156 -0.341358 0.110156
────────────────────────────────────────────────────────────────────────────
</pre>
<p>The maximum likelyhood estimator of the intercept and of Temperature are thus <span class="math">$\hat{\alpha}=5.085$</span> and <span class="math">$\hat{\beta}=-0.116$</span>.</p>
<p>This corresponds to the values from the article of Dalal et al. The standard errors are <span class="math">$s_{\hat{\alpha}} = 7.477$</span> and <span class="math">$s_{\hat{\beta}} = 0.115$</span>, which is different from the <span class="math">$3.052$</span> and <span class="math">$0.047$</span> reported by Dallal et al. The deviance is <span class="math">$G^2 = 3.014$</span> with 22 degrees of freedom.</p>
<p>I cannot find any value similar to the Goodness of fit &#40;<span class="math">$G^2=18.086$</span>&#41; reported by Dalal et al. However, the number of degrees of freedom is similar to theirs &#40;21&#41;.</p>
<p>There seems to be something wrong. Oh I know, I haven&#39;t indicated that my observations are actually the result of 6 observations for each rocket launch. The correct way to do this would be to weight the data using the <code>Count</code> column. Since I don&#39;t know how to do that with the <a href="https://github.com/JuliaStats/GLM.jl">GLM</a> package I&#39;m using, I will simply duplicate the data:</p>
<pre class='hljl'>
<span class='hljl-n'>weighted_data</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>DataFrame</span><span class='hljl-p'>(</span><span class='hljl-n'>Temperature</span><span class='hljl-oB'>=</span><span class='hljl-n'>Int</span><span class='hljl-p'>[],</span><span class='hljl-t'> </span><span class='hljl-n'>Frequency</span><span class='hljl-oB'>=</span><span class='hljl-n'>Float64</span><span class='hljl-p'>[])</span><span class='hljl-t'>
</span><span class='hljl-k'>for</span><span class='hljl-t'> </span><span class='hljl-n'>row</span><span class='hljl-t'> </span><span class='hljl-kp'>in</span><span class='hljl-t'> </span><span class='hljl-nf'>eachrow</span><span class='hljl-p'>(</span><span class='hljl-n'>data</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-k'>for</span><span class='hljl-t'> </span><span class='hljl-n'>_</span><span class='hljl-t'> </span><span class='hljl-kp'>in</span><span class='hljl-t'> </span><span class='hljl-ni'>1</span><span class='hljl-oB'>:</span><span class='hljl-n'>row</span><span class='hljl-oB'>.</span><span class='hljl-n'>Count</span><span class='hljl-t'>
</span><span class='hljl-nf'>push!</span><span class='hljl-p'>(</span><span class='hljl-n'>weighted_data</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-p'>(</span><span class='hljl-n'>Temperature</span><span class='hljl-oB'>=</span><span class='hljl-n'>row</span><span class='hljl-oB'>.</span><span class='hljl-n'>Temperature</span><span class='hljl-p'>,</span><span class='hljl-t'>
</span><span class='hljl-n'>Frequency</span><span class='hljl-oB'>=</span><span class='hljl-n'>row</span><span class='hljl-oB'>.</span><span class='hljl-n'>Frequency</span><span class='hljl-p'>))</span><span class='hljl-t'>
</span><span class='hljl-k'>end</span><span class='hljl-t'>
</span><span class='hljl-k'>end</span><span class='hljl-t'>
</span><span class='hljl-n'>model</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>glm</span><span class='hljl-p'>(</span><span class='hljl-nd'>@formula</span><span class='hljl-p'>(</span><span class='hljl-n'>Frequency</span><span class='hljl-t'> </span><span class='hljl-oB'>~</span><span class='hljl-t'> </span><span class='hljl-n'>Temperature</span><span class='hljl-p'>),</span><span class='hljl-t'> </span><span class='hljl-n'>weighted_data</span><span class='hljl-p'>,</span><span class='hljl-t'>
</span><span class='hljl-nf'>Binomial</span><span class='hljl-p'>(),</span><span class='hljl-t'> </span><span class='hljl-nf'>LogitLink</span><span class='hljl-p'>())</span><span class='hljl-t'>
</span><span class='hljl-n'>α</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>β</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>coef</span><span class='hljl-p'>(</span><span class='hljl-n'>model</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>σα</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>σβ</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>stderror</span><span class='hljl-p'>(</span><span class='hljl-n'>model</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'></span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>deviance</span><span class='hljl-p'>(</span><span class='hljl-n'>model</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>nDOF</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>Int</span><span class='hljl-p'>(</span><span class='hljl-nf'>dof_residual</span><span class='hljl-p'>(</span><span class='hljl-n'>model</span><span class='hljl-p'>))</span><span class='hljl-t'>
</span><span class='hljl-n'>model</span>
</pre>
<pre class="output">
StatsModels.TableRegressionModel&#123;GeneralizedLinearModel&#123;GLM.GlmResp&#123;Array&#123;Float64,1&#125;,Binomial&#123;Float64&#125;,LogitLink&#125;,GLM.DensePredChol&#123;Float64,LinearAlgebra.Cholesky&#123;Float64,Array&#123;Float64,2&#125;&#125;&#125;&#125;,Array&#123;Float64,2&#125;&#125;
Frequency ~ 1 &#43; Temperature
Coefficients:
─────────────────────────────────────────────────────────────────────────────
Estimate Std. Error z value Pr&#40;&gt;|z|&#41; Lower 95&#37; Upper 95&#37;
─────────────────────────────────────────────────────────────────────────────
&#40;Intercept&#41; 5.08498 3.05248 1.66585 0.0957 -0.897782 11.0677
Temperature -0.115601 0.0470238 -2.45835 0.0140 -0.207766 -0.0234362
─────────────────────────────────────────────────────────────────────────────
</pre>
<p>Good, now I have recovered the asymptotic standard errors <span class="math">$s_{\hat{\alpha}} = 3.052$</span> and <span class="math">$s_{\hat{\beta}} = 0.047$</span>,</p>
<p>The Goodness of fit &#40;Deviance&#41; indicated for this model is <span class="math">$G^2 = 18.086$</span> with 137 degrees of freedom. Now <span class="math">$G^2$</span> is in good accordance to the results of the Dalal <em>et al.</em> article, but the number of degrees of freedom is 6 times larger than i should, due to my tampering of the data to duplicate them instead of weighting them.</p>
<h1>Predicting failure probability</h1>
<p>The temperature when launching the shuttle was 31°F. Let&#39;s try to estimate the failure probability for such temperature using our model:</p>
<pre class='hljl'>
<span class='hljl-n'>prediction</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>DataFrame</span><span class='hljl-p'>(</span><span class='hljl-n'>Temperature</span><span class='hljl-oB'>=</span><span class='hljl-ni'>30</span><span class='hljl-oB'>:</span><span class='hljl-nfB'>0.25</span><span class='hljl-oB'>:</span><span class='hljl-ni'>90</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-n'>prediction</span><span class='hljl-oB'>.</span><span class='hljl-n'>Frequency</span><span class='hljl-t'> </span><span class='hljl-oB'>=</span><span class='hljl-t'> </span><span class='hljl-nf'>predict</span><span class='hljl-p'>(</span><span class='hljl-n'>model</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>prediction</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot</span><span class='hljl-p'>(</span><span class='hljl-n'>xlabel</span><span class='hljl-oB'>=</span><span class='hljl-s'>&quot;Temperature [F]&quot;</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>ylabel</span><span class='hljl-oB'>=</span><span class='hljl-s'>&quot;Frequency&quot;</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot!</span><span class='hljl-p'>(</span><span class='hljl-n'>data</span><span class='hljl-oB'>.</span><span class='hljl-n'>Temperature</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>data</span><span class='hljl-oB'>.</span><span class='hljl-n'>Frequency</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>seriestype</span><span class='hljl-oB'>=:</span><span class='hljl-n'>scatter</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>label</span><span class='hljl-oB'>=</span><span class='hljl-s'>&quot;data&quot;</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>plot!</span><span class='hljl-p'>(</span><span class='hljl-n'>prediction</span><span class='hljl-oB'>.</span><span class='hljl-n'>Temperature</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>prediction</span><span class='hljl-oB'>.</span><span class='hljl-n'>Frequency</span><span class='hljl-p'>,</span><span class='hljl-t'> </span><span class='hljl-n'>label</span><span class='hljl-oB'>=</span><span class='hljl-s'>&quot;prediction&quot;</span><span class='hljl-p'>)</span><span class='hljl-t'>
</span><span class='hljl-nf'>disp</span><span class='hljl-p'>()</span>
</pre>
<div id="e862177e-031e-4363-8515-b6f4128e30a1" style="width:576px;height:384px;"></div>
<script>
PLOT = document.getElementById('e862177e-031e-4363-8515-b6f4128e30a1');
Plotly.plot(PLOT, [
{
"xaxis": "x1",
"colorbar": {
"title": ""
},
"yaxis": "y1",
"x": [
66.0,
70.0,
69.0,
68.0,
67.0,
72.0,
73.0,
70.0,
57.0,
63.0,
70.0,
78.0,
67.0,
53.0,
67.0,
75.0,
70.0,
81.0,
76.0,
79.0,
75.0,
76.0,
58.0
],
"showlegend": true,
"mode": "markers",
"name": "data",
"zmin": null,
"legendgroup": "data",
"marker": {
"symbol": "circle",
"color": "rgba(0, 154, 250, 1.000)",
"line": {
"color": "rgba(0, 0, 0, 1.000)",
"width": 1
},
"size": 8
},
"zmax": null,
"y": [
0.0,
0.16666666666666666,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.16666666666666666,
0.16666666666666666,
0.16666666666666666,
0.0,
0.0,
0.3333333333333333,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.3333333333333333,
0.0,
0.16666666666666666
],
"type": "scatter"
},
{
"xaxis": "x1",
"colorbar": {
"title": ""
},
"yaxis": "y1",
"x": [
30.0,
30.25,
30.5,
30.75,
31.0,
31.25,
31.5,
31.75,
32.0,
32.25,
32.5,
32.75,
33.0,
33.25,
33.5,
33.75,
34.0,
34.25,
34.5,
34.75,
35.0,
35.25,
35.5,
35.75,
36.0,
36.25,
36.5,
36.75,
37.0,
37.25,
37.5,
37.75,
38.0,
38.25,
38.5,
38.75,
39.0,
39.25,
39.5,
39.75,
40.0,
40.25,
40.5,
40.75,
41.0,
41.25,
41.5,
41.75,
42.0,
42.25,
42.5,
42.75,
43.0,
43.25,
43.5,
43.75,
44.0,
44.25,
44.5,
44.75,
45.0,
45.25,
45.5,
45.75,
46.0,
46.25,
46.5,
46.75,
47.0,
47.25,
47.5,
47.75,
48.0,
48.25,
48.5,
48.75,
49.0,
49.25,
49.5,
49.75,
50.0,
50.25,
50.5,
50.75,
51.0,
51.25,
51.5,
51.75,
52.0,
52.25,
52.5,
52.75,
53.0,
53.25,
53.5,
53.75,
54.0,
54.25,
54.5,
54.75,
55.0,
55.25,
55.5,
55.75,
56.0,
56.25,
56.5,
56.75,
57.0,
57.25,
57.5,
57.75,
58.0,
58.25,
58.5,
58.75,
59.0,
59.25,
59.5,
59.75,
60.0,
60.25,
60.5,
60.75,
61.0,
61.25,
61.5,
61.75,
62.0,
62.25,
62.5,
62.75,
63.0,
63.25,
63.5,
63.75,
64.0,
64.25,
64.5,
64.75,
65.0,
65.25,
65.5,
65.75,
66.0,
66.25,
66.5,
66.75,
67.0,
67.25,
67.5,
67.75,
68.0,
68.25,
68.5,
68.75,
69.0,
69.25,
69.5,
69.75,
70.0,
70.25,
70.5,
70.75,
71.0,
71.25,
71.5,
71.75,
72.0,
72.25,
72.5,
72.75,
73.0,
73.25,
73.5,
73.75,
74.0,
74.25,
74.5,
74.75,
75.0,
75.25,
75.5,
75.75,
76.0,
76.25,
76.5,
76.75,
77.0,
77.25,
77.5,
77.75,
78.0,
78.25,
78.5,
78.75,
79.0,
79.25,
79.5,
79.75,
80.0,
80.25,
80.5,
80.75,
81.0,
81.25,
81.5,
81.75,
82.0,
82.25,
82.5,
82.75,
83.0,
83.25,
83.5,
83.75,
84.0,
84.25,
84.5,
84.75,
85.0,
85.25,
85.5,
85.75,
86.0,
86.25,
86.5,
86.75,
87.0,
87.25,
87.5,
87.75,
88.0,
88.25,
88.5,
88.75,
89.0,
89.25,
89.5,
89.75,
90.0
],
"showlegend": true,
"mode": "lines",
"name": "prediction",
"zmin": null,
"legendgroup": "prediction",
"zmax": null,
"line": {
"color": "rgba(227, 111, 71, 1.000)",
"shape": "linear",
"dash": "solid",
"width": 1
},
"y": [
0.8343729945321491,
0.8303404395482706,
0.8262301507742621,
0.8220416250063012,
0.817774406282189,
0.8134280882973987,
0.8090023168250383,
0.804496792132775,
0.7999112713893656,
0.7952455710530575,
0.7904995692337479,
0.7856732080204392,
0.7807664957651925,
0.7757795093144834,
0.7707123961785791,
0.7655653766293189,
0.7603387457164711,
0.7550328751926784,
0.7496482153368779,
0.744185296666015,
0.7386447315248507,
0.733027215543692,
0.7273335289539781,
0.7215645377517999,
0.7157211946996577,
0.7098045401570411,
0.7038157027307677,
0.6977558997364355,
0.6916264374628388,
0.6854287112317441,
0.6791642052460566,
0.6728344922200988,
0.666441232786479,
0.6599861746748452,
0.6534711516587098,
0.6468980822674514,
0.6402689682615972,
0.6335858928705154,
0.6268510187927153,
0.6200665859600667,
0.6132349090683641,
0.6063583748778226,
0.5994394392882448,
0.5924806241947568,
0.5854845141311654,
0.5784537527091304,
0.5713910388624514,
0.5642991229068514,
0.5571808024266807,
0.5500389180009383,
0.5428763487819457,
0.5356960079408601,
0.5285008379949963,
0.5212938060326261,
0.5140778988515446,
0.5068561180281956,
0.4996314749345776,
0.4924069857204715,
0.4851856662787247,
0.4779705272114517,
0.47076456881498563,
0.46357077610131336,
0.4563921138735051,
0.44923152187231224,
0.44209191001069065,
0.4349761537124744,
0.4278870893707977,
0.4208275099411642,
0.4138001606832668,
0.40680773506479373,
0.39985287083952786,
0.3929381463110585,
0.3860660767923737,
0.37923911127052695,
0.37245962928445564,
0.36572993802288195,
0.3590522696480814,
0.35242877885013985,
0.34586154063516156,
0.3393525483497468,
0.3329037119429306,
0.3265168564656702,
0.3201937208069072,
0.31393595666419893,
0.3077451277459338,
0.30162270920122125,
0.2955700872726619,
0.2895885591664015,
0.2836793331331148,
0.2778435287528768,
0.2720821774162679,
0.26639622299350313,
0.2607865226828959,
0.25525384802955275,
0.249798886104856,
0.24442224083700642,
0.2391244344826909,
0.23390590922979299,
0.22876702892096915,
0.22370808088789118,
0.21872927788597865,
0.21383076011951677,
0.2090125973471875,
0.20427479105820717,
0.19961727670947108,
0.1950399260143586,
0.19054254927412537,
0.18612489774312097,
0.18178666601940532,
0.1775274944526878,
0.17334697156189055,
0.16924463645502494,
0.16521998124446513,
0.16127245345111377,
0.15740145839136546,
0.15360636154118626,
0.1498864908720423,
0.1462411391538237,
0.14266956622031157,
0.13917100119313955,
0.13574464466059075,
0.13238967080795028,
0.12910522949650427,
0.12589044828863363,
0.12274443441679084,
0.11966627669447896,
0.11665504736766594,
0.11370980390536166,
0.11082959072837197,
0.10801344087550532,
0.10526037760675964,
0.10256941594325082,
0.09993956414385886,
0.09736982511877146,
0.09485919778029053,
0.09240667833143555,
0.09001126149303501,
0.08767194167013932,
0.08538771405871287,
0.0831575756936799,
0.08098052643949967,
0.07885556992453378,
0.07678171442054815,
0.07475797366875855,
0.0727833676538836,
0.07085692332771698,
0.06897767528376893,
0.06714466638455384,
0.06535694834312447,
0.0636135822604664,
0.06191363912037254,
0.06025620024342098,
0.05864035770167245,
0.05706521469569536,
0.05552988589551237,
0.05403349774704249,
0.052575188745591785,
0.05115410967792009,
0.04976942383438114,
0.04842030719260539,
0.0471059485741575,
0.04582554977556969,
0.04457832567511219,
0.043363504316624515,
0.0421803269716941,
0.04102804818142671,
0.039905935779012996,
0.038813270894256194,
0.03774934794118315,
0.036713474589819994,
0.03570497172317438,
0.03472317338042357,
0.03376742668726787,
0.032837091774370254,
0.03193154168476222,
0.031050162271057585,
0.030192352083279427,
0.02935752224806677,
0.028545096339991714,
0.0277545102456837,
0.026985212021421776,
0.026236661744822722,
0.025508331361221583,
0.024799704525308587,
0.024110276438556306,
0.023439553682942635,
0.022787054051445665,
0.022152306375760253,
0.02153485035165899,
0.02093423636239639,
0.020350025300529845,
0.019781788388507835,
0.019229106998354638,
0.018691572470758495,
0.018168785933850056,
0.01766035812193932,
0.017165909194459938,
0.01668506855535212,
0.0162174746730995,
0.015762774901618322,
0.015320625302182434,
0.014890690466553641,
0.014472643341472706,
0.01406616505465329,
0.013670944742409543,
0.013286679379035727,
0.01291307360804536,
0.012549839575367538,
0.012196696764587796,
0.011853371834311528,
0.011519598457720067,
0.011195117164380578,
0.010879675184363433,
0.010573026294713973,
0.010274930668318326,
0.009985154725196585,
0.009703470986251296,
0.009429657929493154,
0.009163499848760623,
0.00890478671494593,
0.008653314039734879,
0.008408882741863815,
0.008171299015893661,
0.007940374203496888,
0.007715924667250078,
0.007497771666922003,
0.007285741238244001,
0.007079664074146817,
0.0068793754084461355,
0.006684714901956439,
0.006495526531010921,
0.006311658478363718,
0.0061329630264486765,
0.00595929645296774,
0.00579051892878043,
0.005626494418065105,
0.00546709058072131,
0.005312178676981671,
0.0051616334742012205,
0.005015333155791099,
0.004873159232262993
],
"type": "scatter"
}
]
, {
"showlegend": true,
"xaxis": {
"showticklabels": true,
"gridwidth": 0.5,
"tickvals": [
30.0,
40.0,
50.0,
60.0,
70.0,
80.0,
90.0
],
"visible": true,
"ticks": "inside",
"range": [
28.2,
91.8
],
"domain": [
0.07965529916399339,
0.9931649168853892
],
"tickmode": "array",
"linecolor": "rgba(0, 0, 0, 1.000)",
"showgrid": true,
"title": "Temperature [F]",
"mirror": false,
"tickangle": 0,
"showline": true,
"gridcolor": "rgba(0, 0, 0, 0.100)",
"titlefont": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 15
},
"tickcolor": "rgb(0, 0, 0)",
"ticktext": [
"30",
"40",
"50",
"60",
"70",
"80",
"90"
],
"zeroline": false,
"type": "-",
"tickfont": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 11
},
"zerolinecolor": "rgba(0, 0, 0, 1.000)",
"anchor": "y1"
},
"paper_bgcolor": "rgba(255, 255, 255, 1.000)",
"annotations": [],
"height": 384,
"margin": {
"l": 0,
"b": 20,
"r": 0,
"t": 20
},
"plot_bgcolor": "rgba(255, 255, 255, 1.000)",
"yaxis": {
"showticklabels": true,
"gridwidth": 0.5,
"tickvals": [
0.0,
0.2,
0.4,
0.6000000000000001,
0.8
],
"visible": true,
"ticks": "inside",
"range": [
-0.02503118983596447,
0.8594041843681135
],
"domain": [
0.07897368948673088,
0.989747375328084
],
"tickmode": "array",
"linecolor": "rgba(0, 0, 0, 1.000)",
"showgrid": true,
"title": "Frequency",
"mirror": false,
"tickangle": 0,
"showline": true,
"gridcolor": "rgba(0, 0, 0, 0.100)",
"titlefont": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 15
},
"tickcolor": "rgb(0, 0, 0)",
"ticktext": [
"0.0",
"0.2",
"0.4",
"0.6",
"0.8"
],
"zeroline": false,
"type": "-",
"tickfont": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 11
},
"zerolinecolor": "rgba(0, 0, 0, 1.000)",
"anchor": "x1"
},
"legend": {
"tracegroupgap": 0,
"bordercolor": "rgba(0, 0, 0, 1.000)",
"bgcolor": "rgba(255, 255, 255, 1.000)",
"font": {
"color": "rgba(0, 0, 0, 1.000)",
"family": "sans-serif",
"size": 11
},
"y": 1.0,
"x": 1.0
},
"width": 576
}
);
</script>
<p>This figure is very similar to the Figure 4 of Dalal <em>et al</em>.</p>
<!-- Local Variables: -->
<!-- mode: markdown -->
<!-- ispell-local-dictionary: "french" -->
<!-- End: -->
<HR/>
<div class="footer"><p>
Published from <a href="challenger.jmd">challenger.jmd</a> using
<a href="http://github.com/mpastell/Weave.jl">Weave.jl</a>
on 2020-04-16.
<p></div>
</div>
</div>
</div>
</BODY>
</HTML>
---
title : "Risk Analysis of the Space Shuttle: Pre-Challenger Prediction of Failure"
options:
css: skeleton_css.css
template: julia_html.tpl
---
In this document we reperform some of the analysis provided in *Risk Analysis of
the Space Shuttle: Pre-Challenger Prediction of Failure* by Siddhartha R. Dalal,
Edward B. Fowlkes, Bruce Hoadley published in Journal of the American
Statistical Association, Vol. 84, No. 408 (Dec., 1989), pp. 945-957 and
available at [http://www.jstor.org/stable/2290069](http://www.jstor.org/stable/2290069).
On the fourth page of this article, they indicate that the maximum likelihood
estimates of the logistic regression using only temperature are:
$\hat{\alpha}=5.085$ and $\hat{\beta}=-0.1156$ and their asymptotic standard
errors are $s_{\hat{\alpha}}=3.052$ and $s_{\hat{\beta}}=0.047$. The Goodness of
fit indicated for this model was $G^2=18.086$ with 21 degrees of freedom. Our
goal is to reproduce the computation behind these values and the Figure 4 of
this article, possibly in a nicer looking way.
# Technical information on the computer on which the analysis is run
We will be using the [Julia](http://julialang.org) language:
```julia
using InteractiveUtils
versioninfo()
```
The computations rely on a number of packages in the Julia ecosystem. The direct
dependencies are summarized hereafter; the complete environment is described in
the [`Manifest.toml`](Manifest.toml) file.
```julia
# Setup environment
using Pkg
Pkg.activate(@__DIR__)
Pkg.instantiate()
# Load dependencies
using HTTP, CSV
using Plots; plotly()
using GLM
using DataFrames
using Printf
include("utils.jl")
# Summary
Pkg.status()
```
# Loading and inspecting data
Let's start by reading data.
```julia
res = HTTP.request(:GET, "https://app-learninglab.inria.fr/moocrr/gitlab/moocrr-session3/moocrr-reproducibility-study/raw/master/data/shuttle.csv?inline=false")
data = CSV.read(res.body)
```
We know from our previous experience on this data set that filtering data is a
really bad idea. We will therefore process it as such.
```julia; results="raw"
data.Frequency = data.Malfunction ./ data.Count
plot(xlabel="Temperature [F]", ylabel="Frequency")
plot!(data.Temperature, data.Frequency, seriestype=:scatter, label=nothing)
disp()
```
# Logistic regression
Let's assume O-rings independently fail with the same probability which solely
depends on temperature. A logistic regression should allow us to estimate the
influence of temperature.
```julia; wrap=false; hold=true
model = glm(@formula(Frequency ~ Temperature), data,
Binomial(), LogitLink())
α, β = coef(model)
σα, σβ = stderror(model)
G² = deviance(model)
nDOF = Int(dof_residual(model))
model
```
The maximum likelyhood estimator of the intercept and of Temperature are thus
$\hat{\alpha}=`j @printf "%.3f" α`$ and
$\hat{\beta}=`j @printf "%.3f" β`$.
This corresponds to the values from the article of Dalal et al. The standard
errors are
$s_{\hat{\alpha}} = `j @printf "%.3f" σα`$ and
$s_{\hat{\beta}} = `j @printf "%.3f" σβ`$,
which is different from the $3.052$ and $0.047$ reported by Dallal et al. The
deviance is
$G^2 = `j @printf "%.3f" G²`$ with `j nDOF` degrees of freedom.
I cannot find any value similar to the Goodness of fit ($G^2=18.086$) reported
by Dalal et al. However, the number of degrees of freedom is similar to theirs
(21).
There seems to be something wrong. Oh I know, I haven't indicated that my
observations are actually the result of 6 observations for each rocket
launch. The correct way to do this would be to weight the data using the `Count`
column. Since I don't know how to do that with the
[GLM](https://github.com/JuliaStats/GLM.jl) package I'm using, I will simply
duplicate the data:
```julia; wrap=false; hold=true
weighted_data = DataFrame(Temperature=Int[], Frequency=Float64[])
for row in eachrow(data)
for _ in 1:row.Count
push!(weighted_data, (Temperature=row.Temperature,
Frequency=row.Frequency))
end
end
model = glm(@formula(Frequency ~ Temperature), weighted_data,
Binomial(), LogitLink())
α, β = coef(model)
σα, σβ = stderror(model)
G² = deviance(model)
nDOF = Int(dof_residual(model))
model
```
Good, now I have recovered the asymptotic standard errors
$s_{\hat{\alpha}} = `j @printf "%.3f" σα`$ and
$s_{\hat{\beta}} = `j @printf "%.3f" σβ`$,
The Goodness of fit (Deviance) indicated for this model is
$G^2 = `j @printf "%.3f" G²`$ with `j nDOF` degrees of freedom. Now $G^2$ is in
good accordance to the results of the Dalal *et al.* article, but the number of
degrees of freedom is 6 times larger than i should, due to my tampering of the
data to duplicate them instead of weighting them.
# Predicting failure probability
The temperature when launching the shuttle was 31°F. Let's try to estimate the
failure probability for such temperature using our model:
```julia; results="raw"
prediction = DataFrame(Temperature=30:0.25:90)
prediction.Frequency = predict(model, prediction)
plot(xlabel="Temperature [F]", ylabel="Frequency")
plot!(data.Temperature, data.Frequency, seriestype=:scatter, label="data")
plot!(prediction.Temperature, prediction.Frequency, label="prediction")
disp()
```
This figure is very similar to the Figure 4 of Dalal *et al*.
<!-- Local Variables: -->
<!-- mode: markdown -->
<!-- ispell-local-dictionary: "french" -->
<!-- End: -->
<!DOCTYPE html>
<HTML lang = "en">
<HEAD>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
{{#:title}}<title>{{:title}}</title>{{/:title}}
{{{ :header_script }}}
<script src="plotly-latest.min.js"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]},
TeX: { equationNumbers: { autoNumber: "AMS" } }
});
</script>
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
{{{ :highlightcss }}}
<style type="text/css">
{{{ :themecss }}}
</style>
</HEAD>
<BODY>
<div class ="container">
<div class = "row">
<div class = "col-md-12 twelve columns">
<div class="title">
{{#:title}}<h1 class="title">{{:title}}</h1>{{/:title}}
{{#:author}}<h5>{{{:author}}}</h5>{{/:author}}
{{#:date}}<h5>{{{:date}}}</h5>{{/:date}}
</div>
{{{ :body }}}
<HR/>
<div class="footer"><p>
Published from <a href="{{{:source}}}">{{{:source}}}</a> using
<a href="http://github.com/mpastell/Weave.jl">Weave.jl</a>
{{:wversion}} on {{:wtime}}.
<p></div>
</div>
</div>
</div>
</BODY>
</HTML>
This source diff could not be displayed because it is too large. You can view the blob instead.
@font-face {
font-style: normal;
font-weight: 300;
}
@font-face {
font-style: normal;
font-weight: 400;
}
@font-face {
font-style: normal;
font-weight: 600;
}
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
body {
margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
display: block;
}
audio,
canvas,
progress,
video {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
audio:not([controls]) {
display: none;
height: 0;
}
[hidden],
template {
display: none;
}
a:active,
a:hover {
outline: 0;
}
abbr[title] {
border-bottom: 1px dotted;
}
b,
strong {
font-weight: bold;
}
dfn {
font-style: italic;
}
h1 {
font-size: 2em;
margin: 0.67em 0;
}
mark {
background: #ff0;
color: #000;
}
small {
font-size: 80%;
}
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
img {
border: 0;
}
svg:not(:root) {
overflow: hidden;
}
figure {
margin: 1em 40px;
}
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
}
pre {
overflow: auto;
}
code,
kbd,
pre,
samp {
font-family: monospace, monospace;
font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
color: inherit; /* 1 */
font: inherit; /* 2 */
margin: 0; /* 3 */
}
button {
overflow: visible;
}
button,
select {
text-transform: none;
}
button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
-webkit-appearance: button; /* 2 */
cursor: pointer; /* 3 */
}
button[disabled],
html input[disabled] {
cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
border: 0;
padding: 0;
}
input {
line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
height: auto;
}
input[type="search"] {
-webkit-appearance: textfield; /* 1 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box; /* 2 */
box-sizing: content-box;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
legend {
border: 0; /* 1 */
padding: 0; /* 2 */
}
textarea {
overflow: auto;
}
optgroup {
font-weight: bold;
}
table {
font-family: monospace, monospace;
font-size : 0.8em;
border-collapse: collapse;
border-spacing: 0;
}
td,
th {
padding: 0;
}
thead th {
border-bottom: 1px solid black;
background-color: white;
}
tr:nth-child(odd){
background-color: rgb(248,248,248);
}
/*
* Skeleton V2.0.4
* Copyright 2014, Dave Gamache
* www.getskeleton.com
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
* 12/29/2014
*/
.container {
position: relative;
width: 100%;
max-width: 960px;
margin: 0 auto;
padding: 0 20px;
box-sizing: border-box; }
.column,
.columns {
width: 100%;
float: left;
box-sizing: border-box; }
@media (min-width: 400px) {
.container {
width: 85%;
padding: 0; }
}
@media (min-width: 550px) {
.container {
width: 80%; }
.column,
.columns {
margin-left: 4%; }
.column:first-child,
.columns:first-child {
margin-left: 0; }
.one.column,
.one.columns { width: 4.66666666667%; }
.two.columns { width: 13.3333333333%; }
.three.columns { width: 22%; }
.four.columns { width: 30.6666666667%; }
.five.columns { width: 39.3333333333%; }
.six.columns { width: 48%; }
.seven.columns { width: 56.6666666667%; }
.eight.columns { width: 65.3333333333%; }
.nine.columns { width: 74.0%; }
.ten.columns { width: 82.6666666667%; }
.eleven.columns { width: 91.3333333333%; }
.twelve.columns { width: 100%; margin-left: 0; }
.one-third.column { width: 30.6666666667%; }
.two-thirds.column { width: 65.3333333333%; }
.one-half.column { width: 48%; }
/* Offsets */
.offset-by-one.column,
.offset-by-one.columns { margin-left: 8.66666666667%; }
.offset-by-two.column,
.offset-by-two.columns { margin-left: 17.3333333333%; }
.offset-by-three.column,
.offset-by-three.columns { margin-left: 26%; }
.offset-by-four.column,
.offset-by-four.columns { margin-left: 34.6666666667%; }
.offset-by-five.column,
.offset-by-five.columns { margin-left: 43.3333333333%; }
.offset-by-six.column,
.offset-by-six.columns { margin-left: 52%; }
.offset-by-seven.column,
.offset-by-seven.columns { margin-left: 60.6666666667%; }
.offset-by-eight.column,
.offset-by-eight.columns { margin-left: 69.3333333333%; }
.offset-by-nine.column,
.offset-by-nine.columns { margin-left: 78.0%; }
.offset-by-ten.column,
.offset-by-ten.columns { margin-left: 86.6666666667%; }
.offset-by-eleven.column,
.offset-by-eleven.columns { margin-left: 95.3333333333%; }
.offset-by-one-third.column,
.offset-by-one-third.columns { margin-left: 34.6666666667%; }
.offset-by-two-thirds.column,
.offset-by-two-thirds.columns { margin-left: 69.3333333333%; }
.offset-by-one-half.column,
.offset-by-one-half.columns { margin-left: 52%; }
}
html {
font-size: 62.5%; }
body {
font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */
line-height: 1.6;
font-weight: 400;
font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #222; }
h1, h2, h3, h4, h5, h6 {
margin-top: 2rem;
margin-bottom: 0;
font-weight: 300; }
h1 { font-size: 3.6rem; line-height: 1.2; letter-spacing: -.1rem;}
h2 { font-size: 3.0rem; line-height: 1.25; letter-spacing: -.1rem; }
h3 { font-size: 2.8rem; line-height: 1.3; letter-spacing: -.1rem; }
h4 { font-size: 2.6rem; line-height: 1.35; letter-spacing: -.08rem; }
h5 { font-size: 2.4rem; line-height: 1.5; letter-spacing: -.05rem; }
h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; }
p {
margin-top: 0; }
a {
color: #1EAEDB; }
a:hover {
color: #0FA0CE; }
.button,
button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
display: inline-block;
height: 38px;
padding: 0 30px;
color: #555;
text-align: center;
font-size: 11px;
font-weight: 600;
line-height: 38px;
letter-spacing: .1rem;
text-transform: uppercase;
text-decoration: none;
white-space: nowrap;
background-color: transparent;
border-radius: 4px;
border: 1px solid #bbb;
cursor: pointer;
box-sizing: border-box; }
.button:hover,
button:hover,
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
.button:focus,
button:focus,
input[type="submit"]:focus,
input[type="reset"]:focus,
input[type="button"]:focus {
color: #333;
border-color: #888;
outline: 0; }
.button.button-primary,
button.button-primary,
input[type="submit"].button-primary,
input[type="reset"].button-primary,
input[type="button"].button-primary {
color: #FFF;
background-color: #33C3F0;
border-color: #33C3F0; }
.button.button-primary:hover,
button.button-primary:hover,
input[type="submit"].button-primary:hover,
input[type="reset"].button-primary:hover,
input[type="button"].button-primary:hover,
.button.button-primary:focus,
button.button-primary:focus,
input[type="submit"].button-primary:focus,
input[type="reset"].button-primary:focus,
input[type="button"].button-primary:focus {
color: #FFF;
background-color: #1EAEDB;
border-color: #1EAEDB; }
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea,
select {
height: 38px;
padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */
background-color: #fff;
border: 1px solid #D1D1D1;
border-radius: 4px;
box-shadow: none;
box-sizing: border-box; }
/* Removes awkward default styles on some inputs for iOS */
input[type="email"],
input[type="number"],
input[type="search"],
input[type="text"],
input[type="tel"],
input[type="url"],
input[type="password"],
textarea {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none; }
textarea {
min-height: 65px;
padding-top: 6px;
padding-bottom: 6px; }
input[type="email"]:focus,
input[type="number"]:focus,
input[type="search"]:focus,
input[type="text"]:focus,
input[type="tel"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
textarea:focus,
select:focus {
border: 1px solid #33C3F0;
outline: 0; }
label,
legend {
display: block;
margin-bottom: .5rem;
font-weight: 600; }
fieldset {
padding: 0;
border-width: 0; }
input[type="checkbox"],
input[type="radio"] {
display: inline; }
label > .label-body {
display: inline-block;
margin-left: .5rem;
font-weight: normal; }
ul {
list-style: circle; }
ol {
list-style: decimal; }
ul ul,
ul ol,
ol ol,
ol ul {
margin: 1.5rem 0 1.5rem 3rem;
font-size: 90%; }
li > p {margin : 0;}
th,
td {
padding: 5px 15px;
text-align: left;
border-bottom: 1px solid #E1E1E1; }
th:first-child,
td:first-child {
padding-left: 0; }
th:last-child,
td:last-child {
padding-right: 0; }
button,
.button {
margin-bottom: 1rem; }
input,
textarea,
select,
fieldset {
margin-bottom: 1.5rem; }
pre,
blockquote,
dl,
figure,
table,
p,
ul,
ol,
form {
margin-bottom: 1.0rem; }
.u-full-width {
width: 100%;
box-sizing: border-box; }
.u-max-full-width {
max-width: 100%;
box-sizing: border-box; }
.u-pull-right {
float: right; }
.u-pull-left {
float: left; }
hr {
margin-top: 3rem;
margin-bottom: 3.5rem;
border-width: 0;
border-top: 1px solid #E1E1E1; }
.container:after,
.row:after,
.u-cf {
content: "";
display: table;
clear: both; }
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
word-break: break-all;
word-wrap: break-word;
border: 1px solid #ccc;
border-radius: 4px;
}
pre.hljl {
margin: 0 0 10px;
display: block;
background: #f5f5f5;
border-radius: 4px;
padding : 5px;
}
pre.output {
background: #ffffff;
}
pre.code {
background: #ffffff;
}
pre.julia-error {
color : red
}
code,
kbd,
pre,
samp {
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
font-size: 0.9em;
}
@media (min-width: 400px) {}
@media (min-width: 550px) {}
@media (min-width: 750px) {}
@media (min-width: 1000px) {}
@media (min-width: 1200px) {}
h1.title {margin-top : 20px}
img {max-width : 100%}
div.title {text-align: center;}
body {counter-reset: h1counter;}
h1 {counter-reset: h2counter;}
h2 {counter-reset: h3counter;}
h1.title:before {
content: none;
counter-increment: none;
}
h1:before {
content: counter(h1counter) "\0000a0-\0000a0";
counter-increment: h1counter;
}
h2:before {
content: counter(h1counter) "." counter(h2counter) "\0000a0-\0000a0";
counter-increment: h2counter;
}
h3:before {
content: counter(h1counter) "." counter(h2counter) "." counter(h3counter) "\0000a0-\0000a0";
counter-increment: h3counter;
}
# Affichage des DataFrames dans la sortie HTML
using DataFrames
using Printf
function info(df::DataFrame)
try
WEAVE_ARGS
catch
display(df)
return
end
pretty(x) = x
pretty(x::Float64) = @sprintf "%.6f" x
pretty(::Type{Union{T,Missing}}) where {T} = "$T?"
function printrow(i)
print("<tr>")
print("<th>$i</th>")
for j in 1:ncol(df)
print("<td>$(pretty(df[i,j]))</td>")
end
print("</tr>")
end
function printrows()
i = 1
while i<=nrow(df) && i<=3
printrow(i)
i += 1
end
i>nrow(df) && return
if i < nrow(df)-2
print("<tr><td>...</td></tr>")
end
i = max(i, nrow(df)-2)
while i<=nrow(df)
printrow(i)
i += 1
end
end
println("$(nrow(df)) rows × $(ncol(df)) columns")
print("<table>")
print("<thead>")
print("<tr><th></th>")
for col in names(df)
print("<th>$col</th>")
end
print("</tr>")
print("<tr><th></th>")
for col in names(df)
print("<th>$(pretty(eltype(df[!,col])))</th>")
end
print("</tr>")
print("</thead>")
print("<tbody>")
printrows()
print("</tbody>")
print("</table>\n")
end
# Meilleure intégration entre Plotly et Weave
function disp()
try
WEAVE_ARGS
catch
display(plot!())
return
end
buf = IOBuffer()
show(buf, MIME("text/html"), plot!())
seekstart(buf)
str = String(read(buf))
m = match(r"<body>(.*)</body>"s, str)
return if m === nothing
str
else
m.captures[1]
end |> print
end
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment