1 Giới thiệu bộ dữ liệu

Bộ dữ liệu là kết quả của việc dự đoán tuổi của bào ngư. Tuổi của bào ngư được xác định bằng cách cắt vỏ qua hình nón, nhuộm màu và đếm số vòng qua kính hiển vi.Ở đây ta sẽ sử dụng cách đo khác - sử dụng các phép đo vật lý để xác định tuổi của bào ngư.

3 Load dữ liệu

bộ dữ liệu ablone.csv được lưu vào biến df, bao gồm 4177 hàng tương ứng với số cá thể được nghiên cứu và 9 cột tương ứng với các biến sau : sex,length, diameter, heipght, whole_weight(tổng trọng lượng), shucked_weight, viscera_weight, shell_weight, rings.

sex length diameter height whole_weight shucked_weight viscera_weight shell_weight rings
M 0.455 0.365 0.095 0.5140 0.2245 0.1010 0.150 15
M 0.350 0.265 0.090 0.2255 0.0995 0.0485 0.070 7
F 0.530 0.420 0.135 0.6770 0.2565 0.1415 0.210 9
M 0.440 0.365 0.125 0.5160 0.2155 0.1140 0.155 10
I 0.330 0.255 0.080 0.2050 0.0895 0.0395 0.055 7
I 0.425 0.300 0.095 0.3515 0.1410 0.0775 0.120 8
## 'data.frame':    4177 obs. of  9 variables:
##  $ sex           : Factor w/ 3 levels "F","I","M": 3 3 1 3 2 2 1 1 3 1 ...
##  $ length        : num  0.455 0.35 0.53 0.44 0.33 0.425 0.53 0.545 0.475 0.55 ...
##  $ diameter      : num  0.365 0.265 0.42 0.365 0.255 0.3 0.415 0.425 0.37 0.44 ...
##  $ height        : num  0.095 0.09 0.135 0.125 0.08 0.095 0.15 0.125 0.125 0.15 ...
##  $ whole_weight  : num  0.514 0.226 0.677 0.516 0.205 ...
##  $ shucked_weight: num  0.2245 0.0995 0.2565 0.2155 0.0895 ...
##  $ viscera_weight: num  0.101 0.0485 0.1415 0.114 0.0395 ...
##  $ shell_weight  : num  0.15 0.07 0.21 0.155 0.055 0.12 0.33 0.26 0.165 0.32 ...
##  $ rings         : int  15 7 9 10 7 8 20 16 9 19 ...

Dưới đây là một vài chỉ số thống kê cơ bản:

##  sex          length         diameter          height        whole_weight   
##  F:1307   Min.   :0.075   Min.   :0.0550   Min.   :0.0000   Min.   :0.0020  
##  I:1342   1st Qu.:0.450   1st Qu.:0.3500   1st Qu.:0.1150   1st Qu.:0.4415  
##  M:1528   Median :0.545   Median :0.4250   Median :0.1400   Median :0.7995  
##           Mean   :0.524   Mean   :0.4079   Mean   :0.1395   Mean   :0.8287  
##           3rd Qu.:0.615   3rd Qu.:0.4800   3rd Qu.:0.1650   3rd Qu.:1.1530  
##           Max.   :0.815   Max.   :0.6500   Max.   :1.1300   Max.   :2.8255  
##  shucked_weight   viscera_weight    shell_weight        rings       
##  Min.   :0.0010   Min.   :0.0005   Min.   :0.0015   Min.   : 1.000  
##  1st Qu.:0.1860   1st Qu.:0.0935   1st Qu.:0.1300   1st Qu.: 8.000  
##  Median :0.3360   Median :0.1710   Median :0.2340   Median : 9.000  
##  Mean   :0.3594   Mean   :0.1806   Mean   :0.2388   Mean   : 9.934  
##  3rd Qu.:0.5020   3rd Qu.:0.2530   3rd Qu.:0.3290   3rd Qu.:11.000  
##  Max.   :1.4880   Max.   :0.7600   Max.   :1.0050   Max.   :29.000

Để xây dựng một mô hình hồi quy tuyến tính, trước hết ta phải xem mức độ tương quan giữa các biến thông qua biểu đồ và hệ số tương quan.

Từ hệ số tương quan và các đồ thị ở phía trên cho ta biết được mối tương quan giữa biến ring và các biến còn lại.

4 Kiểm định giả thuyết thống kê

##               Df Sum Sq Mean Sq F value Pr(>F)    
## sex            2   8381    4191   499.3 <2e-16 ***
## Residuals   4174  35030       8                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = rings ~ sex)
## 
## $sex
##           diff        lwr        upr     p adj
## I-F -3.2388418 -3.5027939 -2.9748896 0.0000000
## M-F -0.4238064 -0.6797094 -0.1679034 0.0003087
## M-I  2.8150354  2.5609373  3.0691334 0.0000000

Từ kết quả ở trên, ta thấy rằng giữa các nhóm giới tính sex có sự khác biệt về số vòng rings

5 Xây dựng mô hình hồi quy tuyến tính

Ở đây, ta xây dựng mô hình hồi quy tuyến tính với biến mục tiêu ring với các biến còn lại

## 
## Call:
## lm(formula = rings ~ sex + diameter + height + whole_weight + 
##     shucked_weight + viscera_weight + shell_weight, data = df)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -10.4644  -1.3041  -0.3427   0.8633  13.9571 
## 
## Coefficients:
##                 Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      3.87038    0.27536  14.056  < 2e-16 ***
## sexI            -0.82644    0.10220  -8.087 7.96e-16 ***
## sexM             0.05755    0.08333   0.691     0.49    
## diameter        10.56951    0.98887  10.688  < 2e-16 ***
## height          10.74911    1.53525   7.002 2.94e-12 ***
## whole_weight     8.97751    0.72528  12.378  < 2e-16 ***
## shucked_weight -19.80258    0.81490 -24.301  < 2e-16 ***
## viscera_weight -10.61279    1.28782  -8.241 2.27e-16 ***
## shell_weight     8.75078    1.12405   7.785 8.73e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.194 on 4168 degrees of freedom
## Multiple R-squared:  0.5379, Adjusted R-squared:  0.537 
## F-statistic: 606.4 on 8 and 4168 DF,  p-value: < 2.2e-16

6 Diễn giải mô hình

Gọi các biến :

  • sexI, sexM, diameter, height, whole_weight, shucked_weight, viscera_weight, shell_weight lần lượt là \(X_1\), \(X_2\), \(X_3\), \(X_4\), \(X_5\), \(X_6\) ,\(X_7\), \(X_8\)

  • rings\(Y\)

Mô hình hồi quy tuyến tính với biến rings có dạng như sau : \[Y = 3.87 - 0.82{X_1} + 0.05{X_2} + 10.56{X_3} + 10.75{X_4} + 8.97{X_5} - 19.80{X_6} - 10.61{X_7} + 8.75{X_8}\]

Dựa vào kết quả phân tích từ hàm summary() :

  • Phần dư (residuals) : cho ta biết một vài thông số như Min, Max, Median

  • Phần hệ số (Cofficients) : cho ta biết các ước số của mô hình, một vài chỉ số về sai số chuẩn ,giá trị P value,..

  • Phần còn lại cho ta biết kết quả của các chỉ số như : R-square = 0.5379, Adjusted R squared = 0.537, F statistic = 606.4

Tiếp theo ta sẽ tính các giá trị Y dự đoán \(\hat{Y}\)

##         1         2         3         4         5         6         7         8 
##  9.216457  7.848181 11.095069  9.640896  6.729240  7.826991 13.541942 11.467419 
##         9        10        11        12        13        14        15        16 
##  9.719014 13.133518 11.267105  9.459321 10.604171 10.437677 10.413905 11.098297 
##        17        18        19        20 
##  8.230932  9.079185  8.697501  8.639560

Cuối cùng ta thực hiện một vài phép kiểm với phần dư :

## Warning in spreadLevelPlot.lm(model_final): 
## 2 negative fitted values removed

Từ các hình trên, có thể thấy :

  • Trung bình phần dư không bằng 0
  • Khồng tuân theo quy luật phân phối chuẩn
  • Phương sai bất biến

7 Kết luận

Mô hình hồi quy tuyến tính xây dựng cho biến rings của bộ dữ liệu tương đối tốt khi đánh giá thông qua các chỉ số đã tính toán trong mô hình, tuy nhiên các kiểm định về các giả thiết của phần dư thì không đạt đối với một vài giả thiết chính.

LS0tCnRpdGxlOiAiTcO0IGjDrG5oIGjhu5NpIHF1eSB0dXnhur9uIHTDrW5oIGThu7EgxJFvw6FuIHR14buVaSBiw6BvIG5nxrAgIgphdXRob3I6ICJIdXkgUGh1bmciCmRhdGU6ICI0LzIwLzIwMjAiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudCA6CiAgICBjb2RlX2Rvd25sb2FkIDogVFJVRQogICAgZGZfcHJpbnQgOiBrYWJsZQogICAgbnVtYmVyX3NlY3Rpb24gOiBZRVMKICAgIHRvYyA6IFlFUwogICAgdG9jX2Zsb2F0IDogWUVTCiAgICB0aGVtZSA6IGNlcnVsZWFuCiAgICBoaWdobGlnaHQgOiB0YW5nbwotLS0KCiMgR2nhu5tpIHRoaeG7h3UgYuG7mSBk4buvIGxp4buHdSAKCkLhu5kgZOG7ryBsaeG7h3UgbMOgIGvhur90IHF14bqjIGPhu6dhIHZp4buHYyBk4buxIMSRb8OhbiB0deG7lWkgY+G7p2EgYsOgbyBuZ8awLiBUdeG7lWkgY+G7p2EgYsOgbyBuZ8awIMSRxrDhu6NjIHjDoWMgxJHhu4tuaCBi4bqxbmcgY8OhY2ggY+G6r3QgduG7jyBxdWEgaMOsbmggbsOzbiwgbmh14buZbSBtw6B1IHbDoCDEkeG6v20gc+G7kSB2w7JuZyBxdWEga8OtbmggaGnhu4NuIHZpLuG7niDEkcOieSB0YSBz4bq9IHPhu60gZOG7pW5nIGPDoWNoIMSRbyBraMOhYyAtIHPhu60gZOG7pW5nIGPDoWMgcGjDqXAgxJFvIHbhuq10IGzDvSDEkeG7gyB4w6FjIMSR4buLbmggdHXhu5VpIGPhu6dhIGLDoG8gbmfGsC4gCgojIExvYWQgdGjGsCB2aeG7h24KCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmxpYnJhcnkoZHBseXIpCmxpYnJhcnkoY2FyKQpsaWJyYXJ5KHBzeWNoKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoZ3JpZEV4dHJhKQpsaWJyYXJ5KE1BU1MpCmxpYnJhcnkoSG1pc2MpCmBgYAoKIyBMb2FkIGThu68gbGnhu4d1ICAKCmLhu5kgZOG7ryBsaeG7h3UgYWJsb25lLmNzdiDEkcaw4bujYyBsxrB1IHbDoG8gYmnhur9uIGBkZmAsIGJhbyBn4buTbSA0MTc3IGjDoG5nIHTGsMahbmcg4bupbmcgduG7m2kgc+G7kSBjw6EgdGjhu4MgxJHGsOG7o2MgbmdoacOqbiBj4bupdSB2w6AgOSBj4buZdCB0xrDGoW5nIOG7qW5nIHbhu5tpIGPDoWMgYmnhur9uIHNhdSA6IHNleCxsZW5ndGgsIGRpYW1ldGVyLCBoZWlwZ2h0LCB3aG9sZV93ZWlnaHQodOG7lW5nIHRy4buNbmcgbMaw4bujbmcpLCBzaHVja2VkX3dlaWdodCwgdmlzY2VyYV93ZWlnaHQsIHNoZWxsX3dlaWdodCwgcmluZ3MuCgpgYGB7cn0KZGYgPSByZWFkLmNzdignaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3BuaHV5L2Jpb2luZm8vbWFzdGVyL2RhdGFzZXRzL2FiYWxvbmUvYWJhbG9uZS5jc3YnLCBoZWFkZXIgPSBUUlVFKQphdHRhY2goZGYpCmhlYWQoZGYpCnN0cihkZiApCmBgYAoKRMaw4bubaSDEkcOieSBsw6AgbeG7mXQgdsOgaSBjaOG7iSBz4buRIHRo4buRbmcga8OqIGPGoSBi4bqjbjoKCmBgYHtyfQpkZiA9IG5hLm9taXQoZGYpCnN1bW1hcnkoZGYpCmBgYAoKxJDhu4MgeMOieSBk4buxbmcgbeG7mXQgbcO0IGjDrG5oIGjhu5NpIHF1eSB0dXnhur9uIHTDrW5oLCB0csaw4bubYyBo4bq/dCB0YSBwaOG6o2kgeGVtIG3hu6ljIMSR4buZIHTGsMahbmcgcXVhbiBnaeG7r2EgY8OhYyBiaeG6v24gdGjDtG5nIHF1YSBiaeG7g3UgxJHhu5MgdsOgIGjhu4cgc+G7kSB0xrDGoW5nIHF1YW4uCgpgYGB7ciBmaWcud2lkdGggPSA3LCBmaWcuaGVpZ2h0PTZ9CnBhaXJzLnBhbmVscyhkZikKYGBgCgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBmaWcud2lkdGggPSA3LCBmaWcuaGVpZ2h0PTZ9CnAxID0gZ2dwbG90KGRhdGEgPSBkZiAsIGFlcyh4ID0gcmluZ3MpKSArIAogIGdlb21faGlzdG9ncmFtKGFlcyhjb2xvciA9IHNleCAsIGZpbGwgPSBzZXgpLCBhbHBoYSA9IDAuNyApCgpwMiA9IGdncGxvdChkYXRhID0gZGYsIGFlcyh4ID0gcmluZ3MsIGZpbGwgPSBzZXgpKSArIAogIGdlb21fZGVuc2l0eShwb3NpdGlvbiA9ICdzdGFjaycsIGFscGhhID0gMC43KQoKcDMgPSBnZ3Bsb3QoZGF0YSA9IGRmLCBhZXMoeCA9IHJpbmdzLCBmaWxsID0gc2V4KSkgKyBnZW9tX2hpc3RvZ3JhbShwb3NpdGlvbiA9ICdkb2RnZScpCgpwNCA9IGdncGxvdChkYXRhID0gZGYgLCBhZXMoeCA9IHJpbmdzKSkgKyAKICBnZW9tX2hpc3RvZ3JhbShhZXMoY29sb3IgPSBzZXggLCBmaWxsID0gc2V4KSwgYWxwaGEgPSAwLjcgKSArCiAgZmFjZXRfd3JhcCh+c2V4LCBuY29sID0gMykKCmdyaWQuYXJyYW5nZShwMSxwMixwMyxwNCkKYGBgCgpgYGB7ciBmaWcud2lkdGggPSA3LCBmaWcuaGVpZ2h0PTZ9CnA1ID0gZ2dwbG90KGRhdGEgPSBkZiwgYWVzKHkgPSByaW5ncywgeCA9IGxlbmd0aCwgY29sb3IgPSBzZXgpKSArIGdlb21fcG9pbnQoKQpwNiA9IGdncGxvdChkYXRhID0gZGYsIGFlcyh5ID0gcmluZ3MsIHggPSBoZWlnaHQsIGNvbG9yID0gc2V4KSkgKyBnZW9tX3BvaW50KCkKcDcgPSBnZ3Bsb3QoZGF0YSA9IGRmLCBhZXMoeSA9IHJpbmdzLCB4ID0gZGlhbWV0ZXIsIGNvbG9yID0gc2V4KSkgKyBnZW9tX3BvaW50KCkKcDggPSBnZ3Bsb3QoZGF0YSA9IGRmLCBhZXMoeSA9IHJpbmdzLCB4ID0gd2hvbGVfd2VpZ2h0LCBjb2xvciA9IHNleCkpICsgZ2VvbV9wb2ludCgpCnA5ID0gZ2dwbG90KGRhdGEgPSBkZiwgYWVzKHkgPSByaW5ncywgeCA9IHNodWNrZWRfd2VpZ2h0LCBjb2xvciA9IHNleCkpICsgZ2VvbV9wb2ludCgpCnAxMCA9IGdncGxvdChkYXRhID0gZGYsIGFlcyh5ID0gcmluZ3MsIHggPSB2aXNjZXJhX3dlaWdodCwgY29sb3IgPSBzZXgpKSArIGdlb21fcG9pbnQoKQpwMTEgPSBnZ3Bsb3QoZGF0YSA9IGRmLCBhZXMoeSA9IHJpbmdzLCB4ID0gc2hlbGxfd2VpZ2h0LCBjb2xvciA9IHNleCkpICsgZ2VvbV9wb2ludCgpCgpncmlkLmFycmFuZ2UocDUscDYscDcscDgscDkscDEwLHAxMSkKYGBgCgpU4burIGjhu4cgc+G7kSB0xrDGoW5nIHF1YW4gdsOgIGPDoWMgxJHhu5MgdGjhu4sg4bufIHBow61hIHRyw6puIGNobyB0YSBiaeG6v3QgxJHGsOG7o2MgbeG7kWkgdMawxqFuZyBxdWFuIGdp4buvYSBiaeG6v24gYHJpbmdgIHbDoCBjw6FjIGJp4bq/biBjw7JuIGzhuqFpLgoKCiMgS2nhu4NtIMSR4buLbmggZ2nhuqMgdGh1eeG6v3QgdGjhu5FuZyBrw6ogCgpgYGB7cn0KYW5vdmEgPSBhb3YocmluZ3MgfiBzZXgpCnN1bW1hcnkoYW5vdmEpCmBgYAoKYGBge3J9ClR1a2V5SFNEKGFub3ZhKQpgYGAKClThu6sga+G6v3QgcXXhuqMg4bufIHRyw6puLCB0YSB0aOG6pXkgcuG6sW5nIGdp4buvYSBjw6FjIG5ow7NtIGdp4bubaSB0w61uaCBgc2V4YCBjw7Mgc+G7sSBraMOhYyBiaeG7h3QgduG7gSBz4buRIHbDsm5nIGByaW5nc2AgCgojIFjDonkgZOG7sW5nIG3DtCBow6xuaCBo4buTaSBxdXkgdHV54bq/biB0w61uaAoK4bueIMSRw6J5LCB0YSB4w6J5IGThu7FuZyBtw7QgaMOsbmggaOG7k2kgcXV5IHR1eeG6v24gdMOtbmggduG7m2kgYmnhur9uIG3hu6VjIHRpw6p1IGByaW5nYCB24bubaSBjw6FjIGJp4bq/biBjw7JuIGzhuqFpCgpgYGB7cn0KbTEgPSBsbShyaW5ncyB+IC4sIGRhdGEgPSBkZikKbW9kZWxfZmluYWwgPSBzdGVwQUlDKG0xLCBkaXJlY3Rpb24gPSAnYm90aCcsdHJhY2UgPSBGQUxTRSkKc3VtbWFyeShtb2RlbF9maW5hbCkKYGBgCgojIERp4buFbiBnaeG6o2kgbcO0IGjDrG5oIAoKKipH4buNaSBjw6FjIGJp4bq/biA6KioKCiogYHNleElgLCBgc2V4TWAsIGBkaWFtZXRlcmAsIGBoZWlnaHRgLCBgd2hvbGVfd2VpZ2h0YCwgYHNodWNrZWRfd2VpZ2h0YCwgYHZpc2NlcmFfd2VpZ2h0YCwgYHNoZWxsX3dlaWdodGAgbOG6p24gbMaw4bujdCBsw6AgJFhfMSQsICRYXzIkLCAkWF8zJCwgJFhfNCQsICRYXzUkLCAkWF82JCAsJFhfNyQsICRYXzgkCgoqIGByaW5nc2AgbMOgICAkWSQKCk3DtCBow6xuaCBo4buTaSBxdXkgdHV54bq/biB0w61uaCB24bubaSBiaeG6v24gYHJpbmdzYCBjw7MgZOG6oW5nIG5oxrAgc2F1IDoKJCRZID0gMy44NyAtIDAuODJ7WF8xfSArIDAuMDV7WF8yfSArIDEwLjU2e1hfM30gKyAxMC43NXtYXzR9ICsgOC45N3tYXzV9IC0gMTkuODB7WF82fSAtIDEwLjYxe1hfN30gKyA4Ljc1e1hfOH0kJAoKROG7sWEgdsOgbyBr4bq/dCBxdeG6oyBwaMOibiB0w61jaCB04burIGjDoG0gYHN1bW1hcnkoKWAgOgoKKiBQaOG6p24gZMawIChyZXNpZHVhbHMpIDogY2hvIHRhIGJp4bq/dCBt4buZdCB2w6BpIHRow7RuZyBz4buRIG5oxrAgTWluLCBNYXgsIE1lZGlhbgoKKiBQaOG6p24gaOG7hyBz4buRIChDb2ZmaWNpZW50cykgOiBjaG8gdGEgYmnhur90IGPDoWMgxrDhu5tjIHPhu5EgY+G7p2EgbcO0IGjDrG5oLCBt4buZdCB2w6BpIGNo4buJIHPhu5EgduG7gSBzYWkgc+G7kSBjaHXhuqluICxnacOhIHRy4buLIFAgdmFsdWUsLi4KCiogUGjhuqduIGPDsm4gbOG6oWkgY2hvIHRhIGJp4bq/dCBr4bq/dCBxdeG6oyBj4bunYSBjw6FjIGNo4buJIHPhu5EgbmjGsCA6ICoqUi1zcXVhcmUgPSAwLjUzNzkqKiwgKipBZGp1c3RlZCBSIHNxdWFyZWQgPSAwLjUzNyoqLCAqKkYgc3RhdGlzdGljID0gNjA2LjQqKgoKVGnhur9wIHRoZW8gdGEgc+G6vSB0w61uaCBjw6FjIGdpw6EgdHLhu4sgWSBk4buxIMSRb8OhbiAkXGhhdHtZfSQKCmBgYHtyfQpoZWFkKHByZWRpY3QobW9kZWxfZmluYWwpLCAyMCkKYGBgCgpDdeG7kWkgY8O5bmcgdGEgdGjhu7FjIGhp4buHbiBt4buZdCB2w6BpIHBow6lwIGtp4buDbSB24bubaSBwaOG6p24gZMawIDoKCmBgYHtyIGZpZy53aWR0aCA9IDcsIGZpZy5oZWlnaHQ9Nn0Kb3AgPSBwYXIobWZyb3cgPSBjKDIsMikpCnAxMiA9IHBsb3QobW9kZWxfZmluYWwsIGMoMSwyKSkKcDEzID0gc3ByZWFkTGV2ZWxQbG90KG1vZGVsX2ZpbmFsKQpgYGAKClThu6sgY8OhYyBow6xuaCB0csOqbiwgY8OzIHRo4buDIHRo4bqleSA6CgoqIFRydW5nIGLDrG5oIHBo4bqnbiBkxrAga2jDtG5nIGLhurFuZyAwCiogS2jhu5NuZyB0dcOibiB0aGVvIHF1eSBsdeG6rXQgcGjDom4gcGjhu5FpIGNodeG6qW4gCiogUGjGsMahbmcgc2FpIGLhuqV0IGJp4bq/biAKCgojIEvhur90IGx14bqtbiAKCk3DtCBow6xuaCBo4buTaSBxdXkgdHV54bq/biB0w61uaCB4w6J5IGThu7FuZyBjaG8gYmnhur9uIGByaW5nc2AgY+G7p2EgYuG7mSBk4buvIGxp4buHdSB0xrDGoW5nIMSR4buRaSB04buRdCBraGkgxJHDoW5oIGdpw6EgdGjDtG5nIHF1YSBjw6FjIGNo4buJIHPhu5EgxJHDoyB0w61uaCB0b8OhbiB0cm9uZyBtw7QgaMOsbmgsIHR1eSBuaGnDqm4gY8OhYyBraeG7g20gxJHhu4tuaCB24buBIGPDoWMgZ2nhuqMgdGhp4bq/dCBj4bunYSBwaOG6p24gZMawIHRow6wga2jDtG5nIMSR4bqhdCDEkeG7kWkgduG7m2kgbeG7mXQgdsOgaSBnaeG6oyB0aGnhur90IGNow61uaC4K