-
Notifications
You must be signed in to change notification settings - Fork 0
/
esercizi.R
420 lines (263 loc) · 13.8 KB
/
esercizi.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
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
# La seguente tabella riporta la media e la varianza del numero dei dipen-
# denti (X) e la spesa eettuata per training e continuing education (Y ,
# misurata in EURO) per un campione di n = 1250 imprese.
# variable x variable y
# Mean 45 261
# Variance 106 2593
# La covarianza tra X e Y e uguale a 466.6. Stimare la spesa per training e
# continuing education per una impresa con 37 dipendenti.
b1 <- 466.6 / 106
# B1 é il rapporto tra la covarianza tra X e Y e la varianza si X
b1
b0 <- 261 - b1 * 45
# b0 = y medio - Beta1Cappello * x medio
b0
y = b0 + b1 * 37
y
# spesa per training e continuing educ é 225.78
# Il salario dei giocatori di basket della lega professionistica americana (NBA)
# e legato a molti fattori, tra cui il numero di punti a partita realizzati, il
# numero di assist, il numero di rimbalzi catturati e gli anni di esperienza
# nella lega:
# log(wage) = 0 + 1exper + 2points + 3rebounds + 4assists + u (1)
rm(list=ls())
# Import package
library(wooldridge)
data("nbasal")
help(nbasal)
str(nbasal)
mod <- lm(lwage ~ exper + points + rebounds + assists, data=nbasal)
summary(mod)
# Usando i dati nbasal, stimate il precedente modello di regressione
# dove la variabile dipendente e il logaritmo del salario. Qual e l'eetto
# di ciascun regressore? Fornite una interpretazione dei coecienti
# stimati.
# LOG-LEVEL
# All'aumentare di un anno di esperienza, il salario aumenta del 7.3% in ceteris paribus (ovvero tenendo le altre variabili costanti)
# All'aumentare di un punto di media a partita, il salario aumenta del 6% in ceteris paribus
# Idem per palleggi e assists
# Immaginate di selezionare due giocatori a caso. Questi due giocatori
# hanno le stesse statistiche per quello che riguarda la performance, ma
# uno dei due ha 4 anni di esperienza in piu nella lega. Quale sara la
# dierenza di salario predetta?
deltalogwage <- 0.07342 * 4 * 100
deltalogwage
# 4 anni in piu di esperienza, incrementano del 29.37% il salario in ceteris paribus
# Quali altri fattori avreste dovuto considerare nel modello? Se nec-
# essario, discutere le conseguenze derivanti dal fatto di aver omesso
# queste altre variabili dal modello.
# Nel modello attuale, il valore R² non é basso, e quindi le variabili lo spiegano abbastanza
# Secondo me variabili che si potrebbero includere nel modello sono le partite giocate in media in un anno etc..
# Scegliendo a vostro piacimento una delle variabili esplicative, confer-
# mate l'interpretazione \partialling out" delle stime OLS.
# PARTIALLING OUT
# calcolo i residui di point
uh <- residuals(lm(points~ exper + rebounds + assists, data = nbasal))
# regredisco lwage sui residui
mod2 <- lm(lwage~uh, data = nbasal)
summary(mod2)
summary(mod)
# la regressione multipla va a filtrare il valore della correlazione tra le variabili per estrarre il coefficiente originale
data(meap93)
help(meap93)
# Stimare il seguente modello
# math10 = 0 + 1 log(expend) + 2 log(chprg) + u (3)
# dove math10 e la percentuale di studenti che passano il test di matem-
# atica (MEAP), log(expend) e il logaritmo della spesa per studente
# (in USD), e log(chprg) corrisponde alla percentuale di studenti che
# hanno scelto di pranzare nella mensa della scuola. Dopo aver sti-
# mato il modello, osservare i segni dei coecienti: sono coerenti con
# le aspettative? Giusticare la risposta.
mod <- lm(math10 ~ lexpend + lnchprg, data=meap93)
summary(mod)
# All'aumentare di un punto percentuale della spesa per studente, la percentuale di studenti che passano il test aumenta del 0.06%
# L'aumento di un punt percentuale del lunch program, la percentuale di studenti che passano il test diminuisce del 0.3%
# Dall' R² basso (0.17) deduciamo che queste variabili non spiegano efficientemente il modello
# L'intercetta ci dice che
# Ora stimare un modello di regressione semplice che include solamente
# log(expend) e confrontare il coeciente 1 stimato nel punto (a).
mod2 <- lm(math10 ~ lexpend, data=meap93)
summary(mod2)
# Find the correlation between lexpend 5 log(expend) and lnchprg. Does its sign
# make sense to you?
cor(meap93$lexpend, meap93$lnchprg)
help(cor)
# la correlazione tra le due é -0.19 ed é negativa
# secondo me ha senso il segno negativo perché una spesa maggiore indica uno studente con famiglia piú facoltosa e che quindi non ha diritto al lunch program
# Provare che lo stimatore dei minimi quadrati e unbiased.
# C10
# Use the data in HTV.RAW to answer this question. The data set includes information on
# wages, education, parents' education, and several other variables for 1,230 working men
# in 1991.
data(htv)
help(htv)
str(htv)
# (i) What is the range of the educ variable in the sample?
summary(htv$educ)
range(htv$educ)
#the range in [6~20]
# What percentage of men
# completed 12th grade but no higher grade?
length(htv$educ[htv$educ == 12])/length(htv$educ)
# Do the men or their parents have, on average, higher levels of education?
mean(htv$educ)
# The men do have higher levels of education than 12
mean(htv$fatheduc)
# The mens' fathers do have higher levels of education then 12
mean(htv$motheduc)
# The mens' mothers do have higher levels of education then 12
# The mens do have higher education averages than their parents
# Estimate the regression model
# educ 5 b0 1 b1motheduc 1 b2 fatheduc 1 u
# by OLS and report the results in the usual form.
mod <- lm(educ ~ motheduc + fatheduc, data= htv)
summary(mod)
# sample size, coefficients, rsquared
#How much sample variation in
# educ is explained by parents' education?
# La variazione di educ é spiegata dall'educazione dei genitori in modo non ottimale, analizzando che l'R quadro é pari a 0.25
# L'educazione dei genitori spiega il modello al 25%
# Interpret the coefficient on motheduc.
# In ceteris paribus, l'incremento dell'educazione della madre pari a 3 gradi comporta un incremento dell'educazione del figlio pari a circa un grado
# Add the variable abil (a measure of cognitive ability) to the regression from
# part (ii), and report the results in equation form.
mod2 <- lm(educ ~ motheduc + fatheduc + abil, data= htv)
summary(mod2)
# educ = 8.45 + .19motheduc + .11fatheduc + .50abil
# Does "ability" help to explain variations
# in education, even after controlling for parents' education? Explain.
summary(lm(educ ~ motheduc + fatheduc, data= htv))$r.squared
summary(lm(educ ~ motheduc + fatheduc + abil, data= htv))$r.squared
# La variabile ability ha un forte valore esplicativo perché in seguito alla sua aggiunta nel modello, il valore di R² é aumentato di 0.18
# (Requires calculus) Now estimate an equation where abil appears in quadratic form:
# educ 5 b0 1 b1motheduc 1 b2 fatheduc 1 b3abil 1 b4abil2 1 u.
# Using the estimates b ^ 3 and b^ 4 , use calculus to find the value of abil, call it abil*,
# where educ is minimized. (The other coefficients and values of parents' education
# variables have no effect; we are holding parents' education fixed.) Notice that abil
# is measured so that negative values are permissible. You might also verify that the
# second derivative is positive so that you do indeed have a minimum.
b0h <- htv$educ
b1h <- htv$motheduc
b2h <- htv$fatheduc
b3h <- htv$abil
b4h <- htv$abil
# TODO
# Use the data in DISCRIM.RAW to answer this question. These are zip code-level data
# on prices for various items at fast-food restaurants, along with characteristics of the zip
# code population, in New Jersey and Pennsylvania. The idea is to see whether fast-food
# restaurants charge higher prices in areas with a larger concentration of blacks.
data(discrim)
help(discrim)
summary(discrim$prpblck)
#Find the average values of prpblck and income in the sample, along with their
# standard deviations. What are the units of measurement of prpblck and income?
mean(discrim$prpblck, na.rm = T)
mean(discrim$income, na.rm = T)
# la media di prpblck é 0.11
# la media di income é 47054
sd(discrim$prpblck, na.rm = T)
sd(discrim$income, na.rm = T)
# la deviazione standard di prpblck é 0.18
# la deviazione standard di income é 13179
# prpblck é in percentuale
# income é in dollari
# Consider a model to explain the price of soda, psoda, in terms of the proportion of
# the population that is black and median income:
# psoda 5 b0 1 b1prpblck 1 b2income 1 u.
# Estimate this model by OLS and report the results in equation form, including the
# sample size and R-squared.
mod <- lm(psoda ~ prpblck + income, data = discrim)
summary(mod)
# psoda = 0.95 + 0.12prpblck + 0.0000016income
# la sample size é di 410 osservazioni
# R² é pari a 0.064
# Interpret the coefficient on prpblck. Do you think it is economically large?
# All'aumentare del 10% sul rapporto neri/popolazione, il prezzo della soda aumenterá di 11 cents
# Compare the estimate from part (ii) with the simple regression estimate from
# psoda on prpblck. Is the discrimination effect larger or smaller when you control
# for income?
mod2 <- lm(psoda ~ prpblck, data=discrim)
summary(mod2)
library(wooldridge)
data(discrim)
help(discrim)
summary(discrim$prpblck)
#Find the average values of prpblck and income in the sample, along with their
# standard deviations. What are the units of measurement of prpblck and income?
mean(discrim$prpblck, na.rm = T)
mean(discrim$income, na.rm = T)
# la media di prpblck é 0.11
# la media di income é 47054
sd(discrim$prpblck, na.rm = T)
sd(discrim$income, na.rm = T)
# la deviazione standard di prpblck é 0.18
# la deviazione standard di income é 13179
# prpblck é in percentuale
# income é in dollari
# Consider a model to explain the price of soda, psoda, in terms of the proportion of
# the population that is black and median income:
# psoda 5 b0 1 b1prpblck 1 b2income 1 u.
# Estimate this model by OLS and report the results in equation form, including the
# sample size and R-squared.
mod <- lm(psoda ~ prpblck + income, data = discrim)
summary(mod)
# psoda = 0.95 + 0.12prpblck + 0.0000016income
# la sample size é di 410 osservazioni
# R² é pari a 0.064
# Interpret the coefficient on prpblck. Do you think it is economically large?
# All'aumentare del 10% sul rapporto neri/popolazione, il prezzo della soda aumenterá di 11 cents
# A model with a constant price elasticity with respect to income may be more
# appropriate. Report estimates of the model
# log(psoda) 5 b0 1 b1prpblck 1 b2log(income) 1 u.
# If prpblck increases by .20 (20 percentage points), what is the estimated percentage change in psoda? (Hint: The answer is 2.xx, where you fill in the "xx.")
mod3 <- lm(lpsoda ~ prpblck + lincome, data = discrim)
summary(mod3)
0.12158/100
0.0012158*100
0.12158*20
# al variare dell'1% del prpblck il prezzo della soda aumenterà di =0,12% (in ceteris paribus)
# aumentando il prpblack di 20% e tenendo ceteris paribus le altre variabili il prezzo della soda aumenterà del 2.43%.
# Now add the variable prppov to the regression in part (iv). What happens
# to b^prpblck?
mod4 <- lm(lpsoda ~ prpblck + lincome + prppov, data = discrim )
summary(mod4)
a <- na.omit(discrim$prppov)
b <- na.omit(discrim$prpblck)
cor(a, b )
# il valore di prpblck è diminuito perchè in assenza di prppov, prpblck includeva in esso parte della variazione di prppov
# Find the correlation between log(income) and prppov. Is it roughly what you
# expected?
cor(na.omit(discrim$lincome), na.omit(discrim$prppov))
# si mi aspettavo questa forte correlazione negativa perchè aumentando il reddito ci si aspetta una diminuzione di povertà
# Evaluate the following statement: "Because log(income) and prppov are so highly
# correlated, they have no business being in the same regression."
#secondo me avere queste due variabil nello stesso modello consente al modello di spiegare leggermente meglio il prezzo della soda, ma in minimam parte perche l'R-square è aumnetato di 0,018
library(wooldridge)
data("charity")
# Use the data in CHARITY.RAW to answer the following questions:
# (i) Estimate the equation
# gift 5 b0 1 b1mailsyear 1 b2giftlast 1 b3propresp 1 u
# by OLS and report the results in the usual way, including the sample size and
# R-squared. How does the R-squared compare with that from the simple regression
# that omits giftlast and propresp?
ols <- lm(gift ~ mailsyear + giftlast + propresp, data = charity)
summary(ols)
#semple size = 4268
#R-squared = 0,08336
ols2 <- lm(gift ~ mailsyear, data = charity)
summary(ols2)
#comparando i due modelli notiamo che l'R-squared del modello semplice diminuisce di 0,07 abbassando notevolmente il livello di significativita del modello
#Interpret the coefficient on mailsyear. Is it bigger or smaller than the corresponding simple regression coefficient?
#il coefficiente di mailsyear e piu piccolo rispetto al coefficiente nel modello lineare semplice perchè in quest'ultimo esso si fa carico di rappresentare parte delle due variabili omesse
#Interpret the coefficient on propresp. Be careful to notice the units of measurement of propresp
summary(charity$propresp)
summary(charity$gift)
#in condizione di ceteris paribus, all'aumentare del 1% della percentuale di risposte il numero di gift aumeteran di 0.15
# Now add the variable avggift to the equation. What happens to the estimated effect
# of mailsyear?
ols3 <- lm(gift ~ mailsyear + giftlast + propresp + avggift, data = charity)
summary(ols3)
#il coefficiente mailsyear aggiungendo avggift nel modello si è notevolmente abbasato dimezzandosi, da cio si deduce che mailsyear si faceva carico anche di parte dell'influenza di avggift. inoltre possiamo dire che l'aggiunta di avggift fa aumentare l'R-squared considerevolmente rendendolo notevolmente piu significativo.
# In the equation from part (iv), what has happened to the coefficient on giftlast?
# What do you think is happening?
#notiamo che aggiungendo avggift al modello il coefficiente giftlast è passato da un valore positivo prossimo allo 0 ad un valore negativo di -0,26. da questo possiamo dedurre che in assenza di avggif giftlast si fa carico di parte della sua influenza