Bản đồ VN

library(raster)
## Loading required package: sp
vietnam <-getData("GADM", country="Vietnam", level=1)
library(ggplot2)
ggplot() + geom_polygon(data=vietnam,aes(x=long,y=lat,group=group,fill=id))
## Regions defined for each Polygons

Bản đồ Miền Đông

setwd("d:/DATA2020/SieuNhanMap_Q4/")
library(readxl)
dulieu <-read_excel("miendong.xlsx")
head(dulieu)
## # A tibble: 6 x 6
##   Ten                  lo    la    id  tile Tinh            
##   <chr>             <dbl> <dbl> <dbl> <dbl> <chr>           
## 1 H<U+1ED3> Chí Minh        107.  10.8    18  66.7 Ho Chi Minh     
## 2 Bình Duong         107.  11.2    63  14.5 Binh Duong      
## 3 Bình Phu<U+1EDB>c         107.  11.7     2   1.6 Binh Phuoc      
## 4 Ð<U+1ED3>ng Nai           107.  11.0     9   5.6 Dong Nai        
## 5 Bà R<U+1ECB>a - Vung Tàu  107.  10.5    61   9.8 Ba Ria - VungTau
## 6 Tây Ninh           106.  11.5    49   1.8 Tay Ninh
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:raster':
## 
##     intersect, select, union
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
datapanel <-read_excel("data.PANEL.xlsx")
head(datapanel)
## # A tibble: 6 x 31
##     NAM TINH    STT    SO   SME LnSME  YSCH LnYSCH LABOR    GDP LnGDP CAPITAL
##   <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>  <dbl> <dbl>  <dbl> <dbl>   <dbl>
## 1  1995 BINH~    70     1    87  4.47  4.73   1.55 26701 390882  12.9  432316
## 2  1996 BINH~    70     1    83  4.42  5.02   1.61 27359 468551  13.1  626583
## 3  1997 BINH~    70     1   153  5.03  5.21   1.65 27523 553700  13.2  864822
## 4  1998 BINH~    70     1   155  5.04  5.33   1.67 28353 537877  13.2 1265059
## 5  1999 BINH~    70     1   241  5.48  5.58   1.72 28430 660326  13.4 1844163
## 6  2000 BINH~    70     1   248  5.51  5.87   1.77 28021 909628  13.7 2016480
## # ... with 19 more variables: LnCAP <dbl>, C0 <dbl>, C1 <dbl>, C2 <dbl>,
## #   C3 <dbl>, C4 <dbl>, C5 <dbl>, SMEH <dbl>, LnSMEH <dbl>, LnEDUC <dbl>,
## #   LnSMER <dbl>, Schools <dbl>, LnSchool <dbl>, Age <dbl>, LnAge <dbl>,
## #   INT <dbl>, LEND <dbl>, PCI <dbl>, CSTP8 <dbl>
dtpanel <- datapanel %>% group_by(TINH)%>%summarize(trungbinh = mean(GDP))%>%mutate(tile =round(trungbinh/sum(trungbinh)*100,2))
## `summarise()` ungrouping output (override with `.groups` argument)
head(dtpanel)
## # A tibble: 6 x 3
##   TINH      trungbinh  tile
##   <chr>         <dbl> <dbl>
## 1 BINHDUONG 18782387. 14.5 
## 2 BINHPHUOC  2044828   1.58
## 3 BR-VT      7177621   5.54
## 4 DONGNAI   12673357.  9.78
## 5 TAYNINH    2503213.  1.93
## 6 TPHCM     86436295. 66.7
miendong <-vietnam[c(25,9,10,17,7,53),]
ggplot() + geom_polygon(data=miendong,aes(x=long,y=lat,group=group,fill=id),color = "white") + labs(x = NULL, y =  NULL) + theme(legend.position = "none")
## Regions defined for each Polygons

Kết nối dữ liệu

library(tidyverse)
## -- Attaching packages ---------------------------------------------------------------------------------------------------------- tidyverse 1.3.0 --
## v tibble  3.0.1     v purrr   0.3.4
## v tidyr   1.1.0     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.5.0
## -- Conflicts ------------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x tidyr::extract() masks raster::extract()
## x dplyr::filter()  masks stats::filter()
## x dplyr::lag()     masks stats::lag()
## x dplyr::select()  masks raster::select()
mdong<-fortify(miendong)
## Regions defined for each Polygons
# id hiển thị ở đây names(mdong) hay mdong$id

data_noi <- merge(mdong, dulieu, by="id", all.x = TRUE)
head(data_noi)
##   id     long      lat order  hole piece group                Ten       lo
## 1 18 106.9627 10.43849     1 FALSE     1  18.1 H<U+1ED3> Chí Minh 106.6571
## 2 18 106.9726 10.43316     2 FALSE     1  18.1 H<U+1ED3> Chí Minh 106.6571
## 3 18 106.9823 10.42475     3 FALSE     1  18.1 H<U+1ED3> Chí Minh 106.6571
## 4 18 106.9853 10.41820     4 FALSE     1  18.1 H<U+1ED3> Chí Minh 106.6571
## 5 18 106.9856 10.41320     5 FALSE     1  18.1 H<U+1ED3> Chí Minh 106.6571
## 6 18 106.9810 10.40523     6 FALSE     1  18.1 H<U+1ED3> Chí Minh 106.6571
##        la tile        Tinh
## 1 10.7639 66.7 Ho Chi Minh
## 2 10.7639 66.7 Ho Chi Minh
## 3 10.7639 66.7 Ho Chi Minh
## 4 10.7639 66.7 Ho Chi Minh
## 5 10.7639 66.7 Ho Chi Minh
## 6 10.7639 66.7 Ho Chi Minh

Vẽ đồ thị

library(ggthemes)
m1 <-ggplot(data=data_noi,aes(x = long, y = lat,group = group))+ geom_polygon(aes(fill = id), color = "white") + labs(x = NULL, y =  NULL) + theme(legend.position = "none") + scale_fill_manual(values=c("red", "darkgreen", "chocolate","purple","lightpink4", "darkorange4" ))

m2 <- m1 + geom_point(aes(x=lo, y=la), col="#8C3F4D")

m3 <- m2 + geom_text(aes(x=lo, y=la, label= Tinh), vjust=- 0.8, col="#00046e")

m4 <- m3 + geom_text(aes(x=lo, y=la, label=tile), vjust= 1.5,col="#00046e")

m5 <- m4 + geom_text(aes(x=lo, y=la), label="%", vjust =1.5, hjust= -1, col="#00046e") 

m6 <- m5 + guides(fill=FALSE, color=FALSE) + theme_wsj() + ggsave("miendong.png")
## Saving 7 x 5 in image
m6

Vẽ đồ thị hình cột

dtpanel <-dtpanel %>% mutate(tb = round(trungbinh/1000,0))
dtpanel <-dtpanel %>% arrange(tb)
dtpanel$TenTinh <-c("Binh Phuoc","Tay Ninh","Ba Ria - Vung Tau","Dong Nai","Binh Duong","Ho Chi Minh")
head(dtpanel)
## # A tibble: 6 x 5
##   TINH      trungbinh  tile    tb TenTinh          
##   <chr>         <dbl> <dbl> <dbl> <chr>            
## 1 BINHPHUOC  2044828   1.58  2045 Binh Phuoc       
## 2 TAYNINH    2503213.  1.93  2503 Tay Ninh         
## 3 BR-VT      7177621   5.54  7178 Ba Ria - Vung Tau
## 4 DONGNAI   12673357.  9.78 12673 Dong Nai         
## 5 BINHDUONG 18782387. 14.5  18782 Binh Duong       
## 6 TPHCM     86436295. 66.7  86436 Ho Chi Minh
library(hrbrthemes)
## NOTE: Either Arial Narrow or Roboto Condensed fonts are required to use these themes.
##       Please use hrbrthemes::import_roboto_condensed() to install Roboto Condensed and
##       if Arial Narrow is not on your system, please see https://bit.ly/arialnarrow
library(ggplot2)
my_colors<-c("#8C3F4D")
  dtpanel %>% ggplot(aes(x=reorder(TenTinh,tb),y=tb)) +
  geom_bar(stat = "identity", width = 0.8, color=my_colors, fill=my_colors) +
  geom_text(data=dtpanel%>%filter(tb <20000),aes(label = tb), hjust = -0.1, color = my_colors, size = 5.5) + 
  geom_text(data=dtpanel%>%filter(tb>20000), aes(label=tb), hjust=1.1, color="white", size=5.5)+
  coord_flip() +
  theme_wsj() + 
  theme(panel.grid = element_blank()) + 
  theme(axis.text.x = element_blank()) + 
  theme(axis.text.y = element_text(color = my_colors, size = 16)) + 
  theme(plot.title = element_text(size = 28)) + 
  theme(plot.subtitle = element_text( size = 16, color = "grey80")) + 
  theme(plot.caption = element_text( size = 13, face = "italic")) + 
  #scale_y_discrete(expand = c(0.2, 0)) + 
  #scale_x_discrete(expand = c(0,2)) +
  theme(plot.margin = unit(c(1.2, 1.2, 1.2, 1.2), "cm")) + 
  labs(x = NULL, y = NULL)  + ggsave("cotmiendong.png")
## Saving 7 x 5 in image

Ve duong line

# Ve duong line SME
ggplot()+ theme_wsj()+ theme(legend.position = "none") +
  geom_line(data=datapanel%>%dplyr::filter(SO==1),aes(x=NAM,y=LnSME),size=1.5,color="darkgreen") +
    geom_line(data=datapanel%>%dplyr::filter(SO==2),aes(x=NAM,y=LnSME),size=1.5,color="chocolate") +
    geom_line(data=datapanel%>%dplyr::filter(SO==3),aes(x=NAM,y=LnSME),size=1.5,color="lightpink4") +
    geom_line(data=datapanel%>%dplyr::filter(SO==4),aes(x=NAM,y=LnSME),size=1.5,color="darkorange4") +
    geom_line(data=datapanel%>%dplyr::filter(SO==5),aes(x=NAM,y=LnSME),size=1.5,color="purple") +
    geom_line(data=datapanel%>%dplyr::filter(SO==6),aes(x=NAM,y=LnSME),size=1.5,color="red")  +
geom_rect(aes(xmin=1995,xmax=2005,ymin=9.5,ymax=12.5),fill="gray",colour=NA,alpha=0.3) +
    geom_point(data=datapanel%>%dplyr::filter(SO==1), aes(x=1995.3, y=12.3, size=0.52),colour="darkgreen", fill="darkgreen") +
    geom_text(data=datapanel%>%dplyr::filter(SO==1), aes(x=1995.3, y=12.3, size=0.52),color="darkgreen", label="Binh Phuoc Province", hjust=-0.1)+
    geom_point(data=datapanel%>%dplyr::filter(SO==2), aes(x=1995.3, y=11.8, size=0.52),colour="chocolate") +
    geom_text(data=datapanel%>%dplyr::filter(SO==2), aes(x=1995.3, y=11.8, size=0.52),color="chocolate", label="Tay Ninh Province", hjust=-0.1)+
  geom_point(data=datapanel%>%dplyr::filter(SO==3), aes(x=1995.3, y=11.3, size=0.52),colour="lightpink4") +
    geom_text(data=datapanel%>%dplyr::filter(SO==3), aes(x=1995.3, y=11.3, size=0.52),color="lightpink4", label="Binh Duong Province", hjust=-0.1)+
  geom_point(data=datapanel%>%dplyr::filter(SO==4), aes(x=1995.3, y=10.8, size=0.52),colour="darkorange4") +
    geom_text(data=datapanel%>%dplyr::filter(SO==4), aes(x=1995.3, y=10.8, size=0.52),color="darkorange4", label="Dong Nai Province", hjust=-0.1)+
  geom_point(data=datapanel%>%dplyr::filter(SO==5), aes(x=1995.3, y=10.3, size=0.52),colour="purple") +
    geom_text(data=datapanel%>%dplyr::filter(SO==5), aes(x=1995.3, y=10.3, size=0.52),color="purple", label="Ba Ria - Vung Tau Province", hjust=-0.08)+
  geom_point(data=datapanel%>%dplyr::filter(SO==6), aes(x=1995.3, y=9.8, size=0.52),colour="red") +
    geom_text(data=datapanel%>%dplyr::filter(SO==6), aes(x=1995.3, y=9.8, size=0.52),color="red", label="Ho Chi Minh City", hjust=-0.1)  

# Ve duong line SMEH
ggplot()+ theme_wsj()+ theme(legend.position = "none") +
  geom_line(data=datapanel%>%dplyr::filter(SO==1),aes(x=NAM,y=SMEH),size=1.5,color="darkgreen") +
    geom_line(data=datapanel%>%dplyr::filter(SO==2),aes(x=NAM,y=SMEH),size=1.5,color="chocolate") +
    geom_line(data=datapanel%>%dplyr::filter(SO==3),aes(x=NAM,y=SMEH),size=1.5,color="lightpink4") +
    geom_line(data=datapanel%>%dplyr::filter(SO==4),aes(x=NAM,y=SMEH),size=1.5,color="darkorange4") +
    geom_line(data=datapanel%>%dplyr::filter(SO==5),aes(x=NAM,y=SMEH),size=1.5,color="purple") +
    geom_line(data=datapanel%>%dplyr::filter(SO==6),aes(x=NAM,y=SMEH),size=1.5,color="red") +
geom_rect(aes(xmin=1995,xmax=2005,ymin=1.45,ymax=1.65),fill="gray",colour=NA,alpha=0.3) +
    geom_point(data=datapanel%>%dplyr::filter(SO==1), aes(x=1995.3, y=1.63, size=0.52),colour="darkgreen", fill="darkgreen") +
    geom_text(data=datapanel%>%dplyr::filter(SO==1), aes(x=1995.3, y=1.63, size=0.52),color="darkgreen", label="Binh Phuoc Province",      hjust=-0.1)+
    geom_point(data=datapanel%>%dplyr::filter(SO==2), aes(x=1995.3, y=1.6, size=0.52),colour="chocolate") +
    geom_text(data=datapanel%>%dplyr::filter(SO==2), aes(x=1995.3, y=1.6, size=0.52),color="chocolate", label="Tay Ninh Province", hjust=-0.1)+
  geom_point(data=datapanel%>%dplyr::filter(SO==3), aes(x=1995.3, y=1.57, size=0.52),colour="lightpink4") +
    geom_text(data=datapanel%>%dplyr::filter(SO==3), aes(x=1995.3, y=1.57, size=0.52),color="lightpink4", label="Binh Duong Province", hjust=-0.1)+
  geom_point(data=datapanel%>%dplyr::filter(SO==4), aes(x=1995.3, y=1.54, size=0.52),colour="darkorange4") +
    geom_text(data=datapanel%>%dplyr::filter(SO==4), aes(x=1995.3, y=1.54, size=0.52),color="darkorange4", label="Dong Nai Province", hjust=-0.1)+
  geom_point(data=datapanel%>%dplyr::filter(SO==5), aes(x=1995.3, y=1.51, size=0.52),colour="purple") +
    geom_text(data=datapanel%>%dplyr::filter(SO==5), aes(x=1995.3, y=1.51, size=0.52),color="purple", label="Ba Ria - Vung Tau Province", hjust=-0.08)+
  geom_point(data=datapanel%>%dplyr::filter(SO==6), aes(x=1995.3, y=1.48, size=0.52),colour="red") +
    geom_text(data=datapanel%>%dplyr::filter(SO==6), aes(x=1995.3, y=1.48, size=0.52),color="red", label="Ho Chi Minh City", hjust=-0.1)

# Ve duong line LnSMER
ggplot()+ theme_wsj()+  theme(legend.position = "none") +
  geom_line(data=datapanel%>%dplyr::filter(SO==1),aes(x=NAM,y=LnSMER),size=1.5,color="darkgreen") +
    geom_line(data=datapanel%>%dplyr::filter(SO==2),aes(x=NAM,y=LnSMER),size=1.5,color="chocolate") +
    geom_line(data=datapanel%>%dplyr::filter(SO==3),aes(x=NAM,y=LnSMER),size=1.5,color="lightpink4") +
    geom_line(data=datapanel%>%dplyr::filter(SO==4),aes(x=NAM,y=LnSMER),size=1.5,color="darkorange4") +
    geom_line(data=datapanel%>%dplyr::filter(SO==5),aes(x=NAM,y=LnSMER),size=1.5,color="purple") +
    geom_line(data=datapanel%>%dplyr::filter(SO==6),aes(x=NAM,y=LnSMER),size=1.5,color="red") +
  geom_rect(aes(xmin=1995,xmax=2005,ymin=13,ymax=15),fill="gray",colour=NA,alpha=0.3) +
  
    geom_point(data=datapanel%>%dplyr::filter(SO==1), aes(x=1995.3, y=14.8, size=0.52),colour="darkgreen", fill="darkgreen") +
    geom_text(data=datapanel%>%dplyr::filter(SO==1), aes(x=1995.3, y=14.8, size=0.52),color="darkgreen", label="Binh Phuoc Province", hjust=-0.1)+
    geom_point(data=datapanel%>%dplyr::filter(SO==2), aes(x=1995.3, y=14.5, size=0.52),colour="chocolate") +
    geom_text(data=datapanel%>%dplyr::filter(SO==2), aes(x=1995.3, y=14.5, size=0.52),color="chocolate", label="Tay Ninh Province", hjust=-0.1)+
  geom_point(data=datapanel%>%dplyr::filter(SO==3), aes(x=1995.3, y=14.2, size=0.52),colour="lightpink4") +
    geom_text(data=datapanel%>%dplyr::filter(SO==3), aes(x=1995.3, y=14.2, size=0.52),color="lightpink4", label="Binh Duong Province", hjust=-0.1)+
  geom_point(data=datapanel%>%dplyr::filter(SO==4), aes(x=1995.3, y=13.9, size=0.52),colour="darkorange4") +
    geom_text(data=datapanel%>%dplyr::filter(SO==4), aes(x=1995.3, y=13.9, size=0.52),color="darkorange4", label="Dong Nai Province", hjust=-0.1)+
  geom_point(data=datapanel%>%dplyr::filter(SO==5), aes(x=1995.3, y=13.6, size=0.52),colour="purple") +
    geom_text(data=datapanel%>%dplyr::filter(SO==5), aes(x=1995.3, y=13.6, size=0.52),color="purple", label="Ba Ria - Vung Tau Province", hjust=-0.08)+
  geom_point(data=datapanel%>%dplyr::filter(SO==6), aes(x=1995.3, y=13.3, size=0.52),colour="red") +
    geom_text(data=datapanel%>%dplyr::filter(SO==6), aes(x=1995.3, y=13.3, size=0.52),color="red", label="Ho Chi Minh City", hjust=-0.1)

#Hồi quy tổng

library(lmridge)
library(dplyr)
so <-seq(0,0.1,by=.001)
congthuc <-LnGDP~ LnSME + LnYSCH + LnCAP+  SMEH + LnSMER+  LnSchool+  PCI+ CSTP8
hoiquy <-lm(data=datapanel, congthuc)
summary(hoiquy)
## 
## Call:
## lm(formula = congthuc, data = datapanel)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.57846 -0.14854  0.01808  0.13696  0.89617 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  0.920650   2.036892   0.452  0.65249    
## LnSME       -0.047066   0.122678  -0.384  0.70224    
## LnYSCH       0.884249   1.315515   0.672  0.50339    
## LnCAP        0.422983   0.125722   3.364  0.00117 ** 
## SMEH         0.004239   1.026077   0.004  0.99671    
## LnSMER       0.577616   0.114753   5.034 2.85e-06 ***
## LnSchool    -0.183947   0.189655  -0.970  0.33498    
## PCI         -0.001189   0.007082  -0.168  0.86707    
## CSTP8        0.027043   0.033202   0.815  0.41774    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3054 on 81 degrees of freedom
##   (60 observations deleted due to missingness)
## Multiple R-squared:  0.9582, Adjusted R-squared:  0.9541 
## F-statistic: 232.3 on 8 and 81 DF,  p-value: < 2.2e-16
#ridge <-lmridge(congthuc, data=datapanel, K=so)
#vif(ridge)
summary(lmridge(congthuc, data=datapanel, K=0.2))
## 
## Call:
## lmridge.default(formula = congthuc, data = datapanel, K = 0.2)
## 
## 
## Coefficients: for Ridge parameter K= 0.2 
##            Estimate Estimate (Sc) StdErr (Sc) t-value (Sc) Pr(>|t|)    
## Intercept    2.4450     -178.9030     18.4511      -9.6961   <2e-16 ***
## LnSME        0.2442        3.4552      0.2153      16.0495   <2e-16 ***
## LnYSCH       0.9090        0.5782      0.2827       2.0451   0.0440 *  
## LnCAP        0.2439        3.9295      0.1906      20.6158   <2e-16 ***
## SMEH         0.1318        0.1196      0.2736       0.4371   0.6631    
## LnSMER       0.3802        4.5461      0.2381      19.0911   <2e-16 ***
## LnSchool    -0.0636       -0.1760      0.2923      -0.6022   0.5486    
## PCI          0.0102        0.5524      0.2874       1.9218   0.0580 .  
## CSTP8        0.0335        0.3903      0.2913       1.3400   0.1838    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Ridge Summary
##         R2     adj-R2   DF ridge          F        AIC        BIC 
##    0.84180    0.82830    4.59731  201.91968 -197.52923  218.94604 
## Ridge minimum MSE= 31.93342 at K= 0.2 
## P-value for F-test ( 4.59731 , 84.38263 ) = 3.004414e-44 
## -------------------------------------------------------------------

Tỉnh Bình Phước

#ridge1 <-lmridge(congthuc, data=datapanel%>%dplyr::filter(datapanel$SO==1) , K=so)
#vif(ridge1)
summary(lmridge(congthuc, data=datapanel%>%dplyr::filter(datapanel$SO==1) , K=0.1))
## 
## Call:
## lmridge.default(formula = congthuc, data = datapanel %>% dplyr::filter(datapanel$SO == 
##     1), K = 0.1)
## 
## 
## Coefficients: for Ridge parameter K= 0.1 
##           Estimate Estimate (Sc) StdErr (Sc) t-value (Sc) Pr(>|t|)    
## Intercept   0.6437       -8.3327      8.9817      -0.9277   0.3762    
## LnSME       0.1777        0.4147      0.0988       4.1969   0.0020 ** 
## LnYSCH      3.9195        1.0099      0.1566       6.4506   0.0001 ***
## LnCAP       0.1400        0.5973      0.0984       6.0719   0.0001 ***
## SMEH        0.6234        0.2232      0.1938       1.1516   0.2773    
## LnSMER      0.1493        0.2478      0.1880       1.3185   0.2178    
## LnSchool   -0.0929       -0.1050      0.1573      -0.6676   0.5201    
## PCI         0.0034        0.0930      0.1465       0.6350   0.5402    
## CSTP8       0.0005        0.0021      0.1585       0.0130   0.9899    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Ridge Summary
##        R2    adj-R2  DF ridge         F       AIC       BIC 
##   0.92160   0.84310   4.36663  41.06235 -55.90824 -12.19569 
## Ridge minimum MSE= 25.29538 at K= 0.1 
## P-value for F-test ( 4.36663 , 9.725674 ) = 3.888101e-06 
## -------------------------------------------------------------------
summary(lmridge(congthuc, data=datapanel%>%dplyr::filter(datapanel$SO==2) , K=0.1))
## 
## Call:
## lmridge.default(formula = congthuc, data = datapanel %>% dplyr::filter(datapanel$SO == 
##     2), K = 0.1)
## 
## 
## Coefficients: for Ridge parameter K= 0.1 
##           Estimate Estimate (Sc) StdErr (Sc) t-value (Sc) Pr(>|t|)    
## Intercept  -5.0092       -9.0941      7.0539      -1.2892   0.2281    
## LnSME      -0.0658       -0.1160      0.1432      -0.8101   0.4379    
## LnYSCH      1.6999        0.4649      0.1083       4.2925   0.0018 ** 
## LnCAP       0.1147        0.3194      0.0499       6.4037   0.0001 ***
## SMEH        0.6189        0.2335      0.0899       2.5967   0.0279 *  
## LnSMER      1.2623        0.6334      0.1208       5.2425   0.0005 ***
## LnSchool   -0.0570       -0.0644      0.1145      -0.5628   0.5868    
## PCI         0.0092        0.2052      0.1160       1.7690   0.1092    
## CSTP8      -0.0141       -0.0660      0.1011      -0.6523   0.5298    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Ridge Summary
##        R2    adj-R2  DF ridge         F       AIC       BIC 
##   0.90150   0.80290   4.58868  32.08111 -66.30032 -22.43055 
## Ridge minimum MSE= 21.02934 at K= 0.1 
## P-value for F-test ( 4.58868 , 9.497572 ) = 1.321324e-05 
## -------------------------------------------------------------------
summary(lmridge(congthuc, data=datapanel%>%dplyr::filter(datapanel$SO==3) , K=0.1))
## 
## Call:
## lmridge.default(formula = congthuc, data = datapanel %>% dplyr::filter(datapanel$SO == 
##     3), K = 0.1)
## 
## 
## Coefficients: for Ridge parameter K= 0.1 
##           Estimate Estimate (Sc) StdErr (Sc) t-value (Sc) Pr(>|t|)   
## Intercept  13.2939      111.6566     30.3634       3.6773   0.0044 **
## LnSME       0.1291        0.3019      0.3851       0.7840   0.4517   
## LnYSCH     -1.0878       -0.2776      0.3917      -0.7088   0.4951   
## LnCAP      -0.0242       -0.0568      0.2404      -0.2365   0.8180   
## SMEH        1.7810        0.6384      0.3613       1.7669   0.1085   
## LnSMER      0.7026        0.3870      0.3958       0.9776   0.3519   
## LnSchool   -0.4875       -0.5512      0.3840      -1.4357   0.1824   
## PCI        -0.0657       -1.5383      0.4397      -3.4987   0.0060 **
## CSTP8       0.1003        0.5622      0.3962       1.4189   0.1871   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Ridge Summary
##        R2    adj-R2  DF ridge         F       AIC       BIC 
##   0.69530   0.39070   4.24710   5.83354 -29.96980  13.65811 
## Ridge minimum MSE= 32.11381 at K= 0.1 
## P-value for F-test ( 4.2471 , 9.783155 ) = 0.01081276 
## -------------------------------------------------------------------
summary(lmridge(congthuc, data=datapanel%>%dplyr::filter(datapanel$SO==4) , K=0.1))
## 
## Call:
## lmridge.default(formula = congthuc, data = datapanel %>% dplyr::filter(datapanel$SO == 
##     4), K = 0.1)
## 
## 
## Coefficients: for Ridge parameter K= 0.1 
##           Estimate Estimate (Sc) StdErr (Sc) t-value (Sc) Pr(>|t|)   
## Intercept  -0.3898       -1.4645      6.9218      -0.2116   0.8369   
## LnSME       0.1300        0.2721      0.0788       3.4511   0.0067 **
## LnYSCH      1.5330        0.4000      0.1041       3.8437   0.0036 **
## LnCAP       0.0992        0.2255      0.0752       2.9994   0.0141 * 
## SMEH        1.0397        0.3884      0.1267       3.0659   0.0126 * 
## LnSMER      0.6631        0.3184      0.1324       2.4055   0.0381 * 
## LnSchool    0.0954        0.1079      0.1194       0.9041   0.3882   
## PCI         0.0078        0.0894      0.1050       0.8512   0.4156   
## CSTP8      -0.0029       -0.0112      0.1039      -0.1081   0.9162   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Ridge Summary
##        R2    adj-R2  DF ridge         F       AIC       BIC 
##   0.91060   0.82130   4.47837  27.09396 -65.45786 -21.66620 
## Ridge minimum MSE= 5.993427 at K= 0.1 
## P-value for F-test ( 4.47837 , 9.671695 ) = 2.518875e-05 
## -------------------------------------------------------------------
summary(lmridge(congthuc, data=datapanel%>%dplyr::filter(datapanel$SO==5) , K=0.1))
## 
## Call:
## lmridge.default(formula = congthuc, data = datapanel %>% dplyr::filter(datapanel$SO == 
##     5), K = 0.1)
## 
## 
## Coefficients: for Ridge parameter K= 0.1 
##           Estimate Estimate (Sc) StdErr (Sc) t-value (Sc) Pr(>|t|)   
## Intercept  -2.6132      -76.8412     19.2318      -3.9955   0.0029 **
## LnSME      -0.1194       -0.3202      0.2512      -1.2748   0.2332   
## LnYSCH      0.9604        0.2400      0.3436       0.6986   0.5018   
## LnCAP       0.3485        1.1012      0.2745       4.0121   0.0028 **
## SMEH       -0.1693       -0.0636      0.3428      -0.1856   0.8567   
## LnSMER      0.5498        0.6721      0.3390       1.9823   0.0776 . 
## LnSchool   -0.1669       -0.1887      0.3208      -0.5882   0.5703   
## PCI         0.0791        1.0423      0.2922       3.5672   0.0057 **
## CSTP8       0.2090        0.7838      0.2838       2.7619   0.0213 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Ridge Summary
##         R2     adj-R2   DF ridge          F        AIC        BIC 
##   0.810900   0.621800   4.665390  11.298152 -35.432789   8.491295 
## Ridge minimum MSE= 16.51895 at K= 0.1 
## P-value for F-test ( 4.66539 , 9.396127 ) = 0.001040666 
## -------------------------------------------------------------------
summary(lmridge(congthuc, data=datapanel%>%dplyr::filter(datapanel$SO==6) , K=0.1))
## 
## Call:
## lmridge.default(formula = congthuc, data = datapanel %>% dplyr::filter(datapanel$SO == 
##     6), K = 0.1)
## 
## 
## Coefficients: for Ridge parameter K= 0.1 
##           Estimate Estimate (Sc) StdErr (Sc) t-value (Sc) Pr(>|t|)  
## Intercept   6.2324       -8.5954      9.2908      -0.9252   0.3778  
## LnSME       0.0847        0.1973      0.0955       2.0646   0.0674 .
## LnYSCH      1.3226        0.3281      0.1399       2.3452   0.0422 *
## LnCAP       0.1238        0.4522      0.1469       3.0780   0.0124 *
## SMEH        0.5394        0.2014      0.1597       1.2612   0.2373  
## LnSMER      0.2585        0.1684      0.1355       1.2428   0.2438  
## LnSchool   -0.0195       -0.0220      0.1342      -0.1641   0.8731  
## PCI         0.0206        0.1737      0.1338       1.2985   0.2248  
## CSTP8       0.0429        0.1576      0.1185       1.3294   0.2148  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Ridge Summary
##        R2    adj-R2  DF ridge         F       AIC       BIC 
##   0.89500   0.78990   4.50461  17.71586 -60.26232 -16.45208 
## Ridge minimum MSE= 1.462445 at K= 0.1 
## P-value for F-test ( 4.50461 , 9.56448 ) = 0.0001656931 
## -------------------------------------------------------------------