** DATA_605_Discussion_12_Regression_2 **
http://rpubs.com/danthonn/382369
** Real World Data **
if (!require(RCurl)) install.packages("RCurl")
## Loading required package: RCurl
## Loading required package: bitops
if (!require(stringr)) install.packages("stringr")
## Loading required package: stringr
library(RCurl)
library(stringr)
library(knitr)
if (!require(tidyr)) install.packages("tidyr")
## Loading required package: tidyr
##
## Attaching package: 'tidyr'
## The following object is masked from 'package:RCurl':
##
## complete
if (!require(dplyr)) install.packages("dplyr")
## Loading required package: dplyr
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(tidyr)
library(dplyr)
if (!require(gvlma)) install.packages("gvlma")
## Loading required package: gvlma
library(gvlma)
** Assign_12_Regression_Real_World Data **
The attached who.csv dataset contains real-world data from 2008. The variables included follow. Country: name of the country LifeExp: average life expectancy for the country in years InfantSurvival: proportion of those surviving to one year or more Under5Survival: proportion of those surviving to five years or more TBFree: proportion of the population without TB. PropMD: proportion of the population who are MDs PropRN: proportion of the population who are RNs PersExp: mean personal expenditures on healthcare in US dollars at average exchange rate GovtExp: mean government expenditures per capita on healthcare, US dollars at average exchange rate TotExp: sum of personal and government expenditures. 1. Provide a scatterplot of LifeExp~TotExp, and run simple linear regression. Do not transform the variables. Provide and interpret the F statistics, R^2, standard error,and p-values only. Discuss whether the assumptions of simple linear regression met. 2. Raise life expectancy to the 4.6 power (i.e., LifeExp^4.6). Raise total expenditures to the 0.06 power (nearly a log transform, TotExp^.06). Plot LifeExp^4.6 as a function of TotExp^.06, and r re-run the simple regression model using the transformed variables. Provide and interpret the F statistics, R^2, standard error, and p-values. Which model is “better?” 3. Using the results from 3, forecast life expectancy when TotExp^.06 =1.5. Then forecast life expectancy when TotExp^.06=2.5. 4. Build the following multiple regression model and interpret the F Statistics, R^2, standard error, and p-values. How good is the model? LifeExp = b0+b1 x PropMd + b2 x TotExp +b3 x PropMD x TotExp 5. Forecast LifeExp when PropMD=.03 and TotExp = 14. Does this forecast seem realistic? Why or why not?
url <- 'https://raw.githubusercontent.com/danthonn/DATA_605_Assign_12_DThonn/master/who.csv'
who1 <- read.csv(url)
str(who1)
## 'data.frame': 190 obs. of 10 variables:
## $ Country : Factor w/ 190 levels "Afghanistan",..: 1 2 3 4 5 6 7 8 9 10 ...
## $ LifeExp : int 42 71 71 82 41 73 75 69 82 80 ...
## $ InfantSurvival: num 0.835 0.985 0.967 0.997 0.846 0.99 0.986 0.979 0.995 0.996 ...
## $ Under5Survival: num 0.743 0.983 0.962 0.996 0.74 0.989 0.983 0.976 0.994 0.996 ...
## $ TBFree : num 0.998 1 0.999 1 0.997 ...
## $ PropMD : num 2.29e-04 1.14e-03 1.06e-03 3.30e-03 7.04e-05 ...
## $ PropRN : num 0.000572 0.004614 0.002091 0.0035 0.001146 ...
## $ PersExp : int 20 169 108 2589 36 503 484 88 3181 3788 ...
## $ GovtExp : int 92 3128 5184 169725 1620 12543 19170 1856 187616 189354 ...
## $ TotExp : int 112 3297 5292 172314 1656 13046 19654 1944 190797 193142 ...
glimpse(who1)
## Observations: 190
## Variables: 10
## $ Country <fctr> Afghanistan, Albania, Algeria, Andorra, Angola...
## $ LifeExp <int> 42, 71, 71, 82, 41, 73, 75, 69, 82, 80, 64, 74,...
## $ InfantSurvival <dbl> 0.835, 0.985, 0.967, 0.997, 0.846, 0.990, 0.986...
## $ Under5Survival <dbl> 0.743, 0.983, 0.962, 0.996, 0.740, 0.989, 0.983...
## $ TBFree <dbl> 0.99769, 0.99974, 0.99944, 0.99983, 0.99656, 0....
## $ PropMD <dbl> 0.000228841, 0.001143127, 0.001060478, 0.003297...
## $ PropRN <dbl> 0.000572294, 0.004614439, 0.002091362, 0.003500...
## $ PersExp <int> 20, 169, 108, 2589, 36, 503, 484, 88, 3181, 378...
## $ GovtExp <int> 92, 3128, 5184, 169725, 1620, 12543, 19170, 185...
## $ TotExp <int> 112, 3297, 5292, 172314, 1656, 13046, 19654, 19...
head(who1)
## Country LifeExp InfantSurvival Under5Survival TBFree
## 1 Afghanistan 42 0.835 0.743 0.99769
## 2 Albania 71 0.985 0.983 0.99974
## 3 Algeria 71 0.967 0.962 0.99944
## 4 Andorra 82 0.997 0.996 0.99983
## 5 Angola 41 0.846 0.740 0.99656
## 6 Antigua and Barbuda 73 0.990 0.989 0.99991
## PropMD PropRN PersExp GovtExp TotExp
## 1 0.000228841 0.000572294 20 92 112
## 2 0.001143127 0.004614439 169 3128 3297
## 3 0.001060478 0.002091362 108 5184 5292
## 4 0.003297297 0.003500000 2589 169725 172314
## 5 0.000070400 0.001146162 36 1620 1656
## 6 0.000142857 0.002773810 503 12543 13046
kable(head(who1))
Country | LifeExp | InfantSurvival | Under5Survival | TBFree | PropMD | PropRN | PersExp | GovtExp | TotExp |
---|---|---|---|---|---|---|---|---|---|
Afghanistan | 42 | 0.835 | 0.743 | 0.99769 | 0.0002288 | 0.0005723 | 20 | 92 | 112 |
Albania | 71 | 0.985 | 0.983 | 0.99974 | 0.0011431 | 0.0046144 | 169 | 3128 | 3297 |
Algeria | 71 | 0.967 | 0.962 | 0.99944 | 0.0010605 | 0.0020914 | 108 | 5184 | 5292 |
Andorra | 82 | 0.997 | 0.996 | 0.99983 | 0.0032973 | 0.0035000 | 2589 | 169725 | 172314 |
Angola | 41 | 0.846 | 0.740 | 0.99656 | 0.0000704 | 0.0011462 | 36 | 1620 | 1656 |
Antigua and Barbuda | 73 | 0.990 | 0.989 | 0.99991 | 0.0001429 | 0.0027738 | 503 | 12543 | 13046 |
** Question-1 **
# Question-1 Answer:
# a simple linear regression - who1
lm_who1 <- lm(who1$LifeExp ~ who1$TotExp)
# a scatter plot - who1
plot(who1$LifeExp, who1$TotExp, main="Scatterplot",
xlab="LifeExp", ylab="TotExp", pch=19)
abline(lm_who1, col = "blue")
# the residuals - who1
hist(resid(lm_who1), main = "Histogram - Residuals", xlab = "residuals")
# summary - who1
summary(lm_who1)
##
## Call:
## lm(formula = who1$LifeExp ~ who1$TotExp)
##
## Residuals:
## Min 1Q Median 3Q Max
## -24.764 -4.778 3.154 7.116 13.292
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.475e+01 7.535e-01 85.933 < 2e-16 ***
## who1$TotExp 6.297e-05 7.795e-06 8.079 7.71e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 9.371 on 188 degrees of freedom
## Multiple R-squared: 0.2577, Adjusted R-squared: 0.2537
## F-statistic: 65.26 on 1 and 188 DF, p-value: 7.714e-14
Interpretations-1: Plot: line does not appear linear and is sharply curved upward after LifeExp = 75. F statistics: large at 65.26. reject null hypothesis and no relationship between variables. R^2: R^2 is small at .2577. Only 25% of response variable explained by the independant variable. standard error: at 9.3 is large, indicating how much the avg. response variable deviates from the regression line. p-values: near zero. probability of observing this relationship is small.
** Question-2 **
# Question-2 Answer:
# a simple linear regression - who2
LifeExp4.6 <- who1$LifeExp^4.6
TotExp0.06 <- who1$TotExp^0.06
lm_who2 <- lm(LifeExp4.6 ~ TotExp0.06)
# scatter plot - who2
plot(TotExp0.06, LifeExp4.6)
abline(lm_who2, col="blue")
# residuals - who2
hist(resid(lm_who2), main = "Histogram - Residuals", xlab = "residuals")
# summary - who2
summary(lm_who2)
##
## Call:
## lm(formula = LifeExp4.6 ~ TotExp0.06)
##
## Residuals:
## Min 1Q Median 3Q Max
## -308616089 -53978977 13697187 59139231 211951764
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -736527910 46817945 -15.73 <2e-16 ***
## TotExp0.06 620060216 27518940 22.53 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 90490000 on 188 degrees of freedom
## Multiple R-squared: 0.7298, Adjusted R-squared: 0.7283
## F-statistic: 507.7 on 1 and 188 DF, p-value: < 2.2e-16
Interpretations-2: Plot: regression line does appear linear F statistics: larger at 507.7 and higher than who1.
R^2: R^2 is larger at .7283. 73% of response variable explained by the independant variable. standard error: at 90490000 is large, indicating how much the avg. response variable deviates from the regression line. p-values: p-value: < 2.2e-16 is statistically significant. less than who1 model. histogram: near normal distribution
Overall: The who2 model is much improved over the who1 model and a good linear regression fit.
** Question-3 **
Then forecast life expectancy when TotExp^.06=2.5. y=-736527910+620060216x lifeexpectancy=y(1/4.6)
life_ex <- function(x)
{ z <- -736527910 + 620060216 * (x)
z <- z^(1/4.6)
print(z)
}
# Life expectancy with TotExp^.06 =1.5
life_ex(1.5)
## [1] 63.31153
## [1] 63.31153
# Life expectancy with TotExp^.06 =2.5
life_ex(2.5)
## [1] 86.50645
## [1] 86.50645
** Question-4 **
lm_4 <- lm(who1$LifeExp ~ who1$PropMD + who1$TotExp + who1$PropMD*who1$TotExp)
summary(lm_4)
##
## Call:
## lm(formula = who1$LifeExp ~ who1$PropMD + who1$TotExp + who1$PropMD *
## who1$TotExp)
##
## Residuals:
## Min 1Q Median 3Q Max
## -27.320 -4.132 2.098 6.540 13.074
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.277e+01 7.956e-01 78.899 < 2e-16 ***
## who1$PropMD 1.497e+03 2.788e+02 5.371 2.32e-07 ***
## who1$TotExp 7.233e-05 8.982e-06 8.053 9.39e-14 ***
## who1$PropMD:who1$TotExp -6.026e-03 1.472e-03 -4.093 6.35e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8.765 on 186 degrees of freedom
## Multiple R-squared: 0.3574, Adjusted R-squared: 0.3471
## F-statistic: 34.49 on 3 and 186 DF, p-value: < 2.2e-16
hist(resid(lm_4), main = "Histogram - Residuals", xlab = "residuals")
plot(fitted(lm_4), resid(lm_4))
# Call:
# lm(formula = who1$LifeExp ~ who1$PropMD + who1$TotExp + who1$PropMD *
# who1$TotExp)
#
# Residuals:
# Min 1Q Median 3Q Max
# -27.320 -4.132 2.098 6.540 13.074
#
# Coefficients:
# Estimate Std. Error t value Pr(>|t|)
# (Intercept) 6.277e+01 7.956e-01 78.899 < 2e-16 ***
# who1$PropMD 1.497e+03 2.788e+02 5.371 2.32e-07 ***
# who1$TotExp 7.233e-05 8.982e-06 8.053 9.39e-14 ***
# who1$PropMD:who1$TotExp -6.026e-03 1.472e-03 -4.093 6.35e-05 ***
# ---
# Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#
# Residual standard error: 8.765 on 186 degrees of freedom
# Multiple R-squared: 0.3574, Adjusted R-squared: 0.3471
# F-statistic: 34.49 on 3 and 186 DF, p-value: < 2.2e-16
Interpretations-4:
1). p-value is less than .05, therefore model is statistically significant. 2). F-statistic is 34.49 on 3 3). Based on Rsquare only 34.7% of the variability can be explained by the 3 variables. 4). Residuals are right skewed. There, the linear model is not a good fit.
** Question-5 **
LifeExp=(6.277 * 10^1) +(1.497 * 10^3) * PropMD + (7.233 * 10^(-5) TotExp - ((6.026 10^(-3) * PropMD * TotExp
LifeExp5 <- ( (6.277*10^1) + (1.497*10^3)*.03 + (7.233*10^(-5))* 14 - ((6.026*10^(-3))*0.03*14) )
LifeExp5
## [1] 107.6785
## [1] 107.6785
Interpretations-5: 1). The forecast age of 107.6 is an outlier and is unlikely. 2). The expenditure is also low.
** END **