From ea1baf090f108b2ffd3e897ffb24f31ae51a619b Mon Sep 17 00:00:00 2001 From: Eduardo Junior <edujrrib@gmail.com> Date: Mon, 30 Nov 2015 13:24:18 -0200 Subject: [PATCH] =?UTF-8?q?Adiciona=20app=20de=20regress=C3=A3o=20elaborad?= =?UTF-8?q?o=20na=20feira=20de=20cursos=202015?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shiny/regressao/global.R | 307 +++++++++++++++++++++++++++++++++++++++ shiny/regressao/server.R | 146 +++++++++++++++++++ shiny/regressao/ui.R | 66 +++++++++ 3 files changed, 519 insertions(+) create mode 100644 shiny/regressao/global.R create mode 100644 shiny/regressao/server.R create mode 100644 shiny/regressao/ui.R diff --git a/shiny/regressao/global.R b/shiny/regressao/global.R new file mode 100644 index 0000000..9952909 --- /dev/null +++ b/shiny/regressao/global.R @@ -0,0 +1,307 @@ +##------------------------------------------- +## global.R + +## Armazena os cinco conjuntos de dados e serem utilziados na aplicação. + +da1 <- structure(list(x = c(2.26951294421792, 2.31386722036915, 2.19865708695442, +2.2718416065365, 2.06818586174616, 2.34242268082221, 2.13033376849501, +1.98227123303957, 1.93951925261862, 2.18943416340103, 2.12385164096709, +2.48855071650044, 2.12710479836481, 1.98227123303957, 2.19865708695442, +1.97772360528885, 1.96848294855394, 2.20980980578538, 1.98677173426624, +2.25767857486918, 1.79239168949825, 2.09691001300806, 2.26951294421792, +2.31806333496276, 2.07554696139253, 2.12385164096709, 2.25042000230889, +1.92941892571429, 2.38381536598043, 2.64542226934909, 2.17318626841227, +2.27875360095283, 1.90308998699194, 2.15271631110641, 1.95424250943932, +2.25297432534792, 1.79934054945358, 2.48945221029981, 2.34242268082221, +1.98227123303957, 2.05690485133647, 1.93282876690085, 2.38381536598043, +1.8750612633917, 2.00860017176192, 2.41830129131975, 1.89762709129044, +2.28564730890073, 2.35793484700045, 2.07918124604762, 2.41979058610636, +2.0899051114394, 2.31806333496276, 2.17609125905568, 2.07834804955536, +1.93449845124357, 2, 2.65224634100332, 1.85901814388889, 2.37657695705651, +2, 2.13033376849501, 1.95904139232109, 1.9731278535997, 2.25527250510331, +2.22530928172586, 2.11058971029925, 2.30535136944662, 2.2148438480477, +2.20139712432045, 2.37106786227174, 2.05717144154727, 2.23044892137827, +1.88326385958497, 2.39619934709574, 2.12385164096709, 2.13033376849501, +2.14597290280218, 2, 2.02530586526477, 1.99122607569249, 2.37839790094814, +2.18184358794477, 2.06445798922692, 2.02118929906994, 2.03342375548695, +2.26717172840301, 1.99563519459755, 2.30319605742049, 2.49415459401844, +2.02118929906994, 1.8750612633917, 2.20411998265593, 1.78532983501077, +2.14612803567824, 1.9731278535997, 1.97570746353718, 2.43136376415899, +2.11058971029925, 2.12710479836481, 1.79934054945358, 2.38560627359831, +2.07188200730613, 2.228272002124, 2.00432137378264, 1.81954393554187, +1.88649072517248, 1.88649072517248, 2.32221929473392, 1.97607473161987, +1.92941892571429, 2.11394335230684, 2.29666519026153, 1.99563519459755, +2.02530586526477, 2.16731733474818, 2.25527250510331, 1.98677173426624, +2.26481782300954, 2.24797326636181, 2.14301480025409, 2.6232492903979, +2.07554696139253, 2.07554696139253, 2.20411998265593, 1.98227123303957, +2.07918124604762, 2.15228834438306, 2.34242268082221, 2.34242268082221, +1.82607480270083, 2.07918124604762, 2.22530928172586, 2.39967372148104, +2.54406804435028, 2.07704069834246, 1.98227123303957, 2.59988307207369, +2.34242268082221, 2.38021124171161, 2.07554696139253, 2.06069784035361, +2.72916478969277, 2.30102999566398, 2.34242268082221, 2.52633927738984, +2.07554696139253, 2.78816837114117, 2.10037054511756, 1.79239168949825, +2.39794000867204, 2.00860017176192, 1.95904139232109, 1.97772360528885, +1.98227123303957, 1.79934054945358, 1.88649072517248, 2.23719173657514, +2.34194864641251, 2.00860017176192, 2.28555730900777, 2.28555730900777, +2.25767857486918, 2.54032947479087, 2.51587384371168, 2.11058971029925, +2.0899051114394, 2.29225607135648, 1.8926510338773, 2.19904173446148 +), y = c(5.8750612633917, 6.31175386105575, 5.83884909073726, +5.8750612633917, 5.80277372529198, 5.9912260756925, 5.94448267215017, +5.89359533381988, 5.64345267648619, 5.84503599351341, 6.05557287924696, +6.44337252540488, 5.64345267648619, 5.87800447026803, 6.07371835034612, +5.7160033436348, 5.79934054945358, 5.99782308074573, 5.54406804435028, +6.15182934013187, 5.5854607295085, 5.78958071216443, 5.84509804001426, +6.25527250510331, 5.70757017609794, 6.07162061587781, 5.95424250943933, +5.64246452024212, 6.39794000867204, 6.62838893005031, 5.8750612633917, +5.8750612633917, 5.60042832573213, 5.89762709129044, 5.73239375982297, +5.95424250943933, 5.40654018043396, 6.45409142974485, 6.04139268515823, +5.87806773197336, 5.75579865697383, 5.72427586960079, 6.09691001300806, +5.66275783168157, 5.70757017609794, 6.10380372095596, 5.81291335664286, +6.11706901982914, 6.17609125905568, 5.74036268949424, 6.06069784035361, +5.62736585659273, 6.17026171539496, 5.63346845557959, 5.82077269664988, +5.65321251377534, 5.75141229799872, 6.39794000867204, 5.66275783168157, +5.97543180850926, 5.75659427401299, 5.74036268949424, 5.57401968638712, +5.71591981743358, 5.8750612633917, 6.03758584282662, 5.9030356967885, +5.91487181754005, 5.99782308074573, 5.82607480270083, 6.56818998621967, +5.63144376901317, 6.06069784035361, 5.857947311556, 6.29003461136252, +5.98677173426625, 5.80617997398389, 6.08545470125041, 5.66275783168157, +5.81291335664286, 5.73878055848437, 5.9912260756925, 5.90036712865647, +5.78532983501077, 5.74741180788642, 5.81291335664286, 5.8750612633917, +5.69897000433602, 6.04139268515823, 5.92941892571429, 5.84503599351341, +5.59659709562646, 5.96378782734556, 5.63346845557959, 5.83884909073726, +5.81291335664286, 5.68124123737559, 5.93951925261862, 5.50514997831991, +5.90036712865647, 5.53147891704226, 6.03342375548695, 5.76342799356294, +5.97772360528885, 5.72427586960079, 5.59659709562646, 5.64779359503524, +5.64788642066577, 6.01283722470517, 5.83569057149243, 5.75676538858497, +5.54282542695918, 6.13033376849501, 5.61909333062674, 5.63346845557959, +5.81291335664286, 6.04139268515823, 5.69897000433602, 6.04921802267018, +6, 5.90308998699194, 6.32221929473392, 5.81167284514892, 5.99564089741694, +6.11394335230684, 5.88081359228079, 5.77085201164214, 5.8750612633917, +6.04139229034488, 6.29666519026153, 5.47421626407626, 6.11394335230684, +5.89209460269048, 6.07918124604763, 6.14612803567824, 5.77627757665637, +5.60745502321467, 6.73431968085901, 5.9912260756925, 6.34242268082221, +5.8521749044203, 5.80896139026791, 6.19033169817029, 5.8750612633917, +6.04139229034488, 6.02118929906994, 5.80949237693734, 6.26717172840301, +5.86332286012046, 5.53147891704226, 6.03342375548695, 5.77815125038364, +5.57401968638712, 5.67209785793572, 5.87806773197336, 5.5910646070265, +5.74429298312268, 6.04139268515823, 6.29885307640971, 5.81291335664286, +6.14432507840049, 6.19423674872383, 6.15182934013187, 6.21748394421391, +6.39792263654532, 5.95065688250451, 5.77451696572855, 5.65321251377534, +5.56702636615906, 6.07408468902824)), .Names = c("x", "y"), row.names = c(NA, +-170L), class = "data.frame") + +da2 <- structure(list(x = c(4.59814682255627, 4.97096953789867, 7.82927702219041, +7.14576871072934, 8.88560804899388, 9.25843076433627, 5.34379225324107, +8.57492245287521, 12.4895609639704, 5.34379225324107, 4.2874612264376, +6.02730056470214, 5.71661496858347, 6.77294599538694, 8.20209973753281, +7.14576871072934, 7.45645430684801, 11.4332299371669, 7.14576871072934, +6.02730056470214, 6.02730056470214, 10.3147617911397, 6.02730056470214, +7.45645430684801, 10.3147617911397, 9.25843076433627, 4.97096953789867, +7.45645430684801, 9.25843076433627, 3.5418157957528, 4.59814682255627, +5.34379225324107, 6.02730056470214, 10.0040761950211, 5.71661496858347, +5.34379225324107, 8.88560804899388, 6.02730056470214, 4.2874612264376, +8.57492245287521, 7.14576871072934, 6.77294599538694, 5.71661496858347, +4.97096953789867, 8.57492245287521, 7.14576871072934, 9.25843076433627, +12.8623836793128, 5.71661496858347, 7.14576871072934, 6.40012328004454, +3.9146385110952, 1.05633102680347, 2.85830748429174, 3.9146385110952, +4.97096953789867, 4.97096953789867, 6.40012328004454, 7.14576871072934, +9.25843076433627, 4.97096953789867, 2.54762188817307, 5.71661496858347, +5.71661496858347, 6.77294599538694, 2.85830748429174, 6.77294599538694, +3.1689930804104, 3.9146385110952, 3.5418157957528, 4.59814682255627, +5.34379225324107, 8.88560804899388, 9.25843076433627, 9.25843076433627, +8.88560804899388, 4.2874612264376, 6.40012328004454, 3.9146385110952, +3.1689930804104, 7.14576871072934, 4.2874612264376, 6.02730056470214, +7.14576871072934, 5.34379225324107, 4.97096953789867, 5.34379225324107, +7.45645430684801, 4.59814682255627, 4.59814682255627, 4.59814682255627, +5.71661496858347, 4.2874612264376, 8.57492245287521, 4.59814682255627, +4.2874612264376, 4.59814682255627, 2.85830748429174, 2.48548476894934, +6.40012328004454, 4.97096953789867, 5.34379225324107, 7.14576871072934, +7.14576871072934, 7.14576871072934, 6.02730056470214, 7.14576871072934, +6.40012328004454, 3.9146385110952, 4.59814682255627, 6.77294599538694, +6.40012328004454, 9.63125347967868, 8.88560804899388, 7.82927702219041, +6.02730056470214, 2.11266205360694, 4.97096953789867, 3.5418157957528, +6.02730056470214, 1.42915374214587, 3.9146385110952, 3.9146385110952, +4.2874612264376, 3.1689930804104, 1.73983933826453, 2.85830748429174, +4.59814682255627, 9.63125347967868, 6.77294599538694, 6.40012328004454, +6.77294599538694, 6.02730056470214, 9.25843076433627, 9.63125347967868, +3.9146385110952, 6.77294599538694, 7.14576871072934, 4.2874612264376, +8.57492245287521, 6.40012328004454, 6.40012328004454, 4.97096953789867, +7.82927702219041, 5.71661496858347, 6.40012328004454, 6.40012328004454, +10.3147617911397, 4.2874612264376, 8.20209973753281, 8.88560804899388, +4.97096953789867, 7.14576871072934), y = c(19.4444444444444, +22.2222222222222, 23.3333333333333, 16.6666666666667, 13.3333333333333, +18.8888888888889, 18.3333333333333, 15, 16.1111111111111, 20.5555555555556, +23.3333333333333, 20.5555555555556, 18.8888888888889, 20, 14.4444444444444, +17.7777777777778, 18.8888888888889, 13.8888888888889, 20, 16.6666666666667, +15, 22.7777777777778, 16.1111111111111, 16.1111111111111, 13.8888888888889, +14.4444444444444, 13.8888888888889, 19.4444444444444, 27.2222222222222, +26.1111111111111, 24.4444444444444, 25.5555555555556, 23.3333333333333, +19.4444444444444, 28.8888888888889, 29.4444444444444, 26.1111111111111, +27.7777777777778, 30.5555555555556, 32.2222222222222, 30.5555555555556, +33.8888888888889, 33.3333333333333, 27.7777777777778, 26.6666666666667, +26.1111111111111, 25, 22.2222222222222, 18.3333333333333, 22.7777777777778, +24.4444444444444, 25, 24.4444444444444, 24.4444444444444, 24.4444444444444, +23.8888888888889, 25.5555555555556, 22.7777777777778, 26.6666666666667, +25, 28.3333333333333, 28.8888888888889, 29.4444444444444, 27.2222222222222, +28.8888888888889, 28.3333333333333, 28.3333333333333, 31.1111111111111, +33.3333333333333, 33.3333333333333, 31.6666666666667, 27.7777777777778, +22.7777777777778, 27.2222222222222, 32.7777777777778, 26.6666666666667, +27.2222222222222, 27.7777777777778, 28.8888888888889, 30.5555555555556, +29.4444444444444, 23.3333333333333, 27.2222222222222, 27.7777777777778, +30, 29.4444444444444, 27.7777777777778, 30, 31.1111111111111, +30, 28.3333333333333, 27.2222222222222, 27.2222222222222, 27.2222222222222, +27.7777777777778, 30, 29.4444444444444, 30.5555555555556, 31.6666666666667, +32.2222222222222, 32.2222222222222, 33.3333333333333, 30, 30, +27.7777777777778, 26.6666666666667, 26.1111111111111, 25, 26.1111111111111, +24.4444444444444, 25.5555555555556, 25.5555555555556, 25, 22.2222222222222, +23.8888888888889, 26.1111111111111, 27.2222222222222, 30, 31.1111111111111, +36.1111111111111, 34.4444444444444, 35.5555555555556, 34.4444444444444, +32.7777777777778, 33.3333333333333, 33.8888888888889, 33.8888888888889, +30.5555555555556, 28.8888888888889, 26.6666666666667, 25.5555555555556, +23.8888888888889, 22.7777777777778, 27.2222222222222, 24.4444444444444, +25, 21.6666666666667, 21.6666666666667, 25.5555555555556, 19.4444444444444, +24.4444444444444, 20, 27.7777777777778, 17.7777777777778, 21.6666666666667, +27.2222222222222, 20.5555555555556, 17.2222222222222, 21.1111111111111, +25, 23.8888888888889, 24.4444444444444, 20)), .Names = c("x", +"y"), row.names = c(NA, -153L), class = "data.frame") + +da3 <- structure(list(x = c(2.48548476894934, 2.48548476894934, 4.34959834566134, +4.34959834566134, 4.97096953789867, 5.59234073013601, 6.21371192237334, +6.21371192237334, 6.21371192237334, 6.83508311461067, 6.83508311461067, +7.45645430684801, 7.45645430684801, 7.45645430684801, 7.45645430684801, +8.07782549908534, 8.07782549908534, 8.07782549908534, 8.07782549908534, +8.69919669132267, 8.69919669132267, 8.69919669132267, 8.69919669132267, +9.32056788356001, 9.32056788356001, 9.32056788356001, 9.94193907579734, +9.94193907579734, 10.5633102680347, 10.5633102680347, 10.5633102680347, +11.184681460272, 11.184681460272, 11.184681460272, 11.184681460272, +11.8060526525093, 11.8060526525093, 11.8060526525093, 12.4274238447467, +12.4274238447467, 12.4274238447467, 12.4274238447467, 12.4274238447467, +13.6701662292213, 14.2915374214587, 14.912908613696, 14.912908613696, +14.912908613696, 14.912908613696, 15.5342798059333), y = c(0.60960741282614, +3.0480370641307, 1.21921482565228, 6.70568154108754, 4.87685930260912, +3.0480370641307, 5.48646671543526, 7.92489636673982, 10.3633260180444, +5.18166300902219, 8.53450377956596, 4.26725188978298, 6.0960741282614, +7.31528895391368, 8.53450377956596, 7.92489636673982, 10.3633260180444, +10.3633260180444, 14.0209704950012, 7.92489636673982, 10.9729334308705, +18.2882223847842, 24.3842965130456, 6.0960741282614, 7.92489636673982, +16.4594001463058, 9.75371860521824, 12.1921482565228, 9.75371860521824, +12.1921482565228, 15.2401853206535, 12.8017556693489, 17.0690075591319, +23.1650816873933, 25.6035113386979, 10.9729334308705, 14.0209704950012, +20.7266520360888, 9.75371860521824, 14.6305779078274, 15.8497927334796, +17.0690075591319, 19.5074372104365, 20.1170446232626, 16.4594001463058, +21.3362594489149, 28.0419409900024, 28.3467446964155, 36.5764447695684, +25.9083150451109)), .Names = c("x", "y"), row.names = c(NA, -50L +), class = "data.frame") + +da4 <- structure(list(x = c(4.749, 5.298, 4.377, 5.382, 5.406, 4.443, +5.462, 3.738, 4.514, 6.459, 3.589, 3.676, 3.846, 4.296, 3.133, +3.708, 5.295, 4.376, 4.151, 3.924, 4.666, 4.293, 3.317, 5.333, +3.914, 6.423, 4.232, 4.517, 4.849, 4.168, 5.232, 5.505, 4.727, +4.254, 4.159, 4.649, 4.031, 5.939, 3.695, 3.867, 5.604, 4.447, +4.525, 5.419, 4.761, 3.234, 4.867, 3.657, 4.652, 4.963, 4.469, +4.237, 4.206, 3.428, 4.261, 6.124, 3.57, 4.664, 4.584, 3.765, +5.976, 4.073, 4.906, 7.208, 4.178, 5.152, 3.969, 4.997, 4.455, +4.428, 5.134, 4.757, 5.096, 5.117, 5.013, 3.781, 4.296, 3.256, +2.721, 3.665, 3.364, 5.092, 4.885, 5.063, 5.325, 3.417, 3.733, +4.207, 4.088, 4.825, 5.046, 5.306, 5.489, 5.165, 5.834, 3.677, +4.294, 5.048, 4.762, 4.736, 4.397, 3.961, 3.692, 3.878, 4.159, +3.784, 4.825, 4.35, 4.634, 5.447, 3.684, 5.969, 5.614, 3.644, +5.37, 4.238, 4.854, 7.53, 3.183, 4.807, 5.081, 3.838, 4.922, +4.376, 4.786, 4.161, 6.639, 4.06, 4.18, 4.647, 2.976, 2.987, +4.316, 3.971, 3.288, 4.567, 5.406, 3.703, 4.412, 4.832, 4.988, +4.651, 4.931, 4.885, 4.907, 4.699, 3.671, 3.77, 5.109, 4.829, +3.179, 4.359, 5.099, 6.108, 4.636, 3.854, 4.827, 4.151, 3.964, +3.998, 4.564, 8.474, 3.656, 5.482, 4.666, 4.007, 3.79, 4.248, +4.463, 5.022), y = c(177.66, 273.623, 152.141, 268.79, 258.82, +199.126, 256.809, 155.142, 172.367, 268.695, 182.056, 165.451, +150.73, 139.938, 119.783, 154.89, 194.313, 203.051, 188.663, +170.913, 234.613, 183.346, 129.969, 276.057, 131.436, 285.771, +218.135, 187.686, 226.665, 179.516, 208.887, 236.158, 204.963, +178.954, 125.223, 172.024, 147.621, 304.072, 129.926, 160.714, +276.228, 193.014, 208.782, 275.6, 206.015, 121.515, 226.497, +148.148, 217.927, 243.897, 165.849, 135.8, 155.137, 116.831, +168.413, 294.642, 127.929, 185.704, 200.031, 110.78, 263.552, +135.371, 222.464, 439.345, 167.322, 241.098, 174.917, 216.96, +148.013, 179.336, 225.51, 187.134, 307.732, 256.811, 197.645, +115.001, 164.899, 123.825, 105.857, 115.595, 133.364, 215.073, +223.675, 219.519, 213.039, 129.134, 107.812, 178.026, 181.053, +233.775, 196.799, 184.675, 308.038, 237.208, 337.951, 132.054, +229.359, 246.795, 205.043, 187.541, 218.836, 159.568, 153.635, +153.211, 165.946, 159.605, 187.834, 185.606, 168.155, 250.682, +168.216, 288.47, 265.26, 151.391, 281.669, 162.575, 205.184, +465.371, 122.746, 258.667, 231.459, 189.646, 209.919, 172.165, +194.849, 176.711, 367.002, 162.191, 158.602, 195.351, 103.886, +122.486, 195.615, 170.872, 109.449, 208.601, 312.63, 154.414, +164.949, 214.373, 234.006, 196.793, 195.08, 224.451, 205.889, +191.309, 145.515, 133.473, 217.992, 197.319, 140.406, 206.67, +204.657, 311.289, 209.255, 150.665, 264.649, 184.543, 142.504, +153.621, 206.345, 619.822, 145.07, 262.244, 213.188, 180.135, +149.802, 154.582, 190.411, 225.564)), .Names = c("x", "y"), row.names = c(NA, +-170L), class = "data.frame") + +da5 <- structure(list(x = c(31.442, 40.8, 56, 45, 50, 44, 30, 41, 55, +60, 42, 44.5, 38, 32, 32, 29, 33, 46, 44, 35.5, 37, 45.67, 50.149, +34.291, 20.457, 30.672, 17.866, 80, 31, 69.331, 54, 36.371, 61.8, +34, 34, 28.02, 24, 48.676, 58, 31.846, 40, 14.5, 19.854, 41, +26.1, 15.5, 39.5, 6, 46.5, 25, 43, 43.079, 10.5, 47, 24, 20, +9, 24, 50.4, 36.4, 44.31, 60, 20.7, 13.5, 33.387, 15.909, 42, +41, 16, 26, 19, 0.801, 7.4, 8.9, 29, 14.4, 23, 21.748, 14.376, +27, 1, 40, 20.5, 15, 4.1, 11.9, 10, 16, 20, 49.5, 53, 39, 64, +43, 57, 25, 40, 29.825, 36, 40, 29, 30.166, 30, 55.678, 43, 39, +19, 42.5, 27, 55, 10, 0.1, 40.112, 26, 11, 42.6, 45, 34, 31.5, +24, 39.074, 40, 37.5, 42.688, 19.158, 22, 19.6, 32.7, 13.8, 11, +30, 42, 58, 34.924, 39, 23.314, 24.71, 35.736, 37.046, 25.478, +54, 45.035, 61.1, 29, 37.747, 26, 20, 10, 50, 32.18, 31, 47, +0.1, 33, 22.401, 44.5, 32, 23, 10, 8, 12, 37, 31, 12.081, 17, +37.747, 51.661, 29, 34, 20, 17, 30, 66.9, 10.943, 15, 20.756, +10, 26.554, 0.5, 27, 34.006, 30, 11, 28.65, 28, 9.5, 4.9, 31.63, +10, 0.542, 27.67, 29, 21.78, 26, 15, 8, 11, 6, 8, 30.85, 23, +1.9, 3.9, 13.5, 8, 8, 12.5, 1.85, 18, 1.56, 4.65, 1.9, 35, 38.5, +43.5, 32, 34.5, 17.569, 30.3, 38, 25, 42, 32, 32.961, 61.5, 34.723, +39, 48.2, 40, 46.784, 28, 39.7, 38, 35, 27, 54, 64.4, 21, 25, +38.5, 40, 7, 22, 14, 39.1, 16, 41, 18, 25.673, 34.25, 35, 86, +19.6, 40, 38, 16.5, 34.183, 60.4, 19, 35, 32, 25, 24, 74, 29.27, +3.15, 39, 10, 30, 15, 22, 29.775, 16, 19, 28, 39, 16, 35, 51, +0.1, 13, 38, 25, 13, 5.8, 42.93, 30.584, 46, 38.5, 38.1, 13, +30, 54, 0.1, 48, 8, 45, 19.453, 15, 24.2, 35, 32, 27, 25, 41, +29, 44, 18.219, 20.208, 37, 22, 37, 0.1, 40.663, 28, 31, 55.5, +40, 16.333, 18, 13.224, 5, 46, 10.5, 35.092, 42, 15, 46, 30.642, +2, 9, 14.393, 6, 4.6, 0.1, 8.3, 9.6, 45, 0.1, 4, 5.8, 13, 0.1, +29, 16.034, 2, 8, 6.5, 4.567, 11.2, 0.9, 3.139, 6, 0.1, 35, 45, +33, 78, 26.84, 15, 27.557, 19.5, 1.74, 6.6), y = c(41.99, 42.5, +42.9, 43.8, 43.999, 44.9, 45, 45.3, 45.5, 45.99, 46.2, 46.7, +46.9, 46.9, 46.99, 46.99, 46.999, 47, 47.49, 47.5, 47.7, 47.9, +47.99, 47.99, 47.99, 47.99, 48.49, 48.49, 48.5, 48.69, 48.9, +48.9, 49, 49.5, 49.7, 49.8, 49.8, 49.89, 49.9, 49.9, 49.9, 49.9, +49.99, 50, 50.3, 50.45, 50.5, 50.8, 50.89, 50.9, 50.99, 50.99, +50.999, 51, 51, 51.45, 51.5, 51.5, 51.7, 51.7, 51.9, 52.9, 52.9, +53, 53.9, 54.89, 54.899, 54.9, 54.99, 55, 55.9, 56.49, 56.8, +56.89, 56.9, 57, 57, 57.89, 57.89, 58, 58.8, 58.9, 58.9, 58.99, +59.8, 59.9, 59.999, 60, 68.5, 38, 42.5, 42.99, 42.99, 43.9, 45.7, +45.9, 46.5, 46.5, 46.59, 46.9, 46.9, 46.99, 46.99, 46.99, 47.5, +47.8, 47.9, 47.9, 47.9, 47.9, 47.9, 47.9, 47.99, 48, 48, 48.5, +48.8, 48.89, 48.9, 48.9, 48.99, 48.99, 48.99, 48.999, 49, 49.8, +49.8, 49.9, 49.9, 49.9, 49.9, 49.97, 49.99, 49.99, 49.99, 49.99, +49.99, 49.99, 49.99, 49.99, 50, 50.89, 50.9, 50.9, 50.99, 51, +51.8, 51.9, 51.9, 51.9, 51.9, 51.9, 51.9, 51.99, 51.99, 51.99, +52, 52, 52.49, 52.5, 52.8, 52.9, 52.9, 52.9, 52.9, 52.99, 52.99, +52.999, 53, 53.9, 53.9, 53.9, 53.9, 53.9, 53.99, 54, 54.49, 54.9, +54.9, 54.9, 54.99, 54.999, 55, 55, 55.5, 55.5, 55.9, 55.999, +56, 56.49, 56.5, 56.9, 56.9, 56.9, 56.9, 56.99, 57.9, 57.9, 58, +58.8, 58.9, 59, 59.9, 59.95, 60, 61.5, 61.8, 61.99, 62.9, 62.99, +63, 67.9, 38.9, 41.1, 41.5, 41.9, 43.5, 43.5, 43.5, 43.89, 43.9, +43.9, 44, 44.49, 44.5, 44.9, 44.9, 45.69, 45.9, 45.99, 46, 46.5, +46.5, 46.8, 46.9, 46.9, 46.9, 46.9, 46.99, 46.99, 46.99999, 47.5, +47.5, 47.5, 47.8, 47.9, 47.9, 47.99, 47.99, 47.99, 48, 48, 48.5, +48.5, 48.5, 48.5, 48.59, 48.799, 48.9, 48.9, 48.9, 48.9, 48.9, +48.9, 48.99, 49, 49.8, 49.8, 49.8, 49.8, 49.9, 49.9, 49.9, 49.9, +49.9, 49.9, 49.9, 49.9, 49.9, 49.9, 49.9, 49.9, 49.9, 49.98, +49.99, 49.99, 49.99, 50.49, 50.5, 50.99, 50.99, 51, 51.6, 51.8, +51.8, 51.8, 51.9, 51.9, 51.9, 51.9, 51.9, 52, 52.8, 52.9, 52.9, +52.9, 52.99, 52.99, 53, 53, 53, 53, 53.499, 53.9, 53.99, 54, +54.5, 54.9, 54.9, 54.9, 54.9, 54.99, 54.99, 55, 55, 55, 55, 55.9, +55.9, 56, 56, 56, 56.8, 56.99, 56.999, 57, 57.5, 57.8, 57.9, +57.9, 58.5, 58.8, 58.9, 59.9, 59.9, 59.9, 59.9, 59.99, 60, 61.2, +61.9, 61.9, 62.5, 62.999, 46.8, 48.9, 48.99, 49.9, 52.9, 54.9, +55, 59.2, 61.9, 65)), .Names = c("x", "y"), row.names = c(NA, +-364L), class = "data.frame") diff --git a/shiny/regressao/server.R b/shiny/regressao/server.R new file mode 100644 index 0000000..9b74ef2 --- /dev/null +++ b/shiny/regressao/server.R @@ -0,0 +1,146 @@ +##------------------------------------------- +## server.R + +library(shiny) +## Carrega template das aplicações elaboradas pelo projeto iguiR2 +source("../template.R") + +shinyServer( + function(input, output){ + ## Cabeçalho IGUIR2 + output$header <- renderPrint({ + template("TEMA") + }) + + ## Objetos para armazenar as coordenadas + val <- reactiveValues(x = NULL, y = NULL, z = FALSE) + + ## Salva a posição dos dois pontos + observe({ + if (is.null(input$plot_click)){ + return() + } + isolate({ + val$x <- c(val$x, input$plot_click$x) + val$y <- c(val$y, input$plot_click$y) + }) + }) + + ## Limpa os objetos reativos estimulado pelo `input$clear` + observe({ + if (input$clear > 0){ + val$x <- NULL + val$y <- NULL + val$z <- FALSE + } + }) + + ## Habilita exibição estimulado pelo `input$result` + observe({ + if (input$result > 0){ + val$z <- TRUE + } + }) + + ## Limpa o gráfico quando se troca de area em `input$area` + observeEvent(input$area, { + val$x <- NULL + val$y <- NULL + val$z <- FALSE + }) + + ## Escolha do intervalo de confiança exibido + output$interval <- renderUI({ + if(val$z) { + radioButtons("inter", "Intervalo de confiança", + c("Para a média" = "confidence", + "Para os dados" = "prediction")) + } + }) + + ## Gráfico de dispersão + output$plot <- renderPlot({ + ## Conjunto de dados pré-definido + da <- switch( + input$area, + "Mercado Imobiliário" = da1, + "Meteorologia" = da2, + "Segurança Veicular" = da3, + "Relação Salarial" = da4, + "Mercado Automobilístico" = da5 + ) + + ## Labels definidos para cada conjunto + opt <- switch( + input$area, + "Mercado Imobiliário" = + list(ylab = "Preço de Venda Imovéis em log(R$)", + xlab = "Área dos Imóveis em log(m²)", + main = "Preço de Imovéis em Curitiba-PR"), + + "Meteorologia" = + list(ylab = "Temperatura Máxima em °C", + xlab = "Velocidade Média do Vento em km/h", + main = "Temperatura Máxima em Nova York"), + + "Segurança Veicular" = list( + ylab = "Distância Percorrida em metros", + xlab = "Velocidade do Veículo em km/h", + main = "Distância Para a Frenagem de um Veículo"), + + "Relação Salarial" = list( + ylab = "Renda Familiar Per Capita Média em R$", + xlab = "Média de Anos Estudados de Pessoas a Partir de 25 anos", + main = "Renda Familiar per capita de Curitiba em 2000"), + + "Mercado Automobilístico" = list( + ylab = "Preço dos Veículos em 1.000 R$", + xlab = "Quilometragem do Veículo em 1.000 Km", + main = "Preço de Carros Renault Duster") + ) + + ## Gráfico de dispesão com linhas em azul nas extremidades + ## dos dados + par(mar = c(4, 4, 1, 2), family = "Palatino") + plot(y ~ x, data = da, type = "n", main = opt$main, + xlab = opt$xlab, ylab = opt$ylab, + ylim = extendrange(da$y, f = 0.1)); grid() + points(y ~ x, data = da, pch = 19, + col = rgb(0.5, 0.5, 0.5, 0.5)) + abline(v = extendrange(da$x, f = 0.015), + col = rgb(0, 0, 1, 0.15), + lwd = 10) + + + if(length(val$x) > 0){ + points(x = val$x[1:2], + y = val$y[1:2], + pch = 19, + col = "red", + cex = 1.2) + segments(val$x[1], val$y[1], + val$x[2], val$y[2], + lwd = 2, col = "red") + } + + if(val$z){ + rg <- extendrange(da$x, f = 0.2) + pred <- expand.grid( + x = seq(rg[1], rg[2], length.out = 50)) + + model <- lm(y ~ x, data = da) + aux1 <- predict(model, newdata = pred, + interval = input$inter) + pred1 <- cbind(pred, aux1) + + lines(fit ~ x, data = pred1, col = "blue", lwd = 2) + lines(lwr ~ x, data = pred1, lty=3, col = "blue") + lines(upr ~ x, data = pred1, lty = 3, col = "blue") + with(pred1, + polygon(c(x, rev(x)), c(lwr, rev(upr)), + col=rgb(0.1, 0.1, 0.1, 0.2), border = NA) + ) + } + }, height = 500) + } +) diff --git a/shiny/regressao/ui.R b/shiny/regressao/ui.R new file mode 100644 index 0000000..21bf417 --- /dev/null +++ b/shiny/regressao/ui.R @@ -0,0 +1,66 @@ +##------------------------------------------- +## ui.R + +library(shiny) + +text <- "<div style=\"text-align:justify; +padding-left: 20px; padding-right: 20px\"> +<p> Este aplicativo exemplifica uma das técnicas mais utilizadas em +Estatística, a regressão linear simples. +</p> +<p> +O jogo consiste no objetivo traçar um reta, clicando em dois pontos +(um em cada extremidade em azul), que passe o mais perto possível de +todos os pontos. São apresentados exemplos de 5 áreas diferentes onde +esta técnica pode ser aplicada. +</p></div> +" + +shinyUI( + fluidPage( + ## Cabeçalho IGUIR2 + htmlOutput("header"), + + titlePanel("Regressão Simples"), + + sidebarLayout( + sidebarPanel( + ## Texto de apoio + HTML(text), + + hr(), + + ## Grandes áreas paara escolha + selectInput( + "area", "Áreas", + c("Mercado Imobiliário", + "Meteorologia", + "Segurança Veicular", + "Relação Salarial", + "Mercado Automobilístico"), + multiple = FALSE, + selectize = FALSE, + selected = "Financeiro"), + + hr(), + + ## Botões para visualizar o modelo e recomeçar o jogo + actionButton(inputId = "result", + label = "Ver Resultado", + class = "btn btn-info"), + actionButton(inputId = "clear", + label = "Recomeçar", + class = "btn btn-warning"), + + hr(), + + ## Escolha do tipo de intervalo de confiança + uiOutput("interval") + ), + + mainPanel( + plotOutput("plot", click = "plot_click") + ) + ) + ) +) -- GitLab