#understanding regression with Challenger2
launch<-read.csv("challenger2.csv") #launching data
b <- cov(launch$temperature, launch$distress_ct) / var(launch$temperature) #estimating the beta
b #same as challenger data set
## [1] -0.03364796
a <- mean(launch$distress_ct) - b*mean(launch$temperature) #alpha
a #same as challenger data
## [1] 2.814585
r <- cov(launch$temperature, launch$distress_ct) / (sd(launch$temperature) * sd(launch$distress_ct)) #correlation
r #same as challenger data
## [1] -0.3359996
cor(launch$temperature, launch$distress_ct) #same way to find correlation
## [1] -0.3359996
r * (sd(launch$distress_ct) / sd(launch$temperature)) #slope
## [1] -0.03364796
model <- lm(distress_ct ~ temperature, data = launch) #use lm to comfirm the regression line
model
##
## Call:
## lm(formula = distress_ct ~ temperature, data = launch)
##
## Coefficients:
## (Intercept) temperature
## 2.81458 -0.03365
summary(model) #looking at values for temperature, for one increase in temperature, distress lowers by estimate of -0.034. P value greater than .05, so reject. In the challenger data set, the p-value was lower, so fail to reject
##
## Call:
## lm(formula = distress_ct ~ temperature, data = launch)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.0649 -0.4929 -0.2573 0.3052 1.7090
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.81458 1.24629 2.258 0.0322 *
## temperature -0.03365 0.01815 -1.854 0.0747 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.7076 on 27 degrees of freedom
## Multiple R-squared: 0.1129, Adjusted R-squared: 0.08004
## F-statistic: 3.436 on 1 and 27 DF, p-value: 0.07474
reg<- function (y,x) { #simple multiple regression function
x <- as.matrix(x)
x<- cbind(Intercept = 1, x)
b <- solve(t(x) %*% x) %*% t(x) %*% y
colnames(b)<- "estimate"
print(b)
}
str(launch) #examining data
## 'data.frame': 29 obs. of 4 variables:
## $ distress_ct : int 0 1 0 0 0 0 0 0 1 1 ...
## $ temperature : int 66 70 69 68 67 72 73 70 57 63 ...
## $ field_check_pressure: int 50 50 50 50 50 50 100 100 200 200 ...
## $ flight_num : int 1 2 3 4 5 6 7 8 9 10 ...
reg(y=launch$distress_ct, x = launch[2]) #testing with simple regression
## estimate
## Intercept 2.81458456
## temperature -0.03364796
reg(y=launch$distress_ct, x = launch[2:4]) #now with multiple regression
## estimate
## Intercept 2.239817e+00
## temperature -3.124185e-02
## field_check_pressure -2.586765e-05
## flight_num 2.762455e-02
model <- lm(distress_ct ~ temperature + field_check_pressure + flight_num, data = launch) #confirming multuple regression results
model
##
## Call:
## lm(formula = distress_ct ~ temperature + field_check_pressure +
## flight_num, data = launch)
##
## Coefficients:
## (Intercept) temperature field_check_pressure
## 2.240e+00 -3.124e-02 -2.587e-05
## flight_num
## 2.762e-02
summary(model) #All p-values are greater than 0.05, while in the original data set, temperature was lower
##
## Call:
## lm(formula = distress_ct ~ temperature + field_check_pressure +
## flight_num, data = launch)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.2744 -0.3335 -0.1657 0.2975 1.5284
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.240e+00 1.267e+00 1.767 0.0894 .
## temperature -3.124e-02 1.787e-02 -1.748 0.0927 .
## field_check_pressure -2.587e-05 2.383e-03 -0.011 0.9914
## flight_num 2.762e-02 1.798e-02 1.537 0.1369
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6926 on 25 degrees of freedom
## Multiple R-squared: 0.2132, Adjusted R-squared: 0.1188
## F-statistic: 2.259 on 3 and 25 DF, p-value: 0.1063