Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
robertopucp
GitHub Repository: robertopucp/1eco35_2022_2
Path: blob/main/Trabajo_grupal/WG4/Grupo_7_jupyter.py
2714 views
1
{
2
"cells": [
3
{
4
"cell_type": "markdown",
5
"id": "7c45962c",
6
"metadata": {},
7
"source": [
8
"# ISSUE 4"
9
]
10
},
11
{
12
"cell_type": "code",
13
"execution_count": 230,
14
"id": "0b84b167",
15
"metadata": {},
16
"outputs": [],
17
"source": [
18
"import pandas as pd\n",
19
"import numpy as np\n",
20
"import scipy.stats as stats\n",
21
"from scipy.stats import t # t - student \n",
22
"import os "
23
]
24
},
25
{
26
"cell_type": "code",
27
"execution_count": 231,
28
"id": "4c56cf77",
29
"metadata": {},
30
"outputs": [],
31
"source": [
32
"user = os.getlogin() # Username\n",
33
"os.chdir(f\"/Users/{user}/Documents\")"
34
]
35
},
36
{
37
"cell_type": "code",
38
"execution_count": 233,
39
"id": "fef4f8b6",
40
"metadata": {},
41
"outputs": [],
42
"source": [
43
"cps2012 = pd.read_excel(\"cps2012.xlsx\")"
44
]
45
},
46
{
47
"cell_type": "code",
48
"execution_count": 234,
49
"id": "b40f0a13",
50
"metadata": {},
51
"outputs": [
52
{
53
"data": {
54
"text/html": [
55
"<div>\n",
56
"<style scoped>\n",
57
" .dataframe tbody tr th:only-of-type {\n",
58
" vertical-align: middle;\n",
59
" }\n",
60
"\n",
61
" .dataframe tbody tr th {\n",
62
" vertical-align: top;\n",
63
" }\n",
64
"\n",
65
" .dataframe thead th {\n",
66
" text-align: right;\n",
67
" }\n",
68
"</style>\n",
69
"<table border=\"1\" class=\"dataframe\">\n",
70
" <thead>\n",
71
" <tr style=\"text-align: right;\">\n",
72
" <th></th>\n",
73
" <th>year</th>\n",
74
" <th>lnw</th>\n",
75
" <th>intercept</th>\n",
76
" <th>female</th>\n",
77
" <th>widowed</th>\n",
78
" <th>divorced</th>\n",
79
" <th>separated</th>\n",
80
" <th>nevermarried</th>\n",
81
" <th>hsd08</th>\n",
82
" <th>hsd911</th>\n",
83
" <th>...</th>\n",
84
" <th>so</th>\n",
85
" <th>we</th>\n",
86
" <th>exp1</th>\n",
87
" <th>exp2</th>\n",
88
" <th>exp3</th>\n",
89
" <th>exp4</th>\n",
90
" <th>weight</th>\n",
91
" <th>married</th>\n",
92
" <th>ne</th>\n",
93
" <th>sc</th>\n",
94
" </tr>\n",
95
" </thead>\n",
96
" <tbody>\n",
97
" <tr>\n",
98
" <th>0</th>\n",
99
" <td>2012</td>\n",
100
" <td>1.909542</td>\n",
101
" <td>1</td>\n",
102
" <td>1</td>\n",
103
" <td>0</td>\n",
104
" <td>0</td>\n",
105
" <td>0</td>\n",
106
" <td>0</td>\n",
107
" <td>0</td>\n",
108
" <td>0</td>\n",
109
" <td>...</td>\n",
110
" <td>0</td>\n",
111
" <td>0</td>\n",
112
" <td>22.0</td>\n",
113
" <td>4.8400</td>\n",
114
" <td>10.648000</td>\n",
115
" <td>23.425600</td>\n",
116
" <td>569.43</td>\n",
117
" <td>True</td>\n",
118
" <td>True</td>\n",
119
" <td>True</td>\n",
120
" </tr>\n",
121
" <tr>\n",
122
" <th>1</th>\n",
123
" <td>2012</td>\n",
124
" <td>1.365773</td>\n",
125
" <td>1</td>\n",
126
" <td>1</td>\n",
127
" <td>0</td>\n",
128
" <td>0</td>\n",
129
" <td>0</td>\n",
130
" <td>0</td>\n",
131
" <td>0</td>\n",
132
" <td>1</td>\n",
133
" <td>...</td>\n",
134
" <td>0</td>\n",
135
" <td>0</td>\n",
136
" <td>30.0</td>\n",
137
" <td>9.0000</td>\n",
138
" <td>27.000000</td>\n",
139
" <td>81.000000</td>\n",
140
" <td>625.96</td>\n",
141
" <td>True</td>\n",
142
" <td>True</td>\n",
143
" <td>False</td>\n",
144
" </tr>\n",
145
" <tr>\n",
146
" <th>2</th>\n",
147
" <td>2012</td>\n",
148
" <td>2.540223</td>\n",
149
" <td>1</td>\n",
150
" <td>0</td>\n",
151
" <td>0</td>\n",
152
" <td>0</td>\n",
153
" <td>0</td>\n",
154
" <td>0</td>\n",
155
" <td>0</td>\n",
156
" <td>0</td>\n",
157
" <td>...</td>\n",
158
" <td>0</td>\n",
159
" <td>0</td>\n",
160
" <td>19.0</td>\n",
161
" <td>3.6100</td>\n",
162
" <td>6.859000</td>\n",
163
" <td>13.032100</td>\n",
164
" <td>264.22</td>\n",
165
" <td>True</td>\n",
166
" <td>True</td>\n",
167
" <td>False</td>\n",
168
" </tr>\n",
169
" <tr>\n",
170
" <th>3</th>\n",
171
" <td>2012</td>\n",
172
" <td>1.801091</td>\n",
173
" <td>1</td>\n",
174
" <td>1</td>\n",
175
" <td>0</td>\n",
176
" <td>0</td>\n",
177
" <td>0</td>\n",
178
" <td>0</td>\n",
179
" <td>0</td>\n",
180
" <td>0</td>\n",
181
" <td>...</td>\n",
182
" <td>0</td>\n",
183
" <td>0</td>\n",
184
" <td>14.0</td>\n",
185
" <td>1.9600</td>\n",
186
" <td>2.744000</td>\n",
187
" <td>3.841600</td>\n",
188
" <td>256.81</td>\n",
189
" <td>True</td>\n",
190
" <td>True</td>\n",
191
" <td>False</td>\n",
192
" </tr>\n",
193
" <tr>\n",
194
" <th>4</th>\n",
195
" <td>2012</td>\n",
196
" <td>3.349904</td>\n",
197
" <td>1</td>\n",
198
" <td>0</td>\n",
199
" <td>0</td>\n",
200
" <td>0</td>\n",
201
" <td>0</td>\n",
202
" <td>0</td>\n",
203
" <td>0</td>\n",
204
" <td>0</td>\n",
205
" <td>...</td>\n",
206
" <td>0</td>\n",
207
" <td>0</td>\n",
208
" <td>15.0</td>\n",
209
" <td>2.2500</td>\n",
210
" <td>3.375000</td>\n",
211
" <td>5.062500</td>\n",
212
" <td>256.81</td>\n",
213
" <td>True</td>\n",
214
" <td>True</td>\n",
215
" <td>False</td>\n",
216
" </tr>\n",
217
" <tr>\n",
218
" <th>...</th>\n",
219
" <td>...</td>\n",
220
" <td>...</td>\n",
221
" <td>...</td>\n",
222
" <td>...</td>\n",
223
" <td>...</td>\n",
224
" <td>...</td>\n",
225
" <td>...</td>\n",
226
" <td>...</td>\n",
227
" <td>...</td>\n",
228
" <td>...</td>\n",
229
" <td>...</td>\n",
230
" <td>...</td>\n",
231
" <td>...</td>\n",
232
" <td>...</td>\n",
233
" <td>...</td>\n",
234
" <td>...</td>\n",
235
" <td>...</td>\n",
236
" <td>...</td>\n",
237
" <td>...</td>\n",
238
" <td>...</td>\n",
239
" <td>...</td>\n",
240
" </tr>\n",
241
" <tr>\n",
242
" <th>103</th>\n",
243
" <td>2012</td>\n",
244
" <td>2.369075</td>\n",
245
" <td>1</td>\n",
246
" <td>1</td>\n",
247
" <td>0</td>\n",
248
" <td>0</td>\n",
249
" <td>0</td>\n",
250
" <td>1</td>\n",
251
" <td>0</td>\n",
252
" <td>0</td>\n",
253
" <td>...</td>\n",
254
" <td>0</td>\n",
255
" <td>0</td>\n",
256
" <td>18.0</td>\n",
257
" <td>3.2400</td>\n",
258
" <td>5.832000</td>\n",
259
" <td>10.497600</td>\n",
260
" <td>491.40</td>\n",
261
" <td>False</td>\n",
262
" <td>True</td>\n",
263
" <td>False</td>\n",
264
" </tr>\n",
265
" <tr>\n",
266
" <th>104</th>\n",
267
" <td>2012</td>\n",
268
" <td>3.338731</td>\n",
269
" <td>1</td>\n",
270
" <td>0</td>\n",
271
" <td>0</td>\n",
272
" <td>0</td>\n",
273
" <td>0</td>\n",
274
" <td>0</td>\n",
275
" <td>0</td>\n",
276
" <td>0</td>\n",
277
" <td>...</td>\n",
278
" <td>0</td>\n",
279
" <td>0</td>\n",
280
" <td>28.0</td>\n",
281
" <td>7.8400</td>\n",
282
" <td>21.952000</td>\n",
283
" <td>61.465600</td>\n",
284
" <td>276.46</td>\n",
285
" <td>True</td>\n",
286
" <td>True</td>\n",
287
" <td>True</td>\n",
288
" </tr>\n",
289
" <tr>\n",
290
" <th>105</th>\n",
291
" <td>2012</td>\n",
292
" <td>2.225974</td>\n",
293
" <td>1</td>\n",
294
" <td>0</td>\n",
295
" <td>0</td>\n",
296
" <td>1</td>\n",
297
" <td>0</td>\n",
298
" <td>0</td>\n",
299
" <td>0</td>\n",
300
" <td>0</td>\n",
301
" <td>...</td>\n",
302
" <td>0</td>\n",
303
" <td>0</td>\n",
304
" <td>27.0</td>\n",
305
" <td>7.2900</td>\n",
306
" <td>19.683000</td>\n",
307
" <td>53.144100</td>\n",
308
" <td>479.96</td>\n",
309
" <td>False</td>\n",
310
" <td>True</td>\n",
311
" <td>False</td>\n",
312
" </tr>\n",
313
" <tr>\n",
314
" <th>106</th>\n",
315
" <td>2012</td>\n",
316
" <td>2.879901</td>\n",
317
" <td>1</td>\n",
318
" <td>1</td>\n",
319
" <td>0</td>\n",
320
" <td>1</td>\n",
321
" <td>0</td>\n",
322
" <td>0</td>\n",
323
" <td>0</td>\n",
324
" <td>0</td>\n",
325
" <td>...</td>\n",
326
" <td>0</td>\n",
327
" <td>0</td>\n",
328
" <td>20.5</td>\n",
329
" <td>4.2025</td>\n",
330
" <td>8.615125</td>\n",
331
" <td>17.661006</td>\n",
332
" <td>479.96</td>\n",
333
" <td>False</td>\n",
334
" <td>True</td>\n",
335
" <td>True</td>\n",
336
" </tr>\n",
337
" <tr>\n",
338
" <th>107</th>\n",
339
" <td>2012</td>\n",
340
" <td>1.852399</td>\n",
341
" <td>1</td>\n",
342
" <td>1</td>\n",
343
" <td>0</td>\n",
344
" <td>0</td>\n",
345
" <td>0</td>\n",
346
" <td>0</td>\n",
347
" <td>0</td>\n",
348
" <td>0</td>\n",
349
" <td>...</td>\n",
350
" <td>0</td>\n",
351
" <td>0</td>\n",
352
" <td>33.0</td>\n",
353
" <td>10.8900</td>\n",
354
" <td>35.937000</td>\n",
355
" <td>118.592100</td>\n",
356
" <td>576.29</td>\n",
357
" <td>True</td>\n",
358
" <td>True</td>\n",
359
" <td>True</td>\n",
360
" </tr>\n",
361
" </tbody>\n",
362
"</table>\n",
363
"<p>108 rows × 24 columns</p>\n",
364
"</div>"
365
],
366
"text/plain": [
367
" year lnw intercept female widowed divorced separated \\\n",
368
"0 2012 1.909542 1 1 0 0 0 \n",
369
"1 2012 1.365773 1 1 0 0 0 \n",
370
"2 2012 2.540223 1 0 0 0 0 \n",
371
"3 2012 1.801091 1 1 0 0 0 \n",
372
"4 2012 3.349904 1 0 0 0 0 \n",
373
".. ... ... ... ... ... ... ... \n",
374
"103 2012 2.369075 1 1 0 0 0 \n",
375
"104 2012 3.338731 1 0 0 0 0 \n",
376
"105 2012 2.225974 1 0 0 1 0 \n",
377
"106 2012 2.879901 1 1 0 1 0 \n",
378
"107 2012 1.852399 1 1 0 0 0 \n",
379
"\n",
380
" nevermarried hsd08 hsd911 ... so we exp1 exp2 exp3 \\\n",
381
"0 0 0 0 ... 0 0 22.0 4.8400 10.648000 \n",
382
"1 0 0 1 ... 0 0 30.0 9.0000 27.000000 \n",
383
"2 0 0 0 ... 0 0 19.0 3.6100 6.859000 \n",
384
"3 0 0 0 ... 0 0 14.0 1.9600 2.744000 \n",
385
"4 0 0 0 ... 0 0 15.0 2.2500 3.375000 \n",
386
".. ... ... ... ... .. .. ... ... ... \n",
387
"103 1 0 0 ... 0 0 18.0 3.2400 5.832000 \n",
388
"104 0 0 0 ... 0 0 28.0 7.8400 21.952000 \n",
389
"105 0 0 0 ... 0 0 27.0 7.2900 19.683000 \n",
390
"106 0 0 0 ... 0 0 20.5 4.2025 8.615125 \n",
391
"107 0 0 0 ... 0 0 33.0 10.8900 35.937000 \n",
392
"\n",
393
" exp4 weight married ne sc \n",
394
"0 23.425600 569.43 True True True \n",
395
"1 81.000000 625.96 True True False \n",
396
"2 13.032100 264.22 True True False \n",
397
"3 3.841600 256.81 True True False \n",
398
"4 5.062500 256.81 True True False \n",
399
".. ... ... ... ... ... \n",
400
"103 10.497600 491.40 False True False \n",
401
"104 61.465600 276.46 True True True \n",
402
"105 53.144100 479.96 False True False \n",
403
"106 17.661006 479.96 False True True \n",
404
"107 118.592100 576.29 True True True \n",
405
"\n",
406
"[108 rows x 24 columns]"
407
]
408
},
409
"execution_count": 234,
410
"metadata": {},
411
"output_type": "execute_result"
412
}
413
],
414
"source": [
415
"cps2012"
416
]
417
},
418
{
419
"cell_type": "code",
420
"execution_count": 324,
421
"id": "c26d2e2e",
422
"metadata": {},
423
"outputs": [],
424
"source": [
425
"ln = cps2012.lnw.values # se convierte a un array \n",
426
"wei = cps2012.weight.values\n",
427
"ex1 = cps2012.exp1.values\n",
428
"ex2 = cps2012.exp2.values\n",
429
"ex3 = cps2012.exp3.values"
430
]
431
},
432
{
433
"cell_type": "code",
434
"execution_count": 325,
435
"id": "318f28f2",
436
"metadata": {},
437
"outputs": [],
438
"source": [
439
"# Generation of data\n",
440
"\n",
441
"y = np.log( ln ) # lnlnw\n",
442
"c = np.ones( len( y ) ) # Constant\n",
443
"x1 = cps2012.female\n",
444
"x2 = cps2012.widowed\n",
445
"x3 = cps2012.divorced\n",
446
"x4 = cps2012.separated\n",
447
"x5 = cps2012.nevermarried\n",
448
"xw = np.log( wei )\n",
449
"x11 = np.log( ex1 )\n",
450
"x22 = np.log( ex2 ) \n",
451
"x33 = np.log( ex3 ) \n",
452
"x12 = np.log( ex1 )*np.log( ex2 )\n",
453
"x13 = np.log( ex1 )*np.log( ex3 ) \n",
454
"x23 = np.log( ex2 )*np.log( ex3 ) \n",
455
"\n",
456
"columns = [ \"ln_lnw\", \"female\", \"widowed\", \"divorced\", \"separated\",\n",
457
" \"nevermarried\", \"weight\", \"exp1\", \"exp2\", \"exp3\", \"(exp1)(exp2)\", \"(exp1)(exp3)\", \"(exp2)(exp3)\" ]\n",
458
"\n",
459
"data_val = np.asarray( [ y, x1, x2, x3, x4, x5, xw, x11, x22, x33, x12, x13, x23 ] ).T # se coloca transpuesta para que cada varaible sea una columna \n",
460
"\n",
461
"# np.asarray permite crear una matriz a partir de vectores \n",
462
"\n",
463
"data = pd.DataFrame( data_val , columns = columns )"
464
]
465
},
466
{
467
"cell_type": "code",
468
"execution_count": 326,
469
"id": "73d42596",
470
"metadata": {},
471
"outputs": [
472
{
473
"data": {
474
"text/html": [
475
"<div>\n",
476
"<style scoped>\n",
477
" .dataframe tbody tr th:only-of-type {\n",
478
" vertical-align: middle;\n",
479
" }\n",
480
"\n",
481
" .dataframe tbody tr th {\n",
482
" vertical-align: top;\n",
483
" }\n",
484
"\n",
485
" .dataframe thead th {\n",
486
" text-align: right;\n",
487
" }\n",
488
"</style>\n",
489
"<table border=\"1\" class=\"dataframe\">\n",
490
" <thead>\n",
491
" <tr style=\"text-align: right;\">\n",
492
" <th></th>\n",
493
" <th>ln_lnw</th>\n",
494
" <th>female</th>\n",
495
" <th>widowed</th>\n",
496
" <th>divorced</th>\n",
497
" <th>separated</th>\n",
498
" <th>nevermarried</th>\n",
499
" <th>weight</th>\n",
500
" <th>exp1</th>\n",
501
" <th>exp2</th>\n",
502
" <th>exp3</th>\n",
503
" <th>(exp1)(exp2)</th>\n",
504
" <th>(exp1)(exp3)</th>\n",
505
" <th>(exp2)(exp3)</th>\n",
506
" </tr>\n",
507
" </thead>\n",
508
" <tbody>\n",
509
" <tr>\n",
510
" <th>0</th>\n",
511
" <td>0.646864</td>\n",
512
" <td>1.0</td>\n",
513
" <td>0.0</td>\n",
514
" <td>0.0</td>\n",
515
" <td>0.0</td>\n",
516
" <td>0.0</td>\n",
517
" <td>6.344636</td>\n",
518
" <td>3.091042</td>\n",
519
" <td>1.576915</td>\n",
520
" <td>2.365372</td>\n",
521
" <td>4.874310</td>\n",
522
" <td>7.311466</td>\n",
523
" <td>3.729990</td>\n",
524
" </tr>\n",
525
" <tr>\n",
526
" <th>1</th>\n",
527
" <td>0.311720</td>\n",
528
" <td>1.0</td>\n",
529
" <td>0.0</td>\n",
530
" <td>0.0</td>\n",
531
" <td>0.0</td>\n",
532
" <td>0.0</td>\n",
533
" <td>6.439286</td>\n",
534
" <td>3.401197</td>\n",
535
" <td>2.197225</td>\n",
536
" <td>3.295837</td>\n",
537
" <td>7.473194</td>\n",
538
" <td>11.209792</td>\n",
539
" <td>7.241694</td>\n",
540
" </tr>\n",
541
" <tr>\n",
542
" <th>2</th>\n",
543
" <td>0.932252</td>\n",
544
" <td>0.0</td>\n",
545
" <td>0.0</td>\n",
546
" <td>0.0</td>\n",
547
" <td>0.0</td>\n",
548
" <td>0.0</td>\n",
549
" <td>5.576782</td>\n",
550
" <td>2.944439</td>\n",
551
" <td>1.283708</td>\n",
552
" <td>1.925562</td>\n",
553
" <td>3.779799</td>\n",
554
" <td>5.669699</td>\n",
555
" <td>2.471858</td>\n",
556
" </tr>\n",
557
" <tr>\n",
558
" <th>3</th>\n",
559
" <td>0.588392</td>\n",
560
" <td>1.0</td>\n",
561
" <td>0.0</td>\n",
562
" <td>0.0</td>\n",
563
" <td>0.0</td>\n",
564
" <td>0.0</td>\n",
565
" <td>5.548337</td>\n",
566
" <td>2.639057</td>\n",
567
" <td>0.672944</td>\n",
568
" <td>1.009417</td>\n",
569
" <td>1.775939</td>\n",
570
" <td>2.663909</td>\n",
571
" <td>0.679281</td>\n",
572
" </tr>\n",
573
" <tr>\n",
574
" <th>4</th>\n",
575
" <td>1.208932</td>\n",
576
" <td>0.0</td>\n",
577
" <td>0.0</td>\n",
578
" <td>0.0</td>\n",
579
" <td>0.0</td>\n",
580
" <td>0.0</td>\n",
581
" <td>5.548337</td>\n",
582
" <td>2.708050</td>\n",
583
" <td>0.810930</td>\n",
584
" <td>1.216395</td>\n",
585
" <td>2.196040</td>\n",
586
" <td>3.294060</td>\n",
587
" <td>0.986412</td>\n",
588
" </tr>\n",
589
" <tr>\n",
590
" <th>...</th>\n",
591
" <td>...</td>\n",
592
" <td>...</td>\n",
593
" <td>...</td>\n",
594
" <td>...</td>\n",
595
" <td>...</td>\n",
596
" <td>...</td>\n",
597
" <td>...</td>\n",
598
" <td>...</td>\n",
599
" <td>...</td>\n",
600
" <td>...</td>\n",
601
" <td>...</td>\n",
602
" <td>...</td>\n",
603
" <td>...</td>\n",
604
" </tr>\n",
605
" <tr>\n",
606
" <th>103</th>\n",
607
" <td>0.862499</td>\n",
608
" <td>1.0</td>\n",
609
" <td>0.0</td>\n",
610
" <td>0.0</td>\n",
611
" <td>0.0</td>\n",
612
" <td>1.0</td>\n",
613
" <td>6.197258</td>\n",
614
" <td>2.890372</td>\n",
615
" <td>1.175573</td>\n",
616
" <td>1.763360</td>\n",
617
" <td>3.397844</td>\n",
618
" <td>5.096766</td>\n",
619
" <td>2.072959</td>\n",
620
" </tr>\n",
621
" <tr>\n",
622
" <th>104</th>\n",
623
" <td>1.205591</td>\n",
624
" <td>0.0</td>\n",
625
" <td>0.0</td>\n",
626
" <td>0.0</td>\n",
627
" <td>0.0</td>\n",
628
" <td>0.0</td>\n",
629
" <td>5.622066</td>\n",
630
" <td>3.332205</td>\n",
631
" <td>2.059239</td>\n",
632
" <td>3.088858</td>\n",
633
" <td>6.861805</td>\n",
634
" <td>10.292707</td>\n",
635
" <td>6.360697</td>\n",
636
" </tr>\n",
637
" <tr>\n",
638
" <th>105</th>\n",
639
" <td>0.800195</td>\n",
640
" <td>0.0</td>\n",
641
" <td>0.0</td>\n",
642
" <td>1.0</td>\n",
643
" <td>0.0</td>\n",
644
" <td>0.0</td>\n",
645
" <td>6.173703</td>\n",
646
" <td>3.295837</td>\n",
647
" <td>1.986504</td>\n",
648
" <td>2.979755</td>\n",
649
" <td>6.547192</td>\n",
650
" <td>9.820787</td>\n",
651
" <td>5.919295</td>\n",
652
" </tr>\n",
653
" <tr>\n",
654
" <th>106</th>\n",
655
" <td>1.057756</td>\n",
656
" <td>1.0</td>\n",
657
" <td>0.0</td>\n",
658
" <td>1.0</td>\n",
659
" <td>0.0</td>\n",
660
" <td>0.0</td>\n",
661
" <td>6.173703</td>\n",
662
" <td>3.020425</td>\n",
663
" <td>1.435680</td>\n",
664
" <td>2.153519</td>\n",
665
" <td>4.336362</td>\n",
666
" <td>6.504544</td>\n",
667
" <td>3.091764</td>\n",
668
" </tr>\n",
669
" <tr>\n",
670
" <th>107</th>\n",
671
" <td>0.616481</td>\n",
672
" <td>1.0</td>\n",
673
" <td>0.0</td>\n",
674
" <td>0.0</td>\n",
675
" <td>0.0</td>\n",
676
" <td>0.0</td>\n",
677
" <td>6.356611</td>\n",
678
" <td>3.496508</td>\n",
679
" <td>2.387845</td>\n",
680
" <td>3.581767</td>\n",
681
" <td>8.349118</td>\n",
682
" <td>12.523677</td>\n",
683
" <td>8.552705</td>\n",
684
" </tr>\n",
685
" </tbody>\n",
686
"</table>\n",
687
"<p>108 rows × 13 columns</p>\n",
688
"</div>"
689
],
690
"text/plain": [
691
" ln_lnw female widowed divorced separated nevermarried weight \\\n",
692
"0 0.646864 1.0 0.0 0.0 0.0 0.0 6.344636 \n",
693
"1 0.311720 1.0 0.0 0.0 0.0 0.0 6.439286 \n",
694
"2 0.932252 0.0 0.0 0.0 0.0 0.0 5.576782 \n",
695
"3 0.588392 1.0 0.0 0.0 0.0 0.0 5.548337 \n",
696
"4 1.208932 0.0 0.0 0.0 0.0 0.0 5.548337 \n",
697
".. ... ... ... ... ... ... ... \n",
698
"103 0.862499 1.0 0.0 0.0 0.0 1.0 6.197258 \n",
699
"104 1.205591 0.0 0.0 0.0 0.0 0.0 5.622066 \n",
700
"105 0.800195 0.0 0.0 1.0 0.0 0.0 6.173703 \n",
701
"106 1.057756 1.0 0.0 1.0 0.0 0.0 6.173703 \n",
702
"107 0.616481 1.0 0.0 0.0 0.0 0.0 6.356611 \n",
703
"\n",
704
" exp1 exp2 exp3 (exp1)(exp2) (exp1)(exp3) (exp2)(exp3) \n",
705
"0 3.091042 1.576915 2.365372 4.874310 7.311466 3.729990 \n",
706
"1 3.401197 2.197225 3.295837 7.473194 11.209792 7.241694 \n",
707
"2 2.944439 1.283708 1.925562 3.779799 5.669699 2.471858 \n",
708
"3 2.639057 0.672944 1.009417 1.775939 2.663909 0.679281 \n",
709
"4 2.708050 0.810930 1.216395 2.196040 3.294060 0.986412 \n",
710
".. ... ... ... ... ... ... \n",
711
"103 2.890372 1.175573 1.763360 3.397844 5.096766 2.072959 \n",
712
"104 3.332205 2.059239 3.088858 6.861805 10.292707 6.360697 \n",
713
"105 3.295837 1.986504 2.979755 6.547192 9.820787 5.919295 \n",
714
"106 3.020425 1.435680 2.153519 4.336362 6.504544 3.091764 \n",
715
"107 3.496508 2.387845 3.581767 8.349118 12.523677 8.552705 \n",
716
"\n",
717
"[108 rows x 13 columns]"
718
]
719
},
720
"execution_count": 326,
721
"metadata": {},
722
"output_type": "execute_result"
723
}
724
],
725
"source": [
726
"data"
727
]
728
},
729
{
730
"cell_type": "code",
731
"execution_count": 328,
732
"id": "e8ae559c",
733
"metadata": {},
734
"outputs": [],
735
"source": [
736
"# selecting columns\n",
737
"X = data.iloc[ : ,1:]\n",
738
"y = data.ln_lnw\n",
739
"lista = data.iloc[ : , :7]"
740
]
741
},
742
{
743
"cell_type": "code",
744
"execution_count": 340,
745
"id": "6e5c0891",
746
"metadata": {
747
"scrolled": true
748
},
749
"outputs": [],
750
"source": [
751
"class OLSRegClass( object ):\n",
752
" \n",
753
" def __init__( self, X : pd.DataFrame , y : pd.Series , lista, RobustStandardError = True):\n",
754
" \n",
755
" if not isinstance( X, pd.DataFrame ):\n",
756
" raise TypeError( \"X must be a pd.DataFrame.\" )\n",
757
"\n",
758
" if not isinstance( y , pd.Series ):\n",
759
" raise TypeError( \"y must be a pd.Series.\" )\n",
760
" \n",
761
" # asignando atributos de la clase\n",
762
" \n",
763
" self.X = X\n",
764
" self.y = y\n",
765
" self.lista = lista\n",
766
" self.RobustStandardError = RobustStandardError\n",
767
"\n",
768
" self.X[ 'Intercept' ] = 1\n",
769
" # colcondo la columna Intercept en la primera columna \n",
770
" \n",
771
" cols = self.X.columns.tolist() # nombre de variable a lista \n",
772
" new_cols_orders = [cols[ -1 ]] + cols[ 5:-1 ] # juntamos listas\n",
773
"\n",
774
" \n",
775
" # [cols[ -1 ]] la jala la ultima fila , cols[ 0:-1 ] primera fila hasta la fila 9\n",
776
" \n",
777
" self.X = self.X.loc[ : , new_cols_orders ] # usamos .loc que filtra por nombre de filas o columnas \n",
778
"\n",
779
" \n",
780
" # creando nuevos atributos \n",
781
" \n",
782
" self.X_np = self.X.values # Dataframe a multi array\n",
783
" self.y_np = y.values.reshape( -1 , 1 ) # de objeto serie a array columna \n",
784
" self.lista = self.X.columns.tolist() # nombre de la base de datos como objeto lista\n",
785
"\n",
786
" \n",
787
"# Creando Métodos #\n",
788
"\n",
789
"###################### MÉTODO 1 ###############################################\n",
790
" \n",
791
" def reg_beta_OLS( self ):\n",
792
" # X, y en Matrix, y vector columna respectivamente \n",
793
" \n",
794
" X_np = self.X_np\n",
795
" y_np = self.y_np\n",
796
"\n",
797
" # beta_ols\n",
798
" beta_ols = np.linalg.inv( X_np.T @ X_np ) @ ( X_np.T @ y_np )\n",
799
"\n",
800
" # columnas de X\n",
801
" index_names = self.lista\n",
802
" # Output\n",
803
" beta_OLS_output = pd.DataFrame( beta_ols , index = index_names , columns = [ 'Coef.' ] )\n",
804
" \n",
805
" # Dataframe de coeffientes como atributo \n",
806
" \n",
807
" self.beta_OLS = beta_OLS_output\n",
808
" \n",
809
" return beta_OLS_output\n",
810
" \n",
811
" \n",
812
"###################### MÉTODO 2 ###############################################\n",
813
" \n",
814
" def var_stderrors_cfdinterval( self ):\n",
815
" \n",
816
" ### VARIANZA ###\n",
817
" \n",
818
" # Se corre la función beta_OLS que estima el vector de coeficientes\n",
819
" self.reg_beta_OLS()\n",
820
" \n",
821
" # usaremos atributos pero con un nombre más simple\n",
822
" X_np = self.X_np\n",
823
" y_np = self.y_np\n",
824
" listaf = self.lista\n",
825
" \n",
826
" # beta_ols\n",
827
" beta_OLS = self.beta_OLS.values.reshape( - 1, 1 ) # Dataframe a vector columna \n",
828
"\n",
829
" # errors\n",
830
" e = y_np - ( X_np @ beta_OLS )\n",
831
"\n",
832
" # error variance\n",
833
" N = X_np.shape[ 0 ]\n",
834
" total_parameters = X_np.shape[ 1 ]\n",
835
" error_var = ( (e.T @ e)[ 0 ] )/( N - total_parameters )\n",
836
"\n",
837
" # Varianza\n",
838
" var_OLS = error_var * np.linalg.inv( X_np.T @ X_np )\n",
839
" \n",
840
" # asignando output de la función def reg_var_OLS( self ): como atributo self.var_OLS\n",
841
" index_names = listaf\n",
842
" var_OLS_output = pd.DataFrame( var_OLS , index = index_names , columns = index_names )\n",
843
" self.var_OLS = var_OLS_output\n",
844
"\n",
845
" \n",
846
" ### STANDAR ERRORS ###\n",
847
" \n",
848
" # var y beta\n",
849
" beta_OLS = self.beta_OLS.values.reshape( -1, 1 ) # -1 significa cualquier número de filas\n",
850
" var_OLS = self.var_OLS.values\n",
851
" \n",
852
" # standard errors\n",
853
" beta_stderror = np.sqrt( np.diag( var_OLS ) )\n",
854
" \n",
855
" table_data0 = { \"Std.Err.\" : beta_stderror.ravel()}\n",
856
" \n",
857
" # defining index names\n",
858
" index_names0 = listaf\n",
859
" \n",
860
" # defining a pandas dataframe \n",
861
" beta_se_output = pd.DataFrame( table_data0 , index = index_names0 )\n",
862
" self.beta_se = beta_se_output\n",
863
"\n",
864
" ### Confidence interval ###\n",
865
" \n",
866
" up_bd = beta_OLS.ravel() + 1.96*beta_stderror\n",
867
" lw_bd = beta_OLS.ravel() - 1.96*beta_stderror\n",
868
" \n",
869
" table_data1 = {\"[0.025\" : lw_bd.ravel(),\n",
870
" \"0.975]\" : up_bd.ravel()}\n",
871
" \n",
872
" # defining index names\n",
873
" index_names1 = listaf\n",
874
" \n",
875
" # defining a pandas dataframe \n",
876
" confiden_interval_output = pd.DataFrame( table_data1 , index = index_names1 )\n",
877
" self_confiden_interval = confiden_interval_output\n",
878
" \n",
879
" return var_OLS_output, beta_se_output, confiden_interval_output\n",
880
" \n",
881
" \n",
882
"###################### MÉTODO 3 ###############################################\n",
883
" \n",
884
" def robust_var_se_cfdinterval(self):\n",
885
" \n",
886
" # Se corre la función beta_OLS que estima el vector de coeficientes\n",
887
" self.reg_beta_OLS()\n",
888
" \n",
889
" # usaré atributos pero con un nombre más simple\n",
890
" X_np = self.X_np\n",
891
" y_np = self.y_np\n",
892
" listaf = self.lista\n",
893
" \n",
894
" beta = np.linalg.inv(X_np.T @ X_np) @ ((X_np.T) @ y )\n",
895
" y_est = X_np @ beta\n",
896
" n = X_np.shape[0]\n",
897
" k = X_np.shape[1] - 1 \n",
898
" nk = n - k \n",
899
"\n",
900
" matrix_robust = np.diag(list( map( lambda x: x**2 , y - y_est)))\n",
901
" Var = np.linalg.inv(X_np.T @ X_np) @ X_np.T @ matrix_robust @ X_np @ np.linalg.inv(X_np.T @ X_np)\n",
902
" sd = np.sqrt( np.diag(Var) )\n",
903
" var = sd**2\n",
904
" t_est = np.absolute(beta/sd)\n",
905
" lower_bound = beta-1.96*sd\n",
906
" upper_bound = beta+1.96*sd\n",
907
" SCR = sum(list( map( lambda x: x**2 , y - y_est) ))\n",
908
" SCT = sum(list( map( lambda x: x**2 , y - np.mean(y_est) )))\n",
909
" R2 = 1-SCR/SCT\n",
910
" rmse = (SCR/n)**0.5\n",
911
" table = pd.DataFrame( {\"ols\": beta , \"standar_error\" : sd , \"Lower_bound\":lower_bound, \"Upper_bound\":upper_bound} ) \n",
912
" \n",
913
" fit = {\"Root_MSE\":rmse, \"R2\": R2}\n",
914
" \n",
915
" index_names7 = listaf\n",
916
" var_robust_output = pd.DataFrame( Var , index = index_names7 , columns = index_names7 )\n",
917
" self.var_robust = var_robust_output\n",
918
" \n",
919
" \n",
920
" return table, fit, var_robust_output\n",
921
" \n",
922
"###################### MÉTODO 4 ############################################### \n",
923
" \n",
924
" def R2_rootMSE( self ) :\n",
925
" \n",
926
" ############\n",
927
" ### R2 ###\n",
928
" \n",
929
" # Se corre la función beta_OLS_Reg que estima el vector de coeficientes\n",
930
" self.reg_beta_OLS()\n",
931
" \n",
932
" y_est = self.X_np @ self.beta_OLS # y estimado\n",
933
" error = self.y_np - y_est # vector de errores\n",
934
" self.SCR = np.sum(np.square(error)) # Suma del Cuadrado de los Residuos\n",
935
" SCT = np.sum(np.square(self.y_np - np.mean(self.X_np) )) # Suma de Cuadrados Total\n",
936
"\n",
937
" self.R2 = 1 - self.SCR/SCT\n",
938
"\n",
939
" \n",
940
" #################\n",
941
" ### root MSE ###\n",
942
" \n",
943
" for i in error.values:\n",
944
" \n",
945
" suma = 0\n",
946
" suma = np.sqrt( suma + (i**2) / self.X_np.shape[0] )\n",
947
" \n",
948
" self.rootMSE = suma.tolist()\n",
949
" \n",
950
" return self.R2, self.rootMSE\n",
951
" \n",
952
"\n",
953
"###################### MÉTODO 5 ###############################################\n",
954
" \n",
955
" def output( self ):\n",
956
" \n",
957
" self.reg_beta_OLS()\n",
958
" self.R2_rootMSE()\n",
959
" self.var_stderrors_cfdinterval()\n",
960
" \n",
961
" # var y beta\n",
962
" beta_OLS = self.beta_OLS.values.reshape( -1, 1 ) # -1 significa cualquier número de filas\n",
963
" var_OLS = self.var_OLS.values\n",
964
" \n",
965
" # standard errors\n",
966
" beta_stderror = np.sqrt( np.diag( var_OLS ) )\n",
967
" \n",
968
" # confidence interval\n",
969
" up_bd = beta_OLS.ravel() + 1.96*beta_stderror\n",
970
" lw_bd = beta_OLS.ravel() - 1.96*beta_stderror\n",
971
" \n",
972
" table_data2 = {'Coef.' : beta_OLS.ravel(),\n",
973
" 'Std.Err.' : beta_stderror.ravel(),\n",
974
" '[0.025' : lw_bd.ravel(),\n",
975
" '0.975]' : up_bd.ravel(),\n",
976
" 'R2' : self.R2,\n",
977
" 'rootMSE' : self.rootMSE}\n",
978
" \n",
979
" return table_data2"
980
]
981
},
982
{
983
"cell_type": "code",
984
"execution_count": 341,
985
"id": "abd0335d",
986
"metadata": {},
987
"outputs": [
988
{
989
"data": {
990
"text/html": [
991
"<div>\n",
992
"<style scoped>\n",
993
" .dataframe tbody tr th:only-of-type {\n",
994
" vertical-align: middle;\n",
995
" }\n",
996
"\n",
997
" .dataframe tbody tr th {\n",
998
" vertical-align: top;\n",
999
" }\n",
1000
"\n",
1001
" .dataframe thead th {\n",
1002
" text-align: right;\n",
1003
" }\n",
1004
"</style>\n",
1005
"<table border=\"1\" class=\"dataframe\">\n",
1006
" <thead>\n",
1007
" <tr style=\"text-align: right;\">\n",
1008
" <th></th>\n",
1009
" <th>Intercept</th>\n",
1010
" <th>weight</th>\n",
1011
" <th>exp1</th>\n",
1012
" <th>exp2</th>\n",
1013
" <th>exp3</th>\n",
1014
" <th>(exp1)(exp2)</th>\n",
1015
" <th>(exp1)(exp3)</th>\n",
1016
" <th>(exp2)(exp3)</th>\n",
1017
" </tr>\n",
1018
" </thead>\n",
1019
" <tbody>\n",
1020
" <tr>\n",
1021
" <th>0</th>\n",
1022
" <td>1</td>\n",
1023
" <td>6.344636</td>\n",
1024
" <td>3.091042</td>\n",
1025
" <td>1.576915</td>\n",
1026
" <td>2.365372</td>\n",
1027
" <td>4.874310</td>\n",
1028
" <td>7.311466</td>\n",
1029
" <td>3.729990</td>\n",
1030
" </tr>\n",
1031
" <tr>\n",
1032
" <th>1</th>\n",
1033
" <td>1</td>\n",
1034
" <td>6.439286</td>\n",
1035
" <td>3.401197</td>\n",
1036
" <td>2.197225</td>\n",
1037
" <td>3.295837</td>\n",
1038
" <td>7.473194</td>\n",
1039
" <td>11.209792</td>\n",
1040
" <td>7.241694</td>\n",
1041
" </tr>\n",
1042
" <tr>\n",
1043
" <th>2</th>\n",
1044
" <td>1</td>\n",
1045
" <td>5.576782</td>\n",
1046
" <td>2.944439</td>\n",
1047
" <td>1.283708</td>\n",
1048
" <td>1.925562</td>\n",
1049
" <td>3.779799</td>\n",
1050
" <td>5.669699</td>\n",
1051
" <td>2.471858</td>\n",
1052
" </tr>\n",
1053
" <tr>\n",
1054
" <th>3</th>\n",
1055
" <td>1</td>\n",
1056
" <td>5.548337</td>\n",
1057
" <td>2.639057</td>\n",
1058
" <td>0.672944</td>\n",
1059
" <td>1.009417</td>\n",
1060
" <td>1.775939</td>\n",
1061
" <td>2.663909</td>\n",
1062
" <td>0.679281</td>\n",
1063
" </tr>\n",
1064
" <tr>\n",
1065
" <th>4</th>\n",
1066
" <td>1</td>\n",
1067
" <td>5.548337</td>\n",
1068
" <td>2.708050</td>\n",
1069
" <td>0.810930</td>\n",
1070
" <td>1.216395</td>\n",
1071
" <td>2.196040</td>\n",
1072
" <td>3.294060</td>\n",
1073
" <td>0.986412</td>\n",
1074
" </tr>\n",
1075
" <tr>\n",
1076
" <th>...</th>\n",
1077
" <td>...</td>\n",
1078
" <td>...</td>\n",
1079
" <td>...</td>\n",
1080
" <td>...</td>\n",
1081
" <td>...</td>\n",
1082
" <td>...</td>\n",
1083
" <td>...</td>\n",
1084
" <td>...</td>\n",
1085
" </tr>\n",
1086
" <tr>\n",
1087
" <th>103</th>\n",
1088
" <td>1</td>\n",
1089
" <td>6.197258</td>\n",
1090
" <td>2.890372</td>\n",
1091
" <td>1.175573</td>\n",
1092
" <td>1.763360</td>\n",
1093
" <td>3.397844</td>\n",
1094
" <td>5.096766</td>\n",
1095
" <td>2.072959</td>\n",
1096
" </tr>\n",
1097
" <tr>\n",
1098
" <th>104</th>\n",
1099
" <td>1</td>\n",
1100
" <td>5.622066</td>\n",
1101
" <td>3.332205</td>\n",
1102
" <td>2.059239</td>\n",
1103
" <td>3.088858</td>\n",
1104
" <td>6.861805</td>\n",
1105
" <td>10.292707</td>\n",
1106
" <td>6.360697</td>\n",
1107
" </tr>\n",
1108
" <tr>\n",
1109
" <th>105</th>\n",
1110
" <td>1</td>\n",
1111
" <td>6.173703</td>\n",
1112
" <td>3.295837</td>\n",
1113
" <td>1.986504</td>\n",
1114
" <td>2.979755</td>\n",
1115
" <td>6.547192</td>\n",
1116
" <td>9.820787</td>\n",
1117
" <td>5.919295</td>\n",
1118
" </tr>\n",
1119
" <tr>\n",
1120
" <th>106</th>\n",
1121
" <td>1</td>\n",
1122
" <td>6.173703</td>\n",
1123
" <td>3.020425</td>\n",
1124
" <td>1.435680</td>\n",
1125
" <td>2.153519</td>\n",
1126
" <td>4.336362</td>\n",
1127
" <td>6.504544</td>\n",
1128
" <td>3.091764</td>\n",
1129
" </tr>\n",
1130
" <tr>\n",
1131
" <th>107</th>\n",
1132
" <td>1</td>\n",
1133
" <td>6.356611</td>\n",
1134
" <td>3.496508</td>\n",
1135
" <td>2.387845</td>\n",
1136
" <td>3.581767</td>\n",
1137
" <td>8.349118</td>\n",
1138
" <td>12.523677</td>\n",
1139
" <td>8.552705</td>\n",
1140
" </tr>\n",
1141
" </tbody>\n",
1142
"</table>\n",
1143
"<p>108 rows × 8 columns</p>\n",
1144
"</div>"
1145
],
1146
"text/plain": [
1147
" Intercept weight exp1 exp2 exp3 (exp1)(exp2) \\\n",
1148
"0 1 6.344636 3.091042 1.576915 2.365372 4.874310 \n",
1149
"1 1 6.439286 3.401197 2.197225 3.295837 7.473194 \n",
1150
"2 1 5.576782 2.944439 1.283708 1.925562 3.779799 \n",
1151
"3 1 5.548337 2.639057 0.672944 1.009417 1.775939 \n",
1152
"4 1 5.548337 2.708050 0.810930 1.216395 2.196040 \n",
1153
".. ... ... ... ... ... ... \n",
1154
"103 1 6.197258 2.890372 1.175573 1.763360 3.397844 \n",
1155
"104 1 5.622066 3.332205 2.059239 3.088858 6.861805 \n",
1156
"105 1 6.173703 3.295837 1.986504 2.979755 6.547192 \n",
1157
"106 1 6.173703 3.020425 1.435680 2.153519 4.336362 \n",
1158
"107 1 6.356611 3.496508 2.387845 3.581767 8.349118 \n",
1159
"\n",
1160
" (exp1)(exp3) (exp2)(exp3) \n",
1161
"0 7.311466 3.729990 \n",
1162
"1 11.209792 7.241694 \n",
1163
"2 5.669699 2.471858 \n",
1164
"3 2.663909 0.679281 \n",
1165
"4 3.294060 0.986412 \n",
1166
".. ... ... \n",
1167
"103 5.096766 2.072959 \n",
1168
"104 10.292707 6.360697 \n",
1169
"105 9.820787 5.919295 \n",
1170
"106 6.504544 3.091764 \n",
1171
"107 12.523677 8.552705 \n",
1172
"\n",
1173
"[108 rows x 8 columns]"
1174
]
1175
},
1176
"execution_count": 341,
1177
"metadata": {},
1178
"output_type": "execute_result"
1179
}
1180
],
1181
"source": [
1182
"A = OLSRegClass( X, y, lista)\n",
1183
"\n",
1184
"# Atributo de las variables \n",
1185
"\n",
1186
"A.X"
1187
]
1188
},
1189
{
1190
"cell_type": "code",
1191
"execution_count": 342,
1192
"id": "471ae9b4",
1193
"metadata": {},
1194
"outputs": [
1195
{
1196
"data": {
1197
"text/plain": [
1198
"0 0.646864\n",
1199
"1 0.311720\n",
1200
"2 0.932252\n",
1201
"3 0.588392\n",
1202
"4 1.208932\n",
1203
" ... \n",
1204
"103 0.862499\n",
1205
"104 1.205591\n",
1206
"105 0.800195\n",
1207
"106 1.057756\n",
1208
"107 0.616481\n",
1209
"Name: ln_lnw, Length: 108, dtype: float64"
1210
]
1211
},
1212
"execution_count": 342,
1213
"metadata": {},
1214
"output_type": "execute_result"
1215
}
1216
],
1217
"source": [
1218
"A.y"
1219
]
1220
},
1221
{
1222
"cell_type": "code",
1223
"execution_count": 343,
1224
"id": "dac40599",
1225
"metadata": {
1226
"scrolled": true
1227
},
1228
"outputs": [
1229
{
1230
"data": {
1231
"text/html": [
1232
"<div>\n",
1233
"<style scoped>\n",
1234
" .dataframe tbody tr th:only-of-type {\n",
1235
" vertical-align: middle;\n",
1236
" }\n",
1237
"\n",
1238
" .dataframe tbody tr th {\n",
1239
" vertical-align: top;\n",
1240
" }\n",
1241
"\n",
1242
" .dataframe thead th {\n",
1243
" text-align: right;\n",
1244
" }\n",
1245
"</style>\n",
1246
"<table border=\"1\" class=\"dataframe\">\n",
1247
" <thead>\n",
1248
" <tr style=\"text-align: right;\">\n",
1249
" <th></th>\n",
1250
" <th>Coef.</th>\n",
1251
" </tr>\n",
1252
" </thead>\n",
1253
" <tbody>\n",
1254
" <tr>\n",
1255
" <th>Intercept</th>\n",
1256
" <td>3.188650e+12</td>\n",
1257
" </tr>\n",
1258
" <tr>\n",
1259
" <th>weight</th>\n",
1260
" <td>2.312000e-01</td>\n",
1261
" </tr>\n",
1262
" <tr>\n",
1263
" <th>exp1</th>\n",
1264
" <td>-1.384813e+12</td>\n",
1265
" </tr>\n",
1266
" <tr>\n",
1267
" <th>exp2</th>\n",
1268
" <td>-2.030916e+12</td>\n",
1269
" </tr>\n",
1270
" <tr>\n",
1271
" <th>exp3</th>\n",
1272
" <td>1.815548e+12</td>\n",
1273
" </tr>\n",
1274
" <tr>\n",
1275
" <th>(exp1)(exp2)</th>\n",
1276
" <td>-3.750000e-01</td>\n",
1277
" </tr>\n",
1278
" <tr>\n",
1279
" <th>(exp1)(exp3)</th>\n",
1280
" <td>2.109375e-01</td>\n",
1281
" </tr>\n",
1282
" <tr>\n",
1283
" <th>(exp2)(exp3)</th>\n",
1284
" <td>4.687500e-02</td>\n",
1285
" </tr>\n",
1286
" </tbody>\n",
1287
"</table>\n",
1288
"</div>"
1289
],
1290
"text/plain": [
1291
" Coef.\n",
1292
"Intercept 3.188650e+12\n",
1293
"weight 2.312000e-01\n",
1294
"exp1 -1.384813e+12\n",
1295
"exp2 -2.030916e+12\n",
1296
"exp3 1.815548e+12\n",
1297
"(exp1)(exp2) -3.750000e-01\n",
1298
"(exp1)(exp3) 2.109375e-01\n",
1299
"(exp2)(exp3) 4.687500e-02"
1300
]
1301
},
1302
"execution_count": 343,
1303
"metadata": {},
1304
"output_type": "execute_result"
1305
}
1306
],
1307
"source": [
1308
"A.reg_beta_OLS() # Resultado del método reg OLS"
1309
]
1310
},
1311
{
1312
"cell_type": "code",
1313
"execution_count": 344,
1314
"id": "42a71d89",
1315
"metadata": {},
1316
"outputs": [
1317
{
1318
"data": {
1319
"text/plain": [
1320
"( Intercept weight exp1 exp2 \\\n",
1321
" Intercept 3.508713e+12 -0.168439 -1.522627e+12 4.709794e+11 \n",
1322
" weight -2.256574e-01 0.014918 6.099939e-02 3.769984e-03 \n",
1323
" exp1 -1.523815e+12 0.036070 6.612683e+11 -2.045437e+11 \n",
1324
" exp2 3.475491e+11 0.020307 -1.516955e+11 3.695393e+11 \n",
1325
" exp3 1.295141e+12 -0.039286 -5.617959e+11 1.613982e+11 \n",
1326
" (exp1)(exp2) -6.459732e+11 0.029641 2.805426e+11 -1.479965e+11 \n",
1327
" (exp1)(exp3) -1.185471e+10 -0.013791 5.148436e+09 -4.881184e+10 \n",
1328
" (exp2)(exp3) 2.212517e+11 -0.003710 -9.608841e+10 7.373810e+10 \n",
1329
" \n",
1330
" exp3 (exp1)(exp2) (exp1)(exp3) (exp2)(exp3) \n",
1331
" Intercept 1.202918e+12 -5.229542e+11 -8.942776e+10 2.193859e+11 \n",
1332
" weight -5.413574e-02 3.587093e-02 -1.022241e-02 -7.564230e-03 \n",
1333
" exp1 -5.224208e+11 2.271161e+11 3.883798e+10 -9.527808e+10 \n",
1334
" exp2 8.694858e+10 -9.184224e+10 -6.175452e+10 6.126590e+10 \n",
1335
" exp3 1.472972e+11 -1.040522e+11 4.016546e+10 1.480289e+10 \n",
1336
" (exp1)(exp2) -1.160764e+11 1.264719e+11 -3.166655e+10 -2.632402e+10 \n",
1337
" (exp1)(exp3) 6.386791e+10 -4.541265e+10 1.592478e+10 7.175158e+09 \n",
1338
" (exp2)(exp3) 6.758192e+09 -1.945097e+10 2.593123e+09 5.187095e+09 ,\n",
1339
" Std.Err.\n",
1340
" Intercept 1.873156e+06\n",
1341
" weight 1.221379e-01\n",
1342
" exp1 8.131840e+05\n",
1343
" exp2 6.078975e+05\n",
1344
" exp3 3.837932e+05\n",
1345
" (exp1)(exp2) 3.556289e+05\n",
1346
" (exp1)(exp3) 1.261934e+05\n",
1347
" (exp2)(exp3) 7.202149e+04,\n",
1348
" [0.025 0.975]\n",
1349
" Intercept 3.188646e+12 3.188653e+12\n",
1350
" weight -8.190362e-03 4.705903e-01\n",
1351
" exp1 -1.384815e+12 -1.384811e+12\n",
1352
" exp2 -2.030917e+12 -2.030915e+12\n",
1353
" exp3 1.815547e+12 1.815549e+12\n",
1354
" (exp1)(exp2) -6.970329e+05 6.970322e+05\n",
1355
" (exp1)(exp3) -2.473389e+05 2.473393e+05\n",
1356
" (exp2)(exp3) -1.411621e+05 1.411622e+05)"
1357
]
1358
},
1359
"execution_count": 344,
1360
"metadata": {},
1361
"output_type": "execute_result"
1362
}
1363
],
1364
"source": [
1365
"A.var_stderrors_cfdinterval() # Matriz de var y cov, sd y confidence interval"
1366
]
1367
},
1368
{
1369
"cell_type": "code",
1370
"execution_count": 345,
1371
"id": "36e9bd53",
1372
"metadata": {},
1373
"outputs": [
1374
{
1375
"name": "stderr",
1376
"output_type": "stream",
1377
"text": [
1378
"/var/folders/zl/dwjs19r53hv4ng4wbr0b4srm0000gn/T/ipykernel_42554/3219601434.py:152: RuntimeWarning: invalid value encountered in sqrt\n",
1379
" sd = np.sqrt( np.diag(Var) )\n"
1380
]
1381
},
1382
{
1383
"data": {
1384
"text/plain": [
1385
"( ols standar_error Lower_bound Upper_bound\n",
1386
" 0 3.188650e+12 NaN NaN NaN\n",
1387
" 1 2.312000e-01 0.106487 0.022485 0.439915\n",
1388
" 2 -1.384813e+12 NaN NaN NaN\n",
1389
" 3 -2.030916e+12 NaN NaN NaN\n",
1390
" 4 1.815548e+12 NaN NaN NaN\n",
1391
" 5 -3.750000e-01 0.230666 -0.827105 0.077105\n",
1392
" 6 2.109375e-01 0.084685 0.044954 0.376921\n",
1393
" 7 4.687500e-02 0.033553 -0.018889 0.112639,\n",
1394
" {'Root_MSE': 0.38702207433645885, 'R2': -0.6657433395568355},\n",
1395
" Intercept weight exp1 exp2 \\\n",
1396
" Intercept -6.761294e+10 5.069708e+09 1.841976e+10 3.265294e+09 \n",
1397
" weight -1.705086e-01 1.133951e-02 4.523530e-02 4.516671e-03 \n",
1398
" exp1 3.542932e+10 -2.201746e+09 -1.090204e+10 -8.479164e+08 \n",
1399
" exp2 4.109676e+10 -3.229000e+09 -1.081535e+10 -2.044731e+09 \n",
1400
" exp3 -4.334018e+10 2.886582e+09 1.305646e+10 1.032711e+09 \n",
1401
" (exp1)(exp2) -3.334106e-01 2.154035e-02 8.960376e-02 7.399946e-03 \n",
1402
" (exp1)(exp3) 1.562500e-01 -1.001835e-02 -4.223633e-02 -3.082275e-03 \n",
1403
" (exp2)(exp3) 3.338623e-02 -2.175875e-03 -9.002686e-03 -6.256104e-04 \n",
1404
" \n",
1405
" exp3 (exp1)(exp2) (exp1)(exp3) (exp2)(exp3) \n",
1406
" Intercept -1.649820e+10 1.160032e+10 -3.543179e+09 -2.018624e+09 \n",
1407
" weight -4.147033e-02 2.783473e-02 -7.845354e-03 -5.283871e-03 \n",
1408
" exp1 8.904519e+09 -6.238933e+09 1.802301e+09 1.141336e+09 \n",
1409
" exp2 1.036568e+10 -7.311260e+09 2.116320e+09 1.257054e+09 \n",
1410
" exp3 -1.095146e+10 7.266514e+09 -1.855335e+09 -1.435356e+09 \n",
1411
" (exp1)(exp2) -7.962573e-02 5.320682e-02 -1.522332e-02 -1.006715e-02 \n",
1412
" (exp1)(exp3) 3.710938e-02 -2.502441e-02 7.171631e-03 4.695892e-03 \n",
1413
" (exp2)(exp3) 8.071899e-03 -5.294800e-03 1.457214e-03 1.125813e-03 )"
1414
]
1415
},
1416
"execution_count": 345,
1417
"metadata": {},
1418
"output_type": "execute_result"
1419
}
1420
],
1421
"source": [
1422
"A.robust_var_se_cfdinterval() # standar error, confidence interval y matriz de var y cov robusta"
1423
]
1424
},
1425
{
1426
"cell_type": "code",
1427
"execution_count": 346,
1428
"id": "5d2fb628",
1429
"metadata": {},
1430
"outputs": [
1431
{
1432
"data": {
1433
"text/plain": [
1434
"(Coef. 0.971815\n",
1435
" dtype: float64,\n",
1436
" [0.08105753598082706])"
1437
]
1438
},
1439
"execution_count": 346,
1440
"metadata": {},
1441
"output_type": "execute_result"
1442
}
1443
],
1444
"source": [
1445
"A.R2_rootMSE() # Hallando el R2"
1446
]
1447
},
1448
{
1449
"cell_type": "code",
1450
"execution_count": 347,
1451
"id": "b932a9d9",
1452
"metadata": {},
1453
"outputs": [
1454
{
1455
"data": {
1456
"text/plain": [
1457
"{'Coef.': array([ 3.18864960e+12, 2.31199987e-01, -1.38481293e+12, -2.03091591e+12,\n",
1458
" 1.81554825e+12, -3.75000000e-01, 2.10937500e-01, 4.68750000e-02]),\n",
1459
" 'Std.Err.': array([1.87315594e+06, 1.22137933e-01, 8.13184046e+05, 6.07897457e+05,\n",
1460
" 3.83793156e+05, 3.55628858e+05, 1.26193437e+05, 7.20214900e+04]),\n",
1461
" '[0.025': array([ 3.18864593e+12, -8.19036164e-03, -1.38481452e+12, -2.03091710e+12,\n",
1462
" 1.81554750e+12, -6.97032936e+05, -2.47338926e+05, -1.41162073e+05]),\n",
1463
" '0.975]': array([ 3.18865327e+12, 4.70590336e-01, -1.38481133e+12, -2.03091472e+12,\n",
1464
" 1.81554900e+12, 6.97032186e+05, 2.47339348e+05, 1.41162167e+05]),\n",
1465
" 'R2': Coef. 0.971815\n",
1466
" dtype: float64,\n",
1467
" 'rootMSE': [0.08105753598082706]}"
1468
]
1469
},
1470
"execution_count": 347,
1471
"metadata": {},
1472
"output_type": "execute_result"
1473
}
1474
],
1475
"source": [
1476
"A.output() # Método final de resultados"
1477
]
1478
}
1479
],
1480
"metadata": {
1481
"kernelspec": {
1482
"display_name": "Python 3 (ipykernel)",
1483
"language": "python",
1484
"name": "python3"
1485
},
1486
"language_info": {
1487
"codemirror_mode": {
1488
"name": "ipython",
1489
"version": 3
1490
},
1491
"file_extension": ".py",
1492
"mimetype": "text/x-python",
1493
"name": "python",
1494
"nbconvert_exporter": "python",
1495
"pygments_lexer": "ipython3",
1496
"version": "3.9.12"
1497
}
1498
},
1499
"nbformat": 4,
1500
"nbformat_minor": 5
1501
}
1502
1503