library(AER)
data("Parade2005")
head(Parade2005,4)
## earnings age gender state celebrity
## 1 1.0e+04 26 male ND no
## 2 1.0e+07 18 female CA yes
## 3 8.5e+04 39 male NE no
## 4 7.5e+04 50 female NC no
Pa <- Parade2005
names(Pa) <- c("ThuNhap","Tuoi","GioiTinh","Bang","NoiTieng")
ThuNhap <- Pa$ThuNhap
Tuoi <- Pa$Tuoi
GioiTinh <- Pa$GioiTinh
x <- Pa[, c("ThuNhap","Tuoi","GioiTinh")]
str(x)
## 'data.frame': 130 obs. of 3 variables:
## $ ThuNhap : num 10000 10000000 85000 75000 91500 49500 105000 30000 40000 23000 ...
## $ Tuoi : num 26 18 39 50 61 39 31 24 24 45 ...
## $ GioiTinh: Factor w/ 2 levels "female","male": 2 1 2 1 2 1 1 2 1 2 ...
library(ggplot2)
barplot(ThuNhap, xlab = "", ylab = "Thu Nhập", main = "Biểu đồ thể hiện dữ liệu của biến Thu Nhập", col = c("red", "green", "blue", "pink", "white"))
barplot(Tuoi, xlab = "", ylab = "Tuổi", main = "Biểu đồ thể hiện dữ liệu của biến Tuổi", col = c("red", "green", "blue", "pink", "white"))
m <- Pa[Pa$GioiTinh=='male' & Pa$ThuNhap > 20000000, ]
head(m)
## ThuNhap Tuoi GioiTinh Bang NoiTieng
## 13 2.1e+07 20 male OH yes
## 29 2.5e+07 51 male FL yes
## 96 4.2e+07 28 male IN yes
ThuNhaptang = Pa[order(Pa$ThuNhap), ]
head(ThuNhaptang,4)
## ThuNhap Tuoi GioiTinh Bang NoiTieng
## 1 10000 26 male ND no
## 100 11000 43 female IN no
## 21 12000 39 female MI no
## 94 12000 27 female VA no
BangThuNhap <- cut(ThuNhap, breaks = c(10000, 50000, 250000, 1000000,10000000, 42000000 ), labels = c("thap", "trungbinh", "trungbinhcao","cao", "ratcao"), right = TRUE)
tabThuNhap=table(BangThuNhap)
tabThuNhap
## BangThuNhap
## thap trungbinh trungbinhcao cao ratcao
## 66 51 3 2 7
BangTuoi <- cut(Tuoi, breaks = c(18, 30, 40, 52), labels = c("18-30", "30-40", "40-50"), right = TRUE)
tabTuoi=table(BangTuoi)
tabTuoi
## BangTuoi
## 18-30 30-40 40-50
## 32 44 33
mean(ThuNhap)
## [1] 1503412
median(ThuNhap)
## [1] 50000
mean(Tuoi)
## [1] 39.17692
median(Tuoi)
## [1] 38.5
var(ThuNhap)
## [1] 3.49546e+13
sd(ThuNhap)
## [1] 5912241
var(Tuoi)
## [1] 122.8909
sd(Tuoi)
## [1] 11.08562
tabThuNhap
## BangThuNhap
## thap trungbinh trungbinhcao cao ratcao
## 66 51 3 2 7
tabTuoi
## BangTuoi
## 18-30 30-40 40-50
## 32 44 33
table(GioiTinh)
## GioiTinh
## female male
## 62 68
barplot(tabThuNhap, xlab = "Thu Nhập", ylab = "Tần số", main = "Biểu đồ tần số của biến Thu Nhập", col = c("red", "green", "blue", "pink", "white"))
barplot(tabTuoi, xlab = "Tuổi", ylab = "Tần số", main = "Biểu đồ tần số của Biến Tuổi", col = c("red", "green", "blue"))
tabGioiTinh=table(GioiTinh)
barplot(tabGioiTinh, xlab = "Tuổi", ylab = "Tần số", main = "Biểu đồ tần số của Biến Tuổi", col = c("red", "green"))
chisq.test(ThuNhap, Tuoi, correct=FALSE)
##
## Pearson's Chi-squared test
##
## data: ThuNhap and Tuoi
## X-squared = 3735.3, df = 3526, p-value = 0.007096
tabTNT=table(BangThuNhap, BangTuoi)
tabTNT
## BangTuoi
## BangThuNhap 18-30 30-40 40-50
## thap 21 25 13
## trungbinh 5 16 18
## trungbinhcao 1 0 1
## cao 1 0 0
## ratcao 3 3 1
plot(vearnandage18den30, xlab = "Mức Thu Nhập: Thấp - Tr.Bình - Cao - Rất Cao", ylab = "Tần Số", main = "Biểu đồ tần số của biến Thu Nhập ở độ tuổi 18 đến 30", col = c("red", "green", "blue","white"))+plot(vearnandage30den45, xlab = "Mức Thu Nhập: Thấp - Tr.Bình - Cao - Rất Cao", ylab = "Tần Số", main = "Biểu đồ tần số của biến Thu Nhập ở độ tuổi 30 đến 40", col = c("red", "green", "blue","white"))+plot(vearnandage45den52, xlab = "Mức Thu Nhập: Thấp - Tr.Bình - Cao - Rất Cao", ylab = "Tần Số", main = "Biểu đồ tần số của biến Thu Nhập ở độ tuổi 40 đến 52", col = c("red", "green", "blue","white"))
## integer(0)
chisq.test(ThuNhap, GioiTinh, correct=FALSE)
##
## Pearson's Chi-squared test
##
## data: ThuNhap and GioiTinh
## X-squared = 84.78, df = 86, p-value = 0.517
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ lubridate 1.9.2 ✔ tibble 3.2.1
## ✔ purrr 1.0.1 ✔ tidyr 1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ✖ dplyr::recode() masks car::recode()
## ✖ purrr::some() masks car::some()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(utf8)
-Chỉ riêng những người nam giớigiới
Nam <- subset(Parade2005, gender=="male")
head(Nam,4)
## earnings age gender state celebrity
## 1 10000 26 male ND no
## 3 85000 39 male NE no
## 5 91500 61 male DE no
## 8 30000 24 male NM no
Tren35 <- subset(Parade2005, age>35)
head(Tren35,4)
## earnings age gender state celebrity
## 3 85000 39 male NE no
## 4 75000 50 female NC no
## 5 91500 61 male DE no
## 6 49500 39 female SD no
N35 <- subset(Parade2005, age>35 & gender=="male")
head(N35,4)
## earnings age gender state celebrity
## 3 85000 39 male NE no
## 5 91500 61 male DE no
## 10 23000 45 male VA no
## 14 65500 36 male ID no
data123 <- Pa[, c(1,2,3)]
head(data123,5)
## ThuNhap Tuoi GioiTinh
## 1 10000 26 male
## 2 10000000 18 female
## 3 85000 39 male
## 4 75000 50 female
## 5 91500 61 male
data3 <- Pa[1:3, c(1,2,3)]
head(data3)
## ThuNhap Tuoi GioiTinh
## 1 1.0e+04 26 male
## 2 1.0e+07 18 female
## 3 8.5e+04 39 male
ThuNhapmoi <- (ThuNhap + Tuoi)
Tuoimoi <- (Tuoi+2)
d1 <- data.frame(ThuNhap, Tuoi, ThuNhapmoi)
d2 <- data.frame(d1, Tuoimoi)
head(d2,4)
## ThuNhap Tuoi ThuNhapmoi Tuoimoi
## 1 1.0e+04 26 10026 28
## 2 1.0e+07 18 10000018 20
## 3 8.5e+04 39 85039 41
## 4 7.5e+04 50 75050 52
Pa$ThuNhap[Pa$Bang=="NE" & Pa$Tuoi > 30] <- 0
head(Pa,6)
## ThuNhap Tuoi GioiTinh Bang NoiTieng
## 1 10000 26 male ND no
## 2 10000000 18 female CA yes
## 3 0 39 male NE no
## 4 75000 50 female NC no
## 5 91500 61 male DE no
## 6 49500 39 female SD no
Pa$GiauNgheo[ThuNhap >= 10000000] <- 'giau'
Pa$GiauNgheo[ThuNhap < 10000000 & ThuNhap >= 500000] <- 'vua'
Pa$GiauNgheo[ThuNhap < 500000] <- 'ngheo'
head(Pa,4)
## ThuNhap Tuoi GioiTinh Bang NoiTieng GiauNgheo
## 1 1.0e+04 26 male ND no ngheo
## 2 1.0e+07 18 female CA yes giau
## 3 0.0e+00 39 male NE no ngheo
## 4 7.5e+04 50 female NC no ngheo
table(GioiTinh)
## GioiTinh
## female male
## 62 68
b <- rbinom(1000, 20, 0.477)
table(b)
## b
## 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
## 1 2 8 18 55 90 149 170 217 120 78 51 25 13 2 1
hist(b, main="Phân phối nhị phân của biến giới tính nữ")
- Giải thích: Dòng số liệu thứ nhất (2, 3, …, 18) là số người thuộc giới
tính nữ trong số 20 người mà chúng ta chọn. Dòng số liệu thứ hai cho
chúng ta biết số lần chọn mẫu trong 1000 lần xảy ra.
Ý nghĩa: Hàm phân phối Poisson, nói chung, rất giống với hàm nhị phân, ngoại trừ thông số p thường rất nhỏ và n thường rất lớn. Vì thế, hàm Poisson thường được sử dụng để mô tả các biến số rất hiếm xảy ra.
Qua số liệu đã thống kê, ta biết được tỉ lệ người được khảo sát là người nổi tiếng là 11/130=0.085.Tính trung bình cứ khoảng 2.000 người thì thì có 17 người nổi tiếng. Hỏi xác suất chọn trúng 2 người nổi tiếng là bao nhiêu
dpois(2, 8.5)
## [1] 0.007350295
barplot(tabGioiTinh, main= "Biểu đồ biến Giới Tính" )
NoiTieng <- Pa$NoiTieng
tabNoiTieng <- table(NoiTieng)
barplot(tabNoiTieng, main= " Biểu đồ biến Nổi Tiếng" )
Bang <- Pa$Bang
tabBang <- table(Bang)
barplot(tabBang, main= "Biểu đồ biến các Bang")
barplot(tabThuNhap, main= "Biểu đồ biến Thu Nhập")
barplot(tabTuoi, main= "Biểu đồ biến Thu Nhập")
### Biểu đồ Strip cho 1 biến
stripchart(ThuNhap, main= "Biểu đồ Strip của biến Thu Nhập", xlab = "Thu Nhập")
stripchart(Tuoi, main= "Biểu đồ Strip của biến Tuổi", xlab = "Tuổi")
### Biểu đồ cột cho 2 biến
barplot(tabTNT, beside=TRUE, xlab="Độ tuổi", ylab= "Tần số")
#### Giới Tính và Nổi Tiếng
tabGTNT=table(NoiTieng, GioiTinh)
barplot(tabGTNT, beside=TRUE, xlab="Giới Tính", ylab= "Tần số")
pie(tabThuNhap, main = " Biểu đồ tròn của biến Thu Nhập")
pie(tabGioiTinh, main = "Biểu đồ tròn của biến Giới Tính")
pie(tabNoiTieng, main = "Biểu đồ tròn của biến Nổi Tiếng" )
pie(tabTuoi, main = "Biểu đồ tròn của biến Tuổi")
plot(ThuNhap, Tuoi)