setwd("C:/Users/stina/Documents/CUNY SPS Data Science/Spring 2018 Classes/DATA 606 - Probability and Statistics/Lab5")
load("./Lab5/more/nc.RData")
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.4.3
##
## 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
What are the cases in this data set? How many cases are there in our sample?
The observations in this dataset are a subset from birth records released by North Carolina in 2004. This dataset has 1000 observations and 13 variables.
summary(nc)
## fage mage mature weeks
## Min. :14.00 Min. :13 mature mom :133 Min. :20.00
## 1st Qu.:25.00 1st Qu.:22 younger mom:867 1st Qu.:37.00
## Median :30.00 Median :27 Median :39.00
## Mean :30.26 Mean :27 Mean :38.33
## 3rd Qu.:35.00 3rd Qu.:32 3rd Qu.:40.00
## Max. :55.00 Max. :50 Max. :45.00
## NA's :171 NA's :2
## premie visits marital gained
## full term:846 Min. : 0.0 married :386 Min. : 0.00
## premie :152 1st Qu.:10.0 not married:613 1st Qu.:20.00
## NA's : 2 Median :12.0 NA's : 1 Median :30.00
## Mean :12.1 Mean :30.33
## 3rd Qu.:15.0 3rd Qu.:38.00
## Max. :30.0 Max. :85.00
## NA's :9 NA's :27
## weight lowbirthweight gender habit
## Min. : 1.000 low :111 female:503 nonsmoker:873
## 1st Qu.: 6.380 not low:889 male :497 smoker :126
## Median : 7.310 NA's : 1
## Mean : 7.101
## 3rd Qu.: 8.060
## Max. :11.750
##
## whitemom
## not white:284
## white :714
## NA's : 2
##
##
##
##
Make a side-by-side boxplot of habit and weight.
What does the plot highlight about the relationship between these two variables?
It appears that the median birth weight of newborns of mothers who smoke is lower, and the maximum weight is also lower.
The mean birth weight of newborns to nonsmoker mothers: 7.144273 The mean birth weight of newborns to smoker mothers: 6.82873
boxplot(nc$weight ~ nc$habit)
by(nc$weight, nc$habit, mean)
## nc$habit: nonsmoker
## [1] 7.144273
## --------------------------------------------------------
## nc$habit: smoker
## [1] 6.82873
Check if the conditions necessary for inference are satisfied. Note that you will need to obtain sample sizes to check the conditions. You can compute the group size using the same by command above but replacing mean with length.
nc\(habit: nonsmoker ---> 873 nc\)habit: smoker —> 126
The sample size is 1000, which is less than 10% the size of the population. I am going to assume that the 1000 observations were randomly selected. It seems reasonable to assume that the observations are independent.
Looking at the histogram below, the distribution looks approximately normal. There is some skew. It looks moderate to me. The sample size of 873 and 126 are sufficient I think for this skew.
by(nc$weight, nc$habit, length)
## nc$habit: nonsmoker
## [1] 873
## --------------------------------------------------------
## nc$habit: smoker
## [1] 126
smoker_weight <- dplyr::filter(nc,habit=="smoker") %>% select(weight)
## Warning: package 'bindrcpp' was built under R version 3.4.3
nonsmoker_weight <- dplyr::filter(nc,habit=="nonsmoker") %>% select(weight)
smoker_weight <- unlist(smoker_weight)
nonsmoker_weight <- unlist(nonsmoker_weight)
par(mfrow=c(1,2))
hist(smoker_weight)
hist(nonsmoker_weight)
par(mfrow=c(1,1))
Write the hypotheses for testing if the average weights of babies born to smoking and non-smoking mothers are different.
H_0: There is no difference in the average weights of babies born to smoking and non-smoking mothers.
H_A: There is a difference in the average weights of babies born to smoking and on-smoking mothers.
The mean weight of babies of smoking mothers: 6.82873 The mean weight of babies of nonsmoking mothers: 7.144273 smoker - nonsmoking: -0.3155425
Based on the hypothesis testing done by inference
function, the p-value is 0.32 or there is a 32% chance that the difference in average weight observed in this particular case could be due to chance. So, we would fail to reject the null hypothesis.
mean(smoker_weight) - mean(nonsmoker_weight)
## [1] -0.3155425
inference(y = nc$weight, x = nc$habit, est = "mean", type = "ht", null = 0,
alternative = "twosided", method = "theoretical")
## Warning: package 'BHH2' was built under R version 3.4.4
## Response variable: numerical, Explanatory variable: categorical
## Difference between two means
## Summary statistics:
## n_nonsmoker = 873, mean_nonsmoker = 7.1443, sd_nonsmoker = 1.5187
## n_smoker = 126, mean_smoker = 6.8287, sd_smoker = 1.3862
## Observed difference between means (nonsmoker-smoker) = 0.3155
##
## H0: mu_nonsmoker - mu_smoker = 0
## HA: mu_nonsmoker - mu_smoker != 0
## Standard error = 0.134
## Test statistic: Z = 2.359
## p-value = 0.0184
Change the type argument to “ci” to construct and record a confidence interval for the difference between the weights of babies born to smoking and non-smoking mothers.
Standard error = 0.1338 95 % Confidence interval = ( -0.5777 , -0.0534 )
inference(y = nc$weight, x = nc$habit, est = "mean", type = "ci", null = 0,
alternative = "twosided", method = "theoretical",
order = c("smoker","nonsmoker"))
## Response variable: numerical, Explanatory variable: categorical
## Difference between two means
## Summary statistics:
## n_smoker = 126, mean_smoker = 6.8287, sd_smoker = 1.3862
## n_nonsmoker = 873, mean_nonsmoker = 7.1443, sd_nonsmoker = 1.5187
## Observed difference between means (smoker-nonsmoker) = -0.3155
##
## Standard error = 0.1338
## 95 % Confidence interval = ( -0.5777 , -0.0534 )
Single mean
Summary statistics: mean = 38.3347 ; sd = 2.9316 ; n = 998
Standard error = 0.0928
95 % Confidence interval = ( 38.1528 , 38.5165 )
This means that if we do 100 samples from the population, we expect that 95 out of the 100 samples will have a mean pregnancy length that falls within this range.
inference(y = nc$weeks, est = "mean", type = "ci", null = 0,
alternative = "twosided", method = "theoretical")
## Single mean
## Summary statistics:
## mean = 38.3347 ; sd = 2.9316 ; n = 998
## Standard error = 0.0928
## 95 % Confidence interval = ( 38.1528 , 38.5165 )
Single mean
Summary statistics: mean = 38.3347 ; sd = 2.9316 ; n = 998
Standard error = 0.0928
90 % Confidence interval = ( 38.182 , 38.4873 )
inference(y = nc$weeks, est = "mean", type = "ci", conflevel=.90, null = 0,
alternative = "twosided", method = "theoretical")
## Single mean
## Summary statistics:
## mean = 38.3347 ; sd = 2.9316 ; n = 998
## Standard error = 0.0928
## 90 % Confidence interval = ( 38.182 , 38.4873 )
H0: mu_mature mom - mu_younger mom = 0 HA: mu_mature mom - mu_younger mom != 0
Standard error = 1.286 Test statistic: Z = -1.376 p-value = 0.1686
The p-value is 0.1686. At the significance level of 0.05, we would fail to reject the null hypothesis. There is about a 17% chance that an observed difference that is found in this sample is due to chance.
inference(y = nc$gained, x = nc$mature, est = "mean", type = "ht", null = 0,
alternative = "twosided", method = "theoretical")
## Response variable: numerical, Explanatory variable: categorical
## Difference between two means
## Summary statistics:
## n_mature mom = 129, mean_mature mom = 28.7907, sd_mature mom = 13.4824
## n_younger mom = 844, mean_younger mom = 30.5604, sd_younger mom = 14.3469
## Observed difference between means (mature mom-younger mom) = -1.7697
##
## H0: mu_mature mom - mu_younger mom = 0
## HA: mu_mature mom - mu_younger mom != 0
## Standard error = 1.286
## Test statistic: Z = -1.376
## p-value = 0.1686
Younger moms: 13 to 34 Mature mom: 35 to 50
mature_mom_age <- nc$mage[nc$mature=="mature mom"]
young_mom_age <- nc$mage[nc$mature=="younger mom"]
c(min(young_mom_age), max(young_mom_age))
## [1] 13 34
c(min(mature_mom_age), max(mature_mom_age))
## [1] 35 50
nc\(weight: numerical nc\)gender: categorical
mean weight of female newborns: 6.902883 mean weight of male newborns: 7.301509 difference of mean (male-female): 0.398626
Premature babies have lower birth weights
Ho: There is no difference in weight between female and male newborns. HA: There is a difference in weight between female and male newborns.
Result:
H0: mu_male - mu_female = 0 HA: mu_male - mu_female != 0 Standard error = 0.095 Test statistic: Z = 4.211 p-value = 0
The p-value of 0 is strong evidence against the null hypothesis. There is a difference in the mean weight of male and female newborns. I had no idea.
by(nc$weight, nc$gender, mean)
## nc$gender: female
## [1] 6.902883
## --------------------------------------------------------
## nc$gender: male
## [1] 7.301509
7.301509 - 6.902883
## [1] 0.398626
inference(y = nc$weight, x = nc$gender, est = "mean", type = "ht", null = 0,
alternative = "twosided", method = "theoretical", order=c("male", "female"))
## Response variable: numerical, Explanatory variable: categorical
## Difference between two means
## Summary statistics:
## n_male = 497, mean_male = 7.3015, sd_male = 1.5168
## n_female = 503, mean_female = 6.9029, sd_female = 1.4759
## Observed difference between means (male-female) = 0.3986
##
## H0: mu_male - mu_female = 0
## HA: mu_male - mu_female != 0
## Standard error = 0.095
## Test statistic: Z = 4.211
## p-value = 0