Tên: Mai Huy

MSSV: 43.01.104.065

Số thứ tự: 08

Phân tích thông tin tập dữ liệu Smarket

# Load thư viện  ISLR chứa tập dữ liệu Smarket
library(ISLR)
# Liệt kê tên các biến của tập dữ liệu Smarket
names(Smarket)
[1] "Year"      "Lag1"      "Lag2"      "Lag3"      "Lag4"      "Lag5"      "Volume"    "Today"     "Direction"
# Kích thước của tập dữ liệu Smarket, có 1250 dòng và 9 cột
dim(Smarket)
[1] 1250    9
# Hàm summary dùng để phân tích tóm tắt dữ liệu những biến trong dataset, khi mà cho biết thông tin về giá trị cao nhất, thấp nhất, giá trị trung bình, trung vị.
summary(Smarket )
      Year           Lag1                Lag2                Lag3                Lag4                Lag5         
 Min.   :2001   Min.   :-4.922000   Min.   :-4.922000   Min.   :-4.922000   Min.   :-4.922000   Min.   :-4.92200  
 1st Qu.:2002   1st Qu.:-0.639500   1st Qu.:-0.639500   1st Qu.:-0.640000   1st Qu.:-0.640000   1st Qu.:-0.64000  
 Median :2003   Median : 0.039000   Median : 0.039000   Median : 0.038500   Median : 0.038500   Median : 0.03850  
 Mean   :2003   Mean   : 0.003834   Mean   : 0.003919   Mean   : 0.001716   Mean   : 0.001636   Mean   : 0.00561  
 3rd Qu.:2004   3rd Qu.: 0.596750   3rd Qu.: 0.596750   3rd Qu.: 0.596750   3rd Qu.: 0.596750   3rd Qu.: 0.59700  
 Max.   :2005   Max.   : 5.733000   Max.   : 5.733000   Max.   : 5.733000   Max.   : 5.733000   Max.   : 5.73300  
     Volume           Today           Direction 
 Min.   :0.3561   Min.   :-4.922000   Down:602  
 1st Qu.:1.2574   1st Qu.:-0.639500   Up  :648  
 Median :1.4229   Median : 0.038500             
 Mean   :1.4783   Mean   : 0.003138             
 3rd Qu.:1.6417   3rd Qu.: 0.596750             
 Max.   :3.1525   Max.   : 5.733000             
# Pairs() dùng để tạo ra ma trận đồ thị phân tán của dữ liệu
pairs(Smarket)

# Hàm cor tạo ra ma trận mối tương quan của các biến đầu vào trong dữ liệu Smarket
cor(Smarket)
Error in cor(Smarket) : 'x' must be numeric

Dòng ở trên báo lỗi do trong tập dữ liệu Smarket tồn tại biến Direction là giá trị định tính

# Ma trận mối tương quan của các biến đầu vào ngoại trừ biến direction trong dữ liệu Smarket
cor(Smarket [,-9])
             Year         Lag1         Lag2         Lag3         Lag4         Lag5      Volume        Today
Year   1.00000000  0.029699649  0.030596422  0.033194581  0.035688718  0.029787995  0.53900647  0.030095229
Lag1   0.02969965  1.000000000 -0.026294328 -0.010803402 -0.002985911 -0.005674606  0.04090991 -0.026155045
Lag2   0.03059642 -0.026294328  1.000000000 -0.025896670 -0.010853533 -0.003557949 -0.04338321 -0.010250033
Lag3   0.03319458 -0.010803402 -0.025896670  1.000000000 -0.024051036 -0.018808338 -0.04182369 -0.002447647
Lag4   0.03568872 -0.002985911 -0.010853533 -0.024051036  1.000000000 -0.027083641 -0.04841425 -0.006899527
Lag5   0.02978799 -0.005674606 -0.003557949 -0.018808338 -0.027083641  1.000000000 -0.02200231 -0.034860083
Volume 0.53900647  0.040909908 -0.043383215 -0.041823686 -0.048414246 -0.022002315  1.00000000  0.014591823
Today  0.03009523 -0.026155045 -0.010250033 -0.002447647 -0.006899527 -0.034860083  0.01459182  1.000000000

Mối tương quan giữa những biến Lag và biến Today gần = 0, dường như có ít sự tương quan giữa giá trị trả về ngày nay và ngày xưa. Mối tương quan duy nhất có giá trị tương quan khá lớn là giữa biến Year và Volume.

# attach dùng để khiến cho những biến trong dữ liệu Smarket có sẵn trong R theo tên
attach ( Smarket)
# Đồ thị phân tán biến Volume, chúng ta thấy rằng giá trị volume tăng theo thời gian 
plot(Volume)

Áp dụng Logistic Regression

Chúng ta sẽ fit mô hình logistic Regression để dự đoán biến đầu ra Direction và sử dụng các biến đầu vào là Lag1 -> Lag5 và Volume. Hàm glm() và đưa vào biến family =binomial dùng để chạy 1 mô hình Logistic Regression.

# Fit mô hình Logistic Regresion để dự đoán biến đầu ra Direction trong dữ liệu Smarket
glm.fits = glm(Direction~Lag1 + Lag2 + Lag3 + Lag4 + Lag5 + Volume ,
data=Smarket ,family=binomial)
# Hàm summary(model1) sẽ cho chúng ta biết thông tin p-values, Z-value, độ lệch chuẩn cho những hệ số của các biến đầu vào
summary(glm.fits)

Call:
glm(formula = Direction ~ Lag1 + Lag2 + Lag3 + Lag4 + Lag5 + 
    Volume, family = binomial, data = Smarket)

Deviance Residuals: 
   Min      1Q  Median      3Q     Max  
-1.446  -1.203   1.065   1.145   1.326  

Coefficients:
             Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.126000   0.240736  -0.523    0.601
Lag1        -0.073074   0.050167  -1.457    0.145
Lag2        -0.042301   0.050086  -0.845    0.398
Lag3         0.011085   0.049939   0.222    0.824
Lag4         0.009359   0.049974   0.187    0.851
Lag5         0.010313   0.049511   0.208    0.835
Volume       0.135441   0.158360   0.855    0.392

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 1731.2  on 1249  degrees of freedom
Residual deviance: 1727.6  on 1243  degrees of freedom
AIC: 1741.6

Number of Fisher Scoring iterations: 3

Hàm summray cho biết thông tin về giá trị các hệ số của mô hình (B0->B6), thấy rằng Lag1 có hệ số nhỏ nhất = 0.145, tuy nhiên ở giá trị 0.145 vẫn là tương đối lớn, vì thế không có bằng chứng thống kê cho thấy rằng có mối quan hệ giữa Lag1 và biến đầu ra Direction.

# Sử dụng hàm coef() để chỉ hiển thị hệ số của mô hình (B0->B6)
coef(glm.fits)
 (Intercept)         Lag1         Lag2         Lag3         Lag4         Lag5       Volume 
-0.126000257 -0.073073746 -0.042301344  0.011085108  0.009358938  0.010313068  0.135440659 
#Sử dụng hàm summary để chỉ truy cập và hiển thị thông tin các hệ số của mô hình (B0-B6)
summary(glm.fits)$coef
                Estimate Std. Error    z value  Pr(>|z|)
(Intercept) -0.126000257 0.24073574 -0.5233966 0.6006983
Lag1        -0.073073746 0.05016739 -1.4565986 0.1452272
Lag2        -0.042301344 0.05008605 -0.8445733 0.3983491
Lag3         0.011085108 0.04993854  0.2219750 0.8243333
Lag4         0.009358938 0.04997413  0.1872757 0.8514445
Lag5         0.010313068 0.04951146  0.2082966 0.8349974
Volume       0.135440659 0.15835970  0.8552723 0.3924004
# CHỉ hiển thị cột thứ 4 là cột cho biết giá trị p-value của các hệ số
summary(glm.fits)$coef[,4]
(Intercept)        Lag1        Lag2        Lag3        Lag4        Lag5      Volume 
  0.6006983   0.1452272   0.3983491   0.8243333   0.8514445   0.8349974   0.3924004 
glm.probs=predict(glm.fits,type="response")

Nếu không có dataset được cung cấp cho hàm predict, thì xác suất sẽ được tính cho bộ dữ liệu training mà được dùng để fit mô hình logistic regression ở trên

# Xác xuất xu hướng thị trường sẽ đi lên (Direction = Up) cho 10 dòng đầu tiên của dữ liệu
glm.probs[1:10]
        1         2         3         4         5         6         7         8         9        10 
0.5070841 0.4814679 0.4811388 0.5152224 0.5107812 0.5069565 0.4926509 0.5092292 0.5176135 0.4888378 
# Hàm contrast trả về những mã hoá mà R sử dụng cho những biến giả, biến giả ở đây là Up =1 khi direction = Up và Up = 0  khi direction = down
contrasts(Direction)
     Up
Down  0
Up    1
LS0tDQp0aXRsZTogIkxvZ2lzdGljIFJlZ3Jlc3Npb24iDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyMgVMOqbjogTWFpIEh1eQ0KIyMjIE1TU1Y6IDQzLjAxLjEwNC4wNjUNCiMjIyBT4buRIHRo4bupIHThu7E6IDA4DQoNCiMgUGjDom4gdMOtY2ggdGjDtG5nIHRpbiB04bqtcCBk4buvIGxp4buHdSBTbWFya2V0IA0KDQpgYGB7cn0NCiMgTG9hZCB0aMawIHZp4buHbiAgSVNMUiBjaOG7qWEgdOG6rXAgZOG7ryBsaeG7h3UgU21hcmtldA0KbGlicmFyeShJU0xSKQ0KIyBMaeG7h3Qga8OqIHTDqm4gY8OhYyBiaeG6v24gY+G7p2EgdOG6rXAgZOG7ryBsaeG7h3UgU21hcmtldA0KbmFtZXMoU21hcmtldCkNCiMgS8OtY2ggdGjGsOG7m2MgY+G7p2EgdOG6rXAgZOG7ryBsaeG7h3UgU21hcmtldCwgY8OzIDEyNTAgZMOybmcgdsOgIDkgY+G7mXQNCmRpbShTbWFya2V0KQ0KIyBIw6BtIHN1bW1hcnkgZMO5bmcgxJHhu4MgcGjDom4gdMOtY2ggdMOzbSB04bqvdCBk4buvIGxp4buHdSBuaOG7r25nIGJp4bq/biB0cm9uZyBkYXRhc2V0LCBraGkgbcOgIGNobyBiaeG6v3QgdGjDtG5nIHRpbiB24buBIGdpw6EgdHLhu4sgY2FvIG5o4bqldCwgdGjhuqVwIG5o4bqldCwgZ2nDoSB0cuG7iyB0cnVuZyBiw6xuaCwgdHJ1bmcgduG7iy4NCnN1bW1hcnkoU21hcmtldCApDQpgYGANCg0KDQpgYGB7cn0NCiMgUGFpcnMoKSBkw7luZyDEkeG7gyB04bqhbyByYSBtYSB0cuG6rW4gxJHhu5MgdGjhu4sgcGjDom4gdMOhbiBj4bunYSBk4buvIGxp4buHdQ0KcGFpcnMoU21hcmtldCkNCmBgYA0KDQpgYGB7cn0NCiMgSMOgbSBjb3IgdOG6oW8gcmEgbWEgdHLhuq1uIG3hu5FpIHTGsMahbmcgcXVhbiBj4bunYSBjw6FjIGJp4bq/biDEkeG6p3UgdsOgbyB0cm9uZyBk4buvIGxp4buHdSBTbWFya2V0DQpjb3IoU21hcmtldCkNCmBgYA0KDQpEw7JuZyDhu58gdHLDqm4gYsOhbyBs4buXaSBkbyB0cm9uZyB04bqtcCBk4buvIGxp4buHdSBTbWFya2V0IHThu5NuIHThuqFpIGJp4bq/biBEaXJlY3Rpb24gbMOgIGdpw6EgdHLhu4sgxJHhu4tuaCB0w61uaA0KDQpgYGB7cn0NCiMgTWEgdHLhuq1uIG3hu5FpIHTGsMahbmcgcXVhbiBj4bunYSBjw6FjIGJp4bq/biDEkeG6p3UgdsOgbyBuZ2/huqFpIHRy4burIGJp4bq/biBkaXJlY3Rpb24gdHJvbmcgZOG7ryBsaeG7h3UgU21hcmtldA0KY29yKFNtYXJrZXQgWywtOV0pDQpgYGANCg0KTeG7kWkgdMawxqFuZyBxdWFuIGdp4buvYSBuaOG7r25nIGJp4bq/biBMYWcgdsOgIGJp4bq/biBUb2RheSBn4bqnbiA9IDAsIGTGsOG7nW5nIG5oxrAgY8OzIMOtdCBz4buxIHTGsMahbmcgcXVhbiBnaeG7r2EgZ2nDoSB0cuG7iyB0cuG6oyB24buBIG5nw6B5IG5heSB2w6AgbmfDoHkgeMawYS4gTeG7kWkgdMawxqFuZyBxdWFuIGR1eSBuaOG6pXQgY8OzIGdpw6EgdHLhu4sgdMawxqFuZyBxdWFuIGtow6EgbOG7m24gbMOgIGdp4buvYSBiaeG6v24gWWVhciB2w6AgVm9sdW1lLiANCg0KYGBge3J9DQojIGF0dGFjaCBkw7luZyDEkeG7gyBraGnhur9uIGNobyBuaOG7r25nIGJp4bq/biB0cm9uZyBk4buvIGxp4buHdSBTbWFya2V0IGPDsyBz4bq1biB0cm9uZyBSIHRoZW8gdMOqbg0KYXR0YWNoICggU21hcmtldCkNCmBgYA0KDQoNCmBgYHtyfQ0KIyDEkOG7kyB0aOG7iyBwaMOibiB0w6FuIGJp4bq/biBWb2x1bWUsIGNow7puZyB0YSB0aOG6pXkgcuG6sW5nIGdpw6EgdHLhu4sgdm9sdW1lIHTEg25nIHRoZW8gdGjhu51pIGdpYW4gDQpwbG90KFZvbHVtZSkNCmBgYA0KDQojIMOBcCBk4bulbmcgTG9naXN0aWMgUmVncmVzc2lvbg0KDQpDaMO6bmcgdGEgc+G6vSBmaXQgbcO0IGjDrG5oIGxvZ2lzdGljIFJlZ3Jlc3Npb24gxJHhu4MgZOG7sSDEkW/DoW4gYmnhur9uIMSR4bqndSByYSBEaXJlY3Rpb24gdsOgIHPhu60gZOG7pW5nIGPDoWMgYmnhur9uIMSR4bqndSB2w6BvIGzDoCBMYWcxIC0+IExhZzUgdsOgIFZvbHVtZS4gSMOgbSBnbG0oKSB2w6AgxJHGsGEgdsOgbyBiaeG6v24gZmFtaWx5ID1iaW5vbWlhbCBkw7luZyDEkeG7gyBjaOG6oXkgMSBtw7QgaMOsbmggTG9naXN0aWMgUmVncmVzc2lvbi4NCg0KYGBge3J9DQojIEZpdCBtw7QgaMOsbmggTG9naXN0aWMgUmVncmVzaW9uIMSR4buDIGThu7EgxJFvw6FuIGJp4bq/biDEkeG6p3UgcmEgRGlyZWN0aW9uIHRyb25nIGThu68gbGnhu4d1IFNtYXJrZXQNCmdsbS5maXRzID0gZ2xtKERpcmVjdGlvbn5MYWcxICsgTGFnMiArIExhZzMgKyBMYWc0ICsgTGFnNSArIFZvbHVtZSAsDQpkYXRhPVNtYXJrZXQgLGZhbWlseT1iaW5vbWlhbCkNCmBgYA0KDQoNCmBgYHtyfQ0KIyBIw6BtIHN1bW1hcnkobW9kZWwxKSBz4bq9IGNobyBjaMO6bmcgdGEgYmnhur90IHRow7RuZyB0aW4gcC12YWx1ZXMsIFotdmFsdWUsIMSR4buZIGzhu4djaCBjaHXhuqluIGNobyBuaOG7r25nIGjhu4cgc+G7kSBj4bunYSBjw6FjIGJp4bq/biDEkeG6p3UgdsOgbw0Kc3VtbWFyeShnbG0uZml0cykNCmBgYA0KDQpIw6BtIHN1bW1yYXkgY2hvIGJp4bq/dCB0aMO0bmcgdGluIHbhu4EgZ2nDoSB0cuG7iyBjw6FjIGjhu4cgc+G7kSBj4bunYSBtw7QgaMOsbmggKEIwLT5CNiksIHRo4bqleSBy4bqxbmcgTGFnMSBjw7MgaOG7hyBz4buRIG5o4buPIG5o4bqldCA9IDAuMTQ1LCANCnR1eSBuaGnDqm4g4bufIGdpw6EgdHLhu4sgMC4xNDUgduG6q24gbMOgIHTGsMahbmcgxJHhu5FpIGzhu5tuLCB2w6wgdGjhur8ga2jDtG5nIGPDsyBi4bqxbmcgY2jhu6luZyB0aOG7kW5nIGvDqiBjaG8gdGjhuqV5IHLhurFuZyBjw7MgbeG7kWkgcXVhbiBo4buHIGdp4buvYSBMYWcxIHbDoCBiaeG6v24gxJHhuqd1IHJhIERpcmVjdGlvbi4NCg0KYGBge3J9DQojIFPhu60gZOG7pW5nIGjDoG0gY29lZigpIMSR4buDIGNo4buJIGhp4buDbiB0aOG7iyBo4buHIHPhu5EgY+G7p2EgbcO0IGjDrG5oIChCMC0+QjYpDQpjb2VmKGdsbS5maXRzKQ0KYGBgDQoNCmBgYHtyfQ0KI1Phu60gZOG7pW5nIGjDoG0gc3VtbWFyeSDEkeG7gyBjaOG7iSB0cnV5IGPhuq1wIHbDoCBoaeG7g24gdGjhu4sgdGjDtG5nIHRpbiBjw6FjIGjhu4cgc+G7kSBj4bunYSBtw7QgaMOsbmggKEIwLUI2KQ0Kc3VtbWFyeShnbG0uZml0cykkY29lZg0KYGBgDQoNCmBgYHtyfQ0KIyBDSOG7iSBoaeG7g24gdGjhu4sgY+G7mXQgdGjhu6kgNCBsw6AgY+G7mXQgY2hvIGJp4bq/dCBnacOhIHRy4buLIHAtdmFsdWUgY+G7p2EgY8OhYyBo4buHIHPhu5ENCnN1bW1hcnkoZ2xtLmZpdHMpJGNvZWZbLDRdDQpgYGANCg0KYGBge3J9DQojIEjDoG0gcHJlZGljdCBkw7luZyDEkeG7gyBk4buxIMSRb8OhbiB4w6FjIHN14bqldCB4dSBoxrDhu5tuZyB0aOG7iyB0csaw4budbmcgc+G6vSDEkWkgbMOqbiAoRGlyZWN0dGlvbiA9IFVwKSwgdHlwZSA9ICJyZXNwb25zZSIgxJHhu4MgeHXhuqV0IHJhIHjDoWMgeHXhuqV0IHRoZW8gZOG6oW5nIFAoWSA9IDF8WCkNCmdsbS5wcm9icz1wcmVkaWN0KGdsbS5maXRzLHR5cGU9InJlc3BvbnNlIikNCmBgYA0KDQpO4bq/dSBraMO0bmcgY8OzIGRhdGFzZXQgxJHGsOG7o2MgY3VuZyBj4bqlcCBjaG8gaMOgbSBwcmVkaWN0LCB0aMOsIHjDoWMgc3XhuqV0IHPhur0gxJHGsOG7o2MgdMOtbmggY2hvIGLhu5kgZOG7ryBsaeG7h3UgdHJhaW5pbmcgbcOgIMSRxrDhu6NjIGTDuW5nIMSR4buDIGZpdCBtw7QgaMOsbmggbG9naXN0aWMgcmVncmVzc2lvbiDhu58gdHLDqm4NCg0KYGBge3J9DQojIFjDoWMgeHXhuqV0IHh1IGjGsOG7m25nIHRo4buLIHRyxrDhu51uZyBz4bq9IMSRaSBsw6puIChEaXJlY3Rpb24gPSBVcCkgY2hvIDEwIGTDsm5nIMSR4bqndSB0acOqbiBj4bunYSBk4buvIGxp4buHdQ0KZ2xtLnByb2JzWzE6MTBdDQpgYGANCg0KDQpgYGB7cn0NCiMgSMOgbSBjb250cmFzdCB0cuG6oyB24buBIG5o4buvbmcgbcOjIGhvw6EgbcOgIFIgc+G7rSBk4bulbmcgY2hvIG5o4buvbmcgYmnhur9uIGdp4bqjLCBiaeG6v24gZ2nhuqMg4bufIMSRw6J5IGzDoCBVcCA9MSBraGkgZGlyZWN0aW9uID0gVXAgdsOgIFVwID0gMCAga2hpIGRpcmVjdGlvbiA9IGRvd24NCmNvbnRyYXN0cyhEaXJlY3Rpb24pDQpgYGANCg0K