Hipótese 11: O número de patentes indústrias da região está positivamente relacionado com o número de EBTs.
27 Spatial spillovers and European Union regional innovation activities
Central European Journal of Operations Research (FURKOVÁ, 2019) Europa 2008-2012
Este artigo explora o papel dos spillovers espaciais nos processos de inovação regiões da União Européia (UE). Modelou-se o comportamento da atividade inovadora no nível regional com base em um modelo de produção regional ampliado de conhecimento. A produção de conhecimento parece ser afetada por repercussões espaciais devido a atividades inovadoras realizadas em outras áreas. As estatísticas globais de auto correlação espacial confirmaram a suposição de que o processo de inovação regional (representado por pedidos de patente) não é um processo espacialmente isolado, mas também é influenciado por atividades inovadoras nas regiões vizinhas.
O modelo econométrico espacial (duas versões) foi aplicado como a ferramenta de validação de hipóteses e indicou a relevância dos insumos internos de inovação (gastos em P&D e recursos humanos em ciência e tecnologia). Os modelos serão usados para quantificar e testar a significância estatística dos impactos diretos, indiretos e totais dos insumos inovadores selecionados.
28
Location determinants of green technological entry: evidence from European regions
Small Business
Economics (CORRADINI, 2019) Europa
1992- 2000
Achados mostram que a distribuição geográfica da entrada tecnológica verde nas regiões europeias não é distribuída uniformemente, oferecendo evidências de dependência do caminho espacial. De acordo com isso, encontrou-se evidências de um papel significativo desempenhado pelas características do sistema regional de inovação. Os novos inovadores ecológicos são mais propensos a desenvolver regiões definidas por níveis mais altos de atividade tecnológica subjacentes a transbordamentos de conhecimento e mais dinamismo na entrada tecnológica. Além disso, as descobertas apontam para uma relação U invertida entre relacionamento tecnológico regional e entrada tecnológica verde.
Usando um conjunto de dados de painel , conclusões apoiam fortemente a contribuição significativa do próprio conhecimento tecnológico e capital humano do estado na produção de novas invenções no nível estadual
Apêndice 2 – Scripts do R
Exemplo de Script usado na captura dos dados do MCTIC
#===============Script para coletar dados do MCTIC, gravar arquivos e gerar DF=============== options(stringsAsFactors = FALSE)
#INSTALANDO PACKAGES
install.packages("beepr") install.packages("rvest") install.packages("dplyr") install.packages("tm") install.packages("ROAuth") install.packages("httr") install.packages("wordcloud") install.packages("tm") inslall.packages("ggplot2") install.packages("SnowballC") install.packages("readxl")
install.packages("plyr") install.packages("ggplot2", dependencies = TRUE, repos = "http://cran.rstudio.com/") library(stringr) library(beepr) library(tm) library(rvest) library(dplyr) library(stringr) library(ROAuth) library(httr) library(wordcloud) library(tm) library(ggplot2) library(SnowballC) library(readxl) library(plyr) library(RCurl) library(read_html)
#definindo diretorio
setwd ("C:/Users/lecap/Documents/LETICIA/ARQUIVOS LETICIA backup/2 ACADEMICO/DOUTORADO/Tese/Arquivos") ########################################################################### ###
#ROTINA PARA RASPAR DADOS DO MCTIIC
url_base <- "http://www.mctic.gov.br/mctic/opencms/indicadores/indicadores_cti.html" pagina_base <- read_html(url_base)
links_categorias <- pagina_base %>%
html_nodes(xpath = "//div[@class = 'boxCategoria changeSize']/a") %>% html_attr(name = "href") %>% paste0("http://www.mctic.gov.br", .) t_links_tabelas <-data.frame() tt_links_tabelas <- data.frame() for(i in 1:length(links_categorias)){ print(paste("==================== Categoria",i)) link = links_categorias[i] pagina_categoria <- read_html(link) links_tabelas <- pagina_categoria %>%
html_nodes(xpath = "//td[@class = 'nomeArquivo pull-left']/a") %>% html_attr(name = "href") %>%
paste0("http://www.mctic.gov.br", .)
t_links_tabelas <- data.frame(links_tabelas)
tt_links_tabelas <- rbind(tt_links_tabelas, t_links_tabelas) for(link_tabela in links_tabelas){ pagina_tabela <- read_html(link_tabela) links_pag_tabela <- pagina_tabela %>% html_nodes(xpath = "//a") %>% html_attr(name = "href")
link_xls <- links_pag_tabela[grep(x = links_pag_tabela, pattern = "xls")] link_xls <- paste0("http://www.mctic.gov.br", link_xls)
nome_arquivo <- basename(link_xls) print(nome_arquivo)
#download.file(url = link_xls, destfile = nome_arquivo, mode = "wb") }
Scripts do Modelo I
#--- # installing/loading the package:
if(!require(installr)) {
install.packages("installr"); require(installr)} #load / install+load installr # using the package:
updateR() # this will start the updating process of your R installation. #It will check for newer versions, and if one is available,
#will guide you through the decisions you'd need to make.
#--- Pacotes --- if(!require(ggplot2)) {install.packages("ggplot2"); library(ggplot2)}
if(!require(gridExtra)) {install.packages("gridExtra"); library(gridExtra)} if(!require(lavaan)) {install.packages("lavaan"); library(lavaan)} if(!require(car)) {install.packages("car"); library(car)} if(!require(hnp)) {install.packages("hnp"); library(hnp)}
#--- Leitura do banco --- setwd("C:/Users/lecap/Documents/LETICIA/ARQUIVOS LETICIA backup/2 ACADEMICO/DOUTORADO/Tese") dados <- data.frame()
dadosMeso<-read.csv('EBTs MesoRegiao _10_11.csv',dec=',',encoding = 'UTF-8') #incluindo deflator e ou IPCA
deflator <- read.csv("Deflator.csv", header = TRUE, sep = ";", dec = ",") str(deflator)
df_dadosmeso <- data.frame(dadosMeso) deflator_ <- deflator[,-2]
deflator_ <- deflator_[,-4]
dadosMeso_IPCA <- merge(df_dadosmeso, deflator_, by="Ano", all = T) dadosMeso_IPCA1 <- cbind(dadosMeso_IPCA, dadosMeso_IPCA$PIB*(1-dadosMeso_IPCA$Deflator.do.pib/100), dadosMeso_IPCA$PIB*(1-dadosMeso_IPCA$IPCA/100)) dadosMeso_IPCA1 <- cbind(dadosMeso_IPCA, dadosMeso_IPCA$PIB*(1-dadosMeso_IPCA$IPCA/100)) names(dadosMeso_IPCA1)[14] = "PIBR" names(dadosMeso_IPCA1)[15] = "PIBIP" # Incluindo PIB real no dadosMeso dadosMeso$PIBR<-dadosMeso_IPCA1$PIBR dadosMeso <- dadosMeso_IPCA1 #renomeando dadosMeso <- dados names(dadosMeso)=names(dados) names(dadosMeso)[12] = "Deflator" names(dadosMeso)[13] = "IPCA" names(dadosMeso)[14] = "PIBR" names(dadosMeso)[15] = "PIBIP"
#Log EBT por Meso
ggplot(dadosMeso,aes(x=Meso,y=log(EBT)))+geom_boxplot()+theme_bw() #Log EBT por Ano
ggplot(dadosMeso,aes(x=Ano,y=log(EBT)))+geom_line()+theme_bw()+facet_grid(cols=vars(Meso)) # Patente ggplot(dadosMeso,aes(x=Pat,y=log(EBT)))+geom_point()+facet_grid(cols=vars(Meso))+ theme_bw() # Publicaçoes ggplot(dadosMeso,aes(x=Pub,y=log(EBT)))+geom_point()+facet_grid(cols=vars(Meso))+ theme_bw() # Pesquisadores ggplot(dadosMeso,aes(x=Pesq,y=log(EBT)))+geom_point()+facet_grid(cols=vars(Meso))+ theme_bw() # Discentes ggplot(dadosMeso,aes(x=Disc,y=log(EBT)))+geom_point()+facet_grid(cols=vars(Meso))+ theme_bw() # Bolsas ggplot(dadosMeso,aes(x=Bolsa,y=log(EBT)))+geom_point()+theme_bw() #PiB dadosMeso$PIBPer<-dadosMeso$PIB/dadosMeso$Pop ggplot(dadosMeso,aes(x=PIBPer,y=log(EBT)))+geom_point()+ theme_bw() #adicionando o PIB real
dadosMeso$PIBR_Per<-dadosMeso$PIBR/dadosMeso$Pop
ggplot(dadosMeso,aes(x=PIBR_Per,y=log(EBT)))+geom_point()+ theme_bw() dadosMeso$PIBR_IP<-dadosMeso$PIBIP/dadosMeso$Pop
ggplot(dadosMeso,aes(x=PIBIR_IP,y=log(EBT)))+geom_point()+ theme_bw() # Bolsas por pesquisadores
ggplot(dadosMeso,aes(x=Bolsa/Pesq,y=log(EBT)))+geom_point()+ theme_bw() # pesquisador por Discente
ggplot(dadosMeso,aes(x=Pesq/Disc,y=log(EBT)))+geom_point()+ theme_bw() # Patentes por publicações
ggplot(dadosMeso,aes(x=Pat/Pub,y=log(EBT)))+geom_point()+ theme_bw()
#--- Modelagem Poisson --- #Variável tempo
dadosMeso$Tempo<-dadosMeso$Ano-2000
# Modelo com todas as covariáveis
mod0<-glm(EBT~Meso+Pat+Pesq+Disc+Bolsa+Pub+PIBPer,dadosMeso,family = poisson) summary(mod0)
vif(mod0) #verifica a multicolineraridade
crPlots(mod0) # verifica a necessidade de alguma transformação nas covariáveis #com o PIB Real
modA<-glm(EBT~Meso+Pat+Pesq+Disc+Bolsa+Pub+PIBR_Per,dadosMeso,family = poisson) summary(modA)
vif(modA) #verifica a multicolineraridade
crPlots(modA) # verifica a necessidade de alguma transformação nas covariáveis #Melhor ajuste
mod1<-glm(EBT~Meso+I((Pat/Pub*100))+I((Bolsa/Pesq*10))+ I((Pesq/Disc*10)) +I(Tempo), dadosMeso,family = poisson)
summary(mod1) # tempo sem o PIB (deflacionado ou nao) é significativo vif(mod1)
crPlots(mod1) avPlots(mod1) hnp(mod1) mod1$deviance
phiest<-sum((fit$y-fit$fitted)^2/(fit$fitted))/fit$df.res
psfit <- glm(EBT~Meso+I((Pat/Pub*100))+I((Bolsa/Pesq*10))+I((Pesq/Disc*10)) +I(Tempo),
dadosMeso,weights = rep(1/phiest,length(fit$y)),family=poisson) #psfit é o modelo Poisson com ajuste de sobredispersão
#rsq.v(psfit) summary(psfit) library(rsq)
rsq.v(psfit,adj=TRUE) # Use o psudo-R2 ajustado hnp(psfit)
vif(psfit) psfit$deviance
############ Testando a autocorrelação temporal tct<-function(mod){ res=residuals(mod) par(mfrow=c(1,3)) ts.plot(res) acf(res) pacf(res) a<-list(shapiro.test(res),Box.test(res,lag=1),
Box.test(res,lag=1), Box.test(res,lag=2), Box.test(res,lag=3), Box.test(res,lag=4), Box.test(res,lag=5), Box.test(res,lag=8), Box.test(res,lag=13), Box.test(res,lag=16), Box.test(res,lag=18)) print(a)
par(mfrow=c(1,1)) }
tct(psfit) # resíduos não correlacionados com o tempo ### Teste de correlação espacial
library(readr) library(spdep) matriz<-matrix(0,nrow = 88,ncol=88) dadosMeso$MesoNum<-dadosMeso$Meso levels(dadosMeso$MesoNum)<-1:6 matriz<-matrix(0,nrow = 88,ncol=88) for(i in 1:88){ for(j in 1:88){ matriz[i,j]=paste(dadosMeso$MesoNum[i],dadosMeso$MesoNum[j],sep='') if(any(matriz[i,j]==c('11','22','33','44','55','66','12','14','16','21','26', '31','33','41','45','46','54','61','62','64','66'))){ matriz[i,j]=1 } else{matriz[i,j]=0} } } dadosMeso$Res<-mod1.1$residuals dadosMeso$Res<-mod1$residuals mod1 list<-mat2listw(matriz) moran.test(dadosMeso$Res, list,
Scripts do Modelo II
### =============================== ### Instalando e Carregando pacotes ### =============================== if(!require(dplyr)){install.packages("dplyr"); require(dplyr)}
if(!require(chemometrics)){ install.packages("chemometrics"); require(chemometrics) } if(!require(Hmisc)){ install.packages("Hmisc"); require(Hmisc) }
if(!require(plspm)){ install.packages("plspm"); require(plspm) } if(!require(psych)){ install.packages("psych"); require(psych) } if(!require(psy)){ install.packages("psy"); require(psy) }
if(!require(nFactors)){ install.packages("nFactors"); require(nFactors) } if(!require(corrplot)){ install.packages("corrplot"); require(corrplot) } if(!require(fmsb)){ install.packages("fmsb"); require(fmsb) } if(!require(lavaan)){ install.packages("lavaan"); require(lavaan) } ### ======= ### Funções ### ======= inv <- function(x){ y <- (max(x) + min(x)) - x y }
cont.na <- function(data, perc_na, inicio_aux, fim_aux){
data$ContNA <- apply(data[,c(inicio_aux:fim_aux)], 1, function(x) sum(is.na(x))) data$PercNA <- round((data$ContNA/length(inicio_aux:fim_aux))*100) data$Delete <- ifelse(data$PercNA > perc_na, 1, 0)
return(data) }
mean2 <- function(x) mean(x, na.rm=TRUE) fa1 <- function(x){
Mat<- cbind(principal(x,1, rotate="varimax")$loadings ,principal(x,1, rotate="varimax")$communality ,principal(x,1, rotate="varimax")$weights) Mat1<- Mat colnames(Mat1)<- c("C.F.","Com.","Peso") Mat1 } ### ===================== ### Leitura base de dados ### =====================
dados1 <- read.csv2("dt_ebt_final_S.csv",dec=",",sep=";") dados <- scale(dados1)
### Organizando data frame ### ====================== cordt<-cor(dados) dados_L <- dados names(dados_L)[2] <- "EBT" names(dados_L)[3] <- "DEFL" names(dados_L)[4] <- "xU5" #Bolsa names(dados_L)[5] <- "xU2" #Disc names(dados_L)[6] <- "xU1" #Pesq names(dados_L)[7] <- "xU3" #Pub names(dados_L)[8] <- "xU4" #Pat_U names(dados_L)[9] <- "xG2" #$ACTC MINAS names(dados_L)[10] <- "xG1" # $P&D MINAS
names(dados_L)[11] <- "CT_GMG" #$Ciencia e Tecnologia MINAS names(dados_L)[12] <- "Capes_G" #$bolsa Capes
names(dados_L)[13] <- "xG3" #$Gov. Federal para Minas names(dados_L)[14] <- "Fat_E" #Faturamento industria da Fiemg names(dados_L)[15] <- "xE5" # P&D industria com % do PIB names(dados_L)[16] <- "xE4" # Patentes industrias
names(dados_L)[17] <- "VA_E" #Valor adicionado bruto de Minas Gerais names(dados_L)[18] <- "xE1" #Valor adicionado bruto (Agro) de MG names(dados_L)[19] <- "xE2" #Valor adicionado bruto (ind) de MG names(dados_L)[20] <- "xE3" #Valor adicionado bruto (Serviços) de MG attach(dados_L)
### ===================== ### Contructo tese
### ===================== uni <- cbind(xU1, xU2, xU3, xU4, xU5) gov <- cbind(xG1, xG2, xG3) emp <- cbind(xE1, xE2, xE3, xE4, xE5) ebt <- EBT dt <- cbind(uni,gov,emp,ebt) ### ====================== ### Modelo Tese ### ====================== model_tese <-"
uni =~ xU1 + xU2 + xU3 + xU4 + xU5 gov =~ xG1 + xG2 + xG3
emp =~ xE1 + xE2 + xE3 + xE4 + xE5 ebt ~ uni + gov + emp"
### ====================== ####RESULTADOS
### ======================
fit_final <- sem(model_tese, data=dt, estimator="MLM")
Est_final <- parameterEstimates(fit_final, ci = FALSE, standardized = TRUE,rsq=TRUE) # Carga fatoria (coluna std.all), peso (coluna est)
Est_Aux_final <- Est_finalT %>% filter(op == "=~") Est_Aux_final %>% arrange(std.all)
# Coeficientes do modelo - FINAL
summary(fit_final, standardized=TRUE, rsq=T, fit.measures = TRUE) modindices(fit_finalT, minimum.value = 10, sort = TRUE)# o que significa isto fitMeasures(fit_finalT, c("chisq", "df", "cfi.scaled", "tli.scaled", "gfi", "rmsea.scaled", "rmsea.ci.lower.scaled", "rmsea.ci.upper.scaled"))
# Residuals: resid(fit_finalT) library(psych) library(dplyr)
# calculate cronbach's alpha... alpha(universidade) alpha(governo) alpha(empresa) # confiabilidade composta sl <- standardizedSolution(fit_finalT) sl <- sl$est.std[sl$op == "=~"] names(sl) <- names(dtF) re_U <- 1 - sl[1:5]^2
CC_U <- sum(sl[1:5])^2 / (sum(sl[1:5])^2 + sum(re_U)) re_G <- 1 - sl[6:8]^2
CC_G <- sum(sl[6:8])^2 / (sum(sl[6:8])^2 + sum(re_G)) re_E <- 1 - sl[9:13]^2
CC_E <- sum(sl[9:13])^2 / (sum(sl[9:13])^2 + sum(re_E)) #Desenhando o caminho do modelo
install.packages("lavaan.shiny") install.packages("slfm") library(lavaan.shiny) library(semPlot) library(slfm)
semPaths(fit_finalT, "std", title = TRUE) #melhor desing
semPaths(fit_finalT, "est", edge.label.cex = 0.9, node.label.cex=5, color = list(lat = rgb(245, 253, 118, maxColorValue = 255), man = rgb(155, 253, 175, maxColorValue = 255)), mar = c(3, 1, 3, 1), fade=FALSE)