-
Notifications
You must be signed in to change notification settings - Fork 0
/
amit.R
179 lines (126 loc) · 8.66 KB
/
amit.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
library(tidyverse)
#data collect:
#data15 = readr::read_csv(file="data/2015.csv")
#data16 = readr::read_csv(file="data/2016.csv")
data17 = readr::read_csv(file="data/2017.csv")
data18 = readr::read_csv(file="data/2018.csv")
data19 = readr::read_csv(file="data/2019.csv")
data20 = readr::read_csv(file="data/2020.csv")
data21 = readr::read_csv(file="data/2021.csv")
allData = c(data17, data18, data19, data20, data21)
#view data if you want:
glimpse(data20)
glimpse(data19)
view(data18)
view(data20)
view(data19)
#רעיונות - אולי להניח נורמליות ולהפריח, מי המדינה הכי שמחה ל2020 (לשים במפה) התלפגות שמחה לפי יבשת, מי שעשיר יותר שמח יותר
#מבחן חי בריבוע להתפלגות טי, ואז נבדוק רווח בר סמך
#הפרש תוחלות ואז נגיע למסקנה שאם אתה גר במדינות מערביות אתה שמח יותר
#מסחן רווח בר סמך - אם אתה מעל 7, אז בככה וככה סיכוי אתה במדינות מאזור כלשהו
# we want to check if the corona virus accrued in 2020 effected the world happiness.
# מודל ההשארות שלנו יהיה:
# h0 = the world happiness was the same during 2019 and 2020
# h1 = world happiness was higher in 2019 than in 2020
# צריך לברר מה קורה אם עשינו מבחן ימני או מה שזה לא יהיה ובסוף יצא בכלל הפוך לגמרי ממה שקיווינו
# we chose a sample of 150 countries from each year data, took their score and combined all into one table.
set.seed(0)
happ19 = data19 %>% sample_n(150) %>% select(Score) %>% mutate(year = 2019)
happ20 = data20 %>% sample_n(150) %>% select(`Ladder score`) %>% mutate(year = 2020) %>% rename(Score = `Ladder score`)
happ1920 = bind_rows(happ19, happ20)
# making a t test to the data, we found that not only that 2019 wasnt happier than 2020 - but 2020 was even happier than 2019.
t.test(formula = happ1920$Score ~ happ1920$year, data = happ1920, alternative = "greater")
# סתם שמישהו לעזזל יסביר לי מה המבחן הזה אומרררר לא היינו אמורים למצוא איזה ערך מסויים ולהגיד אם הוא גדול או קטן מהערך בטבלה וככה להסיק מסקנות?
#חישוב ממוצע מה זה למה צריך את זה בכלל ולמה זה לא יוצא אותו דבר כמו במבחן טי למעלה
av_2019 = mean(data19$Score)
av_2020 = mean(data20$`Ladder score`)
# but anyway, you can also see these findings in this boxplot:
boxplot(data19$Score, data20$`Ladder score`, names = c("2019", "2020"))
# למה עשיתי את זה
lm(formula =data18$Score ~ data18$`GDP per capita` ,data=data18)
# now we want to check how will the area you live at is going to effect the happiness score.
#at first, we took only the data of the area and the score.we took the mean of each area and placed the means in a new table.
by_reg = data20 %>% select(`Regional indicator`, `Ladder score`)
view(by_reg)
mean_by_reg = aggregate(by_reg[2], list(by_reg$`Regional indicator`), mean) %>% rename(Continent = Group.1)
view(mean_by_reg)
# now lets take the data and view it:
ggplot(mean_by_reg, aes(`Ladder score`, Continent)) + geom_col()
# אם מצליחים לסובב את השמות של היבשות בציר האיקס אז הגרף הזה יותר טוב
ggplot(mean_by_reg, aes(Continent, `Ladder score`)) + geom_col() + theme(axis.text.x=element_text(angle=45, hjust=1))
# אני לא יודעת מה אלו
by_reg %>% group_by(`Regional indicator`) %>% summarize_at(mean(`Ladder score`))
geom_col(try[1], try[2], blues9)
# we want to check confidence interval,
data_else %>% count(data_else$`Regional indicator`)
t.test(x = try$Continent,
y = try$`Ladder score`,
paired = TRUE, alternative = "greater")
e_kova = mean(data_west$`Ladder score`)
chisq.test(x = data_west$`Ladder score`, p = c(1/25, 1/25, 1/25, 1/25, 1/25, 1/25, 1/25, 1/25, 1/25,
1/25, 1/25, 1/25, 1/25, 1/25, 1/25, 1/25, 1/25, 1/25,
1/25, 1/25, 1/25, 1/25, 1/25, 1/25, 1/25))
# נגמר הדברים שאני לא יודעת מה הם
# lets see if we can assume normal distribution at the world happiness score
interval_breaks <- c(0, 1, 2, 3, 4, 5, 6, 7) # אולי להקטין את האינטרוולים בלי 0-1
happy_table <- data20%>%
mutate(happy_count = cut(`Ladder score`, breaks = interval_breaks)) %>%
sample_n(153) # אולי להקטין גודל מדגם
mu <- mean(happy_table$`Ladder score`)
sigma <- sd(happy_table$`Ladder score`)
happy_chi_prep = happy_table %>%
count(happy_count, name = "observed") %>%
mutate(upper_bound = interval_breaks[-1]) %>%
mutate(lower_bound = interval_breaks[1:7]) %>%
mutate(expected_prob = pnorm(q = upper_bound, mean = mu, sd = sigma)-
pnorm(q = lower_bound, mean = mu, sd = sigma)) %>%
mutate(expected_prob = expected_prob/sum(expected_prob)) %>%
mutate(expected = expected_prob*153) %>%
mutate(chi_comp = (observed-expected)^2/expected)
chi2_0 = sum(happy_chi_prep$chi_comp)
chi2_0
qchisq(p = 1-0.05, df = 7-2-1)
#בקיצור רואים שזה ממש לא התפלגות נורמלית, אבל היי תיראו את גרף ההתפלגות:
ggplot(data20, aes(`Ladder score`)) + geom_density()
# ניראה קצת כמו חיבור של 2 התפלגויוצ נורמליות.. בוא נפריד את הדאטה למדינות מערביות ולכל השאר, ונסתכל על הגרפים של הם:
# ניקח
data20 = data20 %>% mutate(isWest = ifelse(`Regional indicator` %in% c("Western Europe",
"North America and ANZ") ,
"west world country" , "rest of the world"))
#view(data20)
#data_else = data20 %>% filter(!(`Regional indicator` %in% c("Western Europe",
# "North America and ANZ", "Latin America and Caribbean"))) # %>% sample_n(25)
ggplot((data20 %>% filter(isWest == "west world country")), aes(`Ladder score`)) + geom_density()
ggplot((data20 %>% filter(isWest == "rest of the world") %>% filter(!(`Regional indicator` == "Latin America and Caribbean")))
, aes(`Ladder score`)) + geom_density()
#data_west %>% count() #25
#data_else %>% count() #107
# הגרפים ניראים די דומה להתפלגות נורמלית, איזה התפלגות אפשר להניח?
# נעשה מבחן הפקש תוחלות ואז נוכל להראות שאם אתה גר במדינה מערבית אתה שמח יותר
data20 %>% filter(!(`Regional indicator` == "Latin America and Caribbean")) %>%
ggplot(aes(y=`Ladder score`, x=factor(isWest) ,fill=(isWest))) + geom_boxplot() +geom_jitter(width=0.15)
# זה סבבה שצימצמתי את האוכלוסייה ל25 במקום 107 כדי לסדר את זה
t.test(x = (data20 %>% filter(isWest == "west world country"))$`Ladder score`,
y = ((data20 %>% filter(isWest == "rest of the world") %>% filter(!(`Regional indicator` == "Latin America and Caribbean")))
%>% sample_n(25))$`Ladder score`,
paired = TRUE, alternative = "greater")
########### thats the end
myColors <- ifelse(levels(data$names)=="west world contries" , rgb(0.1,0.1,0.7,0.5) ,
ifelse(levels(data$names)=="rest of the world", rgb(0.8,0.1,0.3,0.6)))
boxplot(data_west$`Ladder score`, data_else$`Ladder score`,
names = c("west world contries", "rest of the world"), col= rgb(1, 0, 0, alpha = 0.4) )
#boxplot(data_west$`Ladder score`, data_else$`Ladder score`,
# names = c("west world contries", "rest of the world"), fill = )
# QQ test to the differents area
ggplot((data20 %>% filter(isWest == "rest of the world") %>%
filter(!(`Regional indicator` == "Latin America and Caribbean"))),
(aes(sample=`Ladder score`))) + geom_qq() + geom_qq_line(color="cyan4") + labs(title="QQ Plot - west countries")
ggplot((data20 %>% filter(isWest == "rest of the world") %>%
filter(!(`Regional indicator` == "Latin America and Caribbean"))),
(aes(sample=`Ladder score`))) + geom_qq() + geom_qq_line(color="cyan4") + labs(title="QQ Plot - west countries")
# השואאה בין 2020 ל 2019
pretty_colors = ifelse(names =="2020" , rgb(0.1,0.1,0.7,0.5) ,
ifelse(names =="2019", rgb(0.8,0.1,0.3,0.6) ) )
ggplot(happ1920, aes(x=factor(year), y=Score, fill=year)) + geom_boxplot() + scale_fill_brewer(palette="Dark2")
boxplot(data19$Score, data20$`Ladder score`, names = c("2019", "2020"), col = rgb(0.8,0.1,0.3,0.6) ,
ylab="happiness score" , xlab="- year -")