# Steps 
# Took Indicators
# Subset data with indicators , Calender date and price
# Calucalte return price
# Remove Outliers
# Remove multi collinearity
# Remove NA'S
# Normalize indicator data
# Split data into 75% train and 25 test 
# Create Linear model for train data
# Find Coefficients with higher P value
# Build model for train data.
# Predict return price for test data 
# Forecast results. 
# How do we forecast ? what package ,  should date be unbroken 
#REVENUEUSD         Revenues (USD)
#GP                 Gross Profit
#OPEX           Operating Expenses
#EBITUSD            Earning Before Interest & Taxes (USD)
#NETINC           Net Income
#EPSUSD           Earnings per Basic Share (USD)
#NCFO           Net Cash Flow from Operations
#NCFI                 Net Cash Flow from Investing
#NCFF                 Net Cash Flow from Financing
#NCF                  Net Cash Flow / Change in Cash & Cash Equivalents
#ASSETS               Total Assets
#CASHNEQUSD         Cash and Equivalents (USD)
#LIABILITIES        Total Liabilities
#INVESTMENTS        Investments
#EQUITYUSD          hareholders Equity (USD
#DE                     Debt to Equity Ratio        
#EBITDA             Earnings Before Interest, Taxes & Depreciation Amortization                                     
#FCF                    Free Cash Flow      
#PE1                    Price to Earnings Ratio     
#PB                     Price to Book Value             nam
### Unique Dates
## -- Train 
#2011-03-31 
#2011-06-30 
#2011-09-30 
#2011-12-31 
#2012-03-31 
#2012-06-30
#2012-09-30
#2012-12-31 
#2013-03-31 
#2013-06-30 
#2013-09-30 
#2013-12-31 
#2014-03-31
#2014-06-30 
#2014-09-30 
# --- Test 
#2014-12-31 
#2015-03-31 
#2015-06-30 
#2015-09-30 
#2015-12-31 
library('ggplot2')
library('forecast')
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## 
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Loading required package: timeDate
## This is forecast 6.2
library('tseries')
library('astsa')
## 
## Attaching package: 'astsa'
## 
## The following object is masked from 'package:forecast':
## 
##     gas
library('forecast')

########################################################
#################Functions ----- Functions ------####### 
#########################################################
### Function ---- Computing  Return price
compute_return_price<-function(stock_data){
  return_price<-vector();
  for(i in 2:length(stock_data[,1])){
    if (identical(stock_data[i,1],stock_data[i-1,1])){
      return_price[i] = (stock_data[i,72]/stock_data[i-1,72]);
    }else{
      return_price[i] = 0;
    }
  }
  return_price[1]=0;
  #combining return price to Stock Data
  stock_data<-cbind(stock_data,return_price)
}

#################################################################
remove_outlier <- function(stock_factors){
  #------------------------------------Outlier Removal-----------------
  #plot(stock_factors$assets)
  stock_factors<-subset(stock_factors, stock_factors$assets < 40000000000)
  #plot(stock_factors$assets)
  stock_factors<-subset(stock_factors, stock_factors$cashnequsd < 6000000000)
  #plot(stock_factors$cashnequsd)
  stock_factors<-subset(stock_factors, stock_factors$de > -100)
  stock_factors<-subset(stock_factors, stock_factors$de < 100)
  #plot(stock_factors$de)
  #plot(stock_factors$ebitda)
  stock_factors<-subset(stock_factors, stock_factors$ebitda > -500000000)
  stock_factors<-subset(stock_factors, stock_factors$ebitda < 2000000000)
  #plot(stock_factors$ebitda)
  #plot(stock_factors$ebitusd)
  stock_factors<-subset(stock_factors, stock_factors$ebitusd  > -400000000)
  stock_factors<-subset(stock_factors, stock_factors$ebitusd < 1500000000)
  #plot(stock_factors$ebitusd)
  #View(stock_factors)
  stock_factors<-subset(stock_factors, stock_factors$epsusd > -10)
  #plot(stock_factors$epsusd)
  stock_factors<-subset(stock_factors, stock_factors$epsusd < 10)
  #plot(stock_factors$epsusd)
  stock_factors<-subset(stock_factors, stock_factors$equityusd >  -1000000000)
  #plot(stock_factors$equityusd)
  stock_factors<-subset(stock_factors, stock_factors$equityusd <  20000000000)
  #plot(stock_factors$equityusd)
  stock_factors_new <- stock_factors
  #stock_factors <- stock_factors_new
  #plot(stock_factors$fcf)
  stock_factors<-subset(stock_factors, stock_factors$fcf <   1500000000)
  stock_factors<-subset(stock_factors, stock_factors$fcf  >   -1000000000)
  #plot(stock_factors$fcf)
  #plot(stock_factors$revenueusd)
  stock_factors<-subset(stock_factors, stock_factors$revenueusd  <   8000000000)
  #plot(stock_factors$revenueusd)
  stock_factors<-subset(stock_factors, stock_factors$revenueusd  >   -100000)
  #plot(stock_factors$revenueusd)
  #plot(stock_factors$gp)
  stock_factors<-subset(stock_factors, stock_factors$gp  <    3000000000)
  stock_factors<-subset(stock_factors, stock_factors$gp  >    -4000000)
  #plot(stock_factors$gp)
  stock_factors<-subset(stock_factors, stock_factors$liabilities  <    25000000000)
  stock_factors<-subset(stock_factors, stock_factors$liabilities  >    -80000)
  #plot(stock_factors$liabilities)
  stock_factors_new <- stock_factors
  #plot(stock_factors$ncff)
  stock_factors<-subset(stock_factors, stock_factors$ncff   < 2000000000)
  #plot(stock_factors$ncff)
  stock_factors<-subset(stock_factors, stock_factors$ncff   > -1500000000)
  #plot(stock_factors$ncff)
  #View(stock_factors_new)
  stock_factors<-subset(stock_factors, stock_factors$ncfi   < 1000000000)
  stock_factors<-subset(stock_factors, stock_factors$ncfi   < 1000000000)
  #plot(stock_factors$ncfi)
  stock_factors<-subset(stock_factors, stock_factors$ncfi   > - 2000000000)
  #plot(stock_factors$ncfi)
  stock_factors<-subset(stock_factors, stock_factors$ncfo   < 1500000000)
  #plot(stock_factors$ncfo)
  stock_factors<-subset(stock_factors, stock_factors$ncfo   > -500000000)
  #plot(stock_factors$ncfo)
  stock_factors_new <- stock_factors
  #plot(stock_factors$netinc)
  stock_factors<-subset(stock_factors, stock_factors$netinc   > -500000000)
  #plot(stock_factors$netinc)
  #plot(stock_factors$netinc)
  stock_factors<-subset(stock_factors, stock_factors$netinc   < 1000000000)
  #plot(stock_factors$netinc)
  #plot(stock_factors$pb)
  stock_factors<-subset(stock_factors, stock_factors$pb   < 10000)
  stock_factors<-subset(stock_factors, stock_factors$pb   <200)
  stock_factors<-subset(stock_factors, stock_factors$pb   > -200)
  #plot(stock_factors$pb)
  #plot(stock_factors$pe1)
  stock_factors<-subset(stock_factors, stock_factors$pe1 > -1000)
  stock_factors<-subset(stock_factors, stock_factors$pe1 < 1000)
  #plot(stock_factors$pe1)
  stock_factors_new <- stock_factors
  #plot(stock_factors$sharesbas)
  stock_factors<-subset(stock_factors, stock_factors$sharesbas < 800000000)
  #plot(stock_factors$sharesbas)
  #plot(stock_factors$tangibles)
  stock_factors<-subset(stock_factors, stock_factors$tangibles < 20000000000)
  #plot(stock_factors$tangibles)
  #plot(stock_factors$workingcapital)
  stock_factors<-subset(stock_factors, stock_factors$workingcapital >  -1500000000)
  #plot(stock_factors$workingcapital)
  stock_factors<-subset(stock_factors, stock_factors$workingcapital < 6000000000)
  #plot(stock_factors$workingcapital)
  stock_factors
}

##################################################################################
norm_x_var <- function(data_norm){
  for (k in 2:18) {
    #normalizing each independent var
    x<-(data_norm[,k]-mean(data_norm[,k]))/sd(data_norm[,k])
    #merging the normalized var to the original dataset
    data_norm<-cbind(data_norm,x)
    #naming the normalized variable
    names(data_norm)[NCOL(data_norm)]<-paste(colnames(data_norm[k]),"_n",sep="")
  }
  data_norm <- data_norm[c(1,19:35)]
 data_norm
}

######################################################################################
##### subset data and create a list ####

subset_stockdata <- function(stock_factors_date){
  
  unique(stock_factors_date$calendardate)
  ##Sort by staock factors date
  stock_factors_date <- dplyr::arrange(stock_factors_date, calendardate)
  #View(stock_factors_date)
  #caldates <- unique(stock_factors_date$calendardate)
  ### Subset data by calendar Date 
  stock_factor_2011_03_31  <- subset(stock_factors_date , calendardate =='2011-06-30')
  stock_factor_2011_03_31 <- stock_factor_2011_03_31[,-(1)]
  #View(stock_factor_2011_03_31)
  stock_factor_2011_06_30  <- subset(stock_factors_date , calendardate =='2011-06-30')
  stock_factor_2011_06_30 <- stock_factor_2011_06_30[,-(1)]
  #View(stock_factor_2011_06_30)
  stock_factor_2011_09_30 <- subset(stock_factors_date , calendardate =='2011-09-30' )
  stock_factor_2011_09_30 <- stock_factor_2011_09_30[,-1]
  stock_factor_2011_12_31 <- subset(stock_factors_date , calendardate =='2011-12-31' )
  stock_factor_2011_12_31 <- stock_factor_2011_12_31[,-1]
  stock_factor_2012_03_31 <- subset(stock_factors_date , calendardate =='2012-03-31' )
  stock_factor_2012_03_31 <- stock_factor_2012_03_31[,-1]
  stock_factor_2012_06_30 <- subset(stock_factors_date , calendardate =='2012-06-30' )
  stock_factor_2012_06_30 <- stock_factor_2012_06_30[,-1]
  stock_factor_2012_09_30 <- subset(stock_factors_date , calendardate =='2012-09-30' )
  stock_factor_2012_09_30 <- stock_factor_2012_09_30[,-1]
  stock_factor_2012_12_31  <- subset(stock_factors_date , calendardate =='2012-12-31' )
  stock_factor_2012_12_31 <- stock_factor_2012_12_31[,-1]
  stock_factor_2013_03_31 <- subset(stock_factors_date , calendardate =='2013-03-31' )
  stock_factor_2013_03_31  <- stock_factor_2013_03_31 [,-1]
  stock_factor_2013_06_30 <- subset(stock_factors_date , calendardate =='2013-06-30' )
  stock_factor_2013_06_30 <- stock_factor_2013_06_30[,-1]
  stock_factor_2013_09_30 <- subset(stock_factors_date , calendardate =='2013-09-30' )
  stock_factor_2013_09_30 <- stock_factor_2013_09_30[,-1]
  stock_factor_2013_12_31 <- subset(stock_factors_date , calendardate =='2013-12-31' )
  stock_factor_2013_12_31 <- stock_factor_2013_12_31[,-1]
  stock_factor_2014_03_31 <- subset(stock_factors_date , calendardate =='2014-03-31' )
  stock_factor_2014_03_31 <- stock_factor_2014_03_31[,-1]
  stock_factor_2014_06_30 <- subset(stock_factors_date , calendardate =='2014-06-30' )
  stock_factor_2014_06_30 <- stock_factor_2014_06_30[,-1]
  stock_factor_2014_09_30 <- subset(stock_factors_date , calendardate =='2014-09-30' )
  stock_factor_2014_09_30 <- stock_factor_2014_09_30[,-1]
  
  ######
  stock_factor_2014_12_31 <- subset(stock_factors_date , calendardate =='2014-12-31' )
  stock_factor_2014_12_31 <- stock_factor_2014_12_31[,-1]
  #View(stock_factor_2014_12_31)
  is.na(stock_factor_2014_12_31) <- sapply(stock_factor_2014_12_31, is.infinite)
  stock_factor_2014_12_31 <- na.omit(stock_factor_2014_12_31)
  #2015-03-31 
  stock_factor_2015_03_31 <- subset(stock_factors_date , calendardate =='2015-03-31' )
  stock_factor_2015_03_31 <- stock_factor_2015_03_31[,-1]
  is.na(stock_factor_2015_03_31) <- sapply(stock_factor_2015_03_31, is.infinite)
  stock_factor_2015_03_31 <- na.omit(stock_factor_2015_03_31)
  #View(stock_factor_2015_03_31)
  #2015-06-30 
  stock_factor_2015_06_30 <- subset(stock_factors_date , calendardate =='2015-06-30' )
  stock_factor_2015_06_30 <- stock_factor_2015_06_30[,-1]
  is.na(stock_factor_2015_06_30) <- sapply(stock_factor_2015_06_30, is.infinite)
  stock_factor_2015_06_30 <- na.omit(stock_factor_2015_06_30)
  #View(stock_factor_2015_06_30)
  #2015-09-30 
  stock_factor_2015_09_30 <- subset(stock_factors_date , calendardate =='2015-09-30' )
  stock_factor_2015_09_30 <- stock_factor_2015_09_30[,-1]
  is.na(stock_factor_2015_09_30) <- sapply(stock_factor_2015_09_30, is.infinite)
  stock_factor_2015_09_30 <- na.omit(stock_factor_2015_09_30)
  #View(stock_factor_2015_09_30)
  #2015-12-31
  stock_factor_2015_12_31 <- subset(stock_factors_date , calendardate =='2015-12-31' )
  stock_factor_2015_12_31 <- stock_factor_2015_12_31[,-1]
  is.na(stock_factor_2015_12_31) <- sapply(stock_factor_2015_12_31, is.infinite)
  stock_factor_2015_06_30 <- na.omit(stock_factor_2015_12_31)
  #View(stock_factor_2015_12_31)
  
  my.list <- list( stock_factor_2011_03_31, stock_factor_2011_06_30, stock_factor_2011_09_30,
                   stock_factor_2011_12_31,stock_factor_2012_03_31,stock_factor_2012_06_30,
                   stock_factor_2012_09_30,stock_factor_2012_12_31,stock_factor_2013_03_31,
                   stock_factor_2013_06_30,stock_factor_2013_09_30,stock_factor_2013_12_31,
                   stock_factor_2014_03_31,stock_factor_2014_06_30,stock_factor_2014_09_30,
   stock_factor_2014_12_31, stock_factor_2015_03_31, stock_factor_2015_06_30,stock_factor_2015_09_30,
   stock_factor_2015_12_31)
  
}

#####################################Prediction Dates ####################################
subset_pred_dates <- function(stock_factors_date) {
  
  stock_factor_2014_12_31 <- subset(stock_factors_date , calendardate =='2014-12-31' )
  stock_factor_2014_12_31 <- stock_factor_2014_12_31[,-1]
  #View(stock_factor_2014_12_31)
  is.na(stock_factor_2014_12_31) <- sapply(stock_factor_2014_12_31, is.infinite)
  stock_factor_2014_12_31 <- na.omit(stock_factor_2014_12_31)
  #2015-03-31 
  stock_factor_2015_03_31 <- subset(stock_factors_date , calendardate =='2015-03-31' )
  stock_factor_2015_03_31 <- stock_factor_2015_03_31[,-1]
  is.na(stock_factor_2015_03_31) <- sapply(stock_factor_2015_03_31, is.infinite)
  stock_factor_2015_03_31 <- na.omit(stock_factor_2015_03_31)
  #View(stock_factor_2015_03_31)
  #2015-06-30 
  stock_factor_2015_06_30 <- subset(stock_factors_date , calendardate =='2015-06-30' )
  stock_factor_2015_06_30 <- stock_factor_2015_06_30[,-1]
  is.na(stock_factor_2015_06_30) <- sapply(stock_factor_2015_06_30, is.infinite)
  stock_factor_2015_06_30 <- na.omit(stock_factor_2015_06_30)
  #View(stock_factor_2015_06_30)
  #2015-09-30 
  stock_factor_2015_09_30 <- subset(stock_factors_date , calendardate =='2015-09-30' )
  stock_factor_2015_09_30 <- stock_factor_2015_09_30[,-1]
  is.na(stock_factor_2015_09_30) <- sapply(stock_factor_2015_09_30, is.infinite)
  stock_factor_2015_09_30 <- na.omit(stock_factor_2015_09_30)
  #View(stock_factor_2015_09_30)
  #2015-12-31
  stock_factor_2015_12_31 <- subset(stock_factors_date , calendardate =='2015-12-31' )
  stock_factor_2015_12_31 <- stock_factor_2015_12_31[,-1]
  is.na(stock_factor_2015_12_31) <- sapply(stock_factor_2015_12_31, is.infinite)
  stock_factor_2015_06_30 <- na.omit(stock_factor_2015_12_31)
  #View(stock_factor_2015_12_31)
 
  my.pred.list <- list(stock_factor_2014_12_31, stock_factor_2015_03_31, stock_factor_2015_06_30, stock_factor_2015_09_30,
                       stock_factor_2015_12_31)
}
###########################

###############################linear model for 20 pred set of beta ##############################################
create_beta_matrix <- function(my.list){
  beta_matrix <- matrix()
  List <- list()
  for (i in 1:length(my.list)) {
    obj <- as.data.frame(my.list[i])
    lm_model <- lm(return_price~. , data = obj)
    print(summary(lm_model))
    betas <- lm_model$coefficients
    print(betas)
    List[[i]] <- betas
  }
  beta_matrix = do.call(rbind, List)
}

#################################Predicting future date  betas #############################################
find_future_beta <- function(beta_matrix){
  end_Date_matrix <- matrix( c(2014 , 2015 , 2015 , 2015, 2015, 4, 1, 2, 3,4),  nrow=5, ncol=2)
  for (k in (15:19) ){
    j = k-14
    pred_beta <- list()
    new_beta_matrix <- beta_matrix[1:k,]
    for (i in names(new_beta_matrix)) {
      if(i != 'dt'){
        beta = new_beta_matrix[i]
        model <- ts(beta, start=c(2011, 1), end=c(end_Date_matrix[j,1], end_Date_matrix[j,2]), frequency=4) 
        par(mfrow = c(3, 1))
        #plot(model)
        #plot(acf(model))
        #plot(pacf(model))
        arima_model2 <-  arima(model,  order=c(2,0,0))
        tsdiag(arima_model2)
        #par(mfrow = c(1,1))
        pred = predict(arima_model2, n.ahead = 1)
        pred_beta_list[j,i] <-pred$pred
        #fcast <- forecast(model, h=1)
        #plot(fcast)
      }
    }
  }
  pred_beta_list
}
#############################################################################################################
pred_stock_returns <- function(future_stock_factor_data, pred_beta) {
  pred_return_price_row  <- 0 
  x <- data.frame("pred_returnPrice" =1)
  stock_16 <- future_stock_factor_data[, -18]
for ( i in 1:nrow(stock_16) ){ 
  row <- stock_16[i,]
  #print(i)
  for (k in 1:length(pred_beta)) {
    if(k==1){
      #intercept
      pred_return_price_row <- pred_beta[k]
      #print(pred_return_price_row )
    }else {
      #print("in k")
      pred_return_price_row <- pred_return_price_row + pred_beta[k]*row[k-1]
      
    }
  }
  x[i,] <- pred_return_price_row
  pred_return_price_row  <- 0
  
}
  future_stock_factor_data["pred_returnPrice"] <- x$pred_returnPrice
  future_stock_factor_data
}

######################################################################################
make_quantiles <- function(sorted_data){
  start = 600
  end_file <- nrow(sorted_data)
  quantile_list = list()
  quantile_pred_list = list()
  for (i in 1:5){
    #name_pred= paste("QQuantile_pred_" , i, sep="")
    #name= paste("QQuantile_" , i, sep="")
    start = 1+600*(i-1)
    #print(start)
    if( i == 5 ) {
      end <- end_file
    }else {
      end <- i*600
    }
    
    Quantile <- sorted_data[start:end,]
    #assign(name_pred,   Quantile_pred)
    #assign(name, Quantile)
    quantile_list[i] <- mean(Quantile$return_price)
    quantile_pred_list[i] <- mean(Quantile$pred_returnPrice)
  }
  
  list (quantile_list ,  quantile_pred_list) 
}


######################################################
#######  Code starts here  ###########################
#######################################################
indicator_list<-c(3,7,15,18, 25,28,32,35, 39,78,42,49,57,58, 59, 61,68,70, 86,90,93,94)
stock_data <- read.csv('/Users/jyothi/Desktop/predictive/data_file_ARQ.csv', header = T, sep =',')
#colnames(stock_data)
stock_data <- compute_return_price(stock_data)
stock_factors <- na.omit(stock_data[indicator_list])
stock_factors <- remove_outlier(stock_factors)
stock_factors_new <- stock_factors
stock_factors_new <- stock_factors_new[ ,-c(1,22)]
sink("/Users/jyothi/Desktop/cor.txt")
cor(stock_factors_new)
##                      assets  cashnequsd            de      ebitda
## assets          1.000000000  0.61421508  0.0782112544  0.83899851
## cashnequsd      0.614215079  1.00000000  0.0365081290  0.60458431
## de              0.078211254  0.03650813  1.0000000000  0.06269383
## ebitda          0.838998510  0.60458431  0.0626938302  1.00000000
## ebitusd         0.742595158  0.58001121  0.0444972107  0.96363758
## epsusd          0.235966783  0.19675398  0.0288497325  0.40764767
## equityusd       0.899765681  0.62279702  0.0275480022  0.78455830
## fcf             0.386186942  0.44547074  0.0294319370  0.48776439
## revenueusd      0.769944853  0.59396030  0.0662162712  0.74379501
## gp              0.806747034  0.63428636  0.0661628765  0.82904399
## liabilities     0.962654770  0.55148906  0.1014117036  0.79623986
## ncff           -0.162384874 -0.12605673  0.0066065380 -0.24640434
## ncfi           -0.460766693 -0.22590503 -0.0503986453 -0.40006375
## ncfo            0.702608344  0.55144658  0.0575961132  0.76826401
## netinc          0.632897074  0.54753817  0.0253376649  0.89281569
## pb             -0.003325166  0.01478398  0.5403373489  0.01669836
## pe1             0.043807234  0.03581321 -0.0008833853  0.06134799
## sharesbas       0.688486571  0.59694030  0.0327751468  0.63941738
## tangibles       0.931149266  0.59337986  0.0808760753  0.79537863
## workingcapital  0.559316932  0.73375250  0.0169005771  0.55067337
##                    ebitusd      epsusd    equityusd         fcf
## assets          0.74259516  0.23596678  0.899765681  0.38618694
## cashnequsd      0.58001121  0.19675398  0.622797020  0.44547074
## de              0.04449721  0.02884973  0.027548002  0.02943194
## ebitda          0.96363758  0.40764767  0.784558295  0.48776439
## ebitusd         1.00000000  0.45425849  0.714081767  0.51975006
## epsusd          0.45425849  1.00000000  0.257673865  0.21543515
## equityusd       0.71408177  0.25767386  1.000000000  0.38798529
## fcf             0.51975006  0.21543515  0.387985292  1.00000000
## revenueusd      0.70192224  0.27164316  0.688376123  0.41675110
## gp              0.78894894  0.28266526  0.742147423  0.49506087
## liabilities     0.69356867  0.20225501  0.753153852  0.35344194
## ncff           -0.26661924 -0.10483488 -0.165869133 -0.41292779
## ncfi           -0.32392860 -0.10827465 -0.426020247 -0.03994817
## ncfo            0.71924796  0.27655192  0.671425053  0.78360998
## netinc          0.95404019  0.50739838  0.656816092  0.51211626
## pb              0.02034100  0.02065151 -0.006716599  0.02247697
## pe1             0.06101799  0.07439753  0.051495711  0.03601164
## sharesbas       0.57786280  0.12284752  0.666471898  0.34293056
## tangibles       0.68823342  0.22934215  0.820558567  0.28276013
## workingcapital  0.54578386  0.23358872  0.636742525  0.39013498
##                  revenueusd          gp  liabilities         ncff
## assets          0.769944853  0.80674703  0.962654770 -0.162384874
## cashnequsd      0.593960298  0.63428636  0.551489056 -0.126056728
## de              0.066216271  0.06616288  0.101411704  0.006606538
## ebitda          0.743795005  0.82904399  0.796239860 -0.246404342
## ebitusd         0.701922242  0.78894894  0.693568667 -0.266619239
## epsusd          0.271643158  0.28266526  0.202255007 -0.104834878
## equityusd       0.688376123  0.74214742  0.753153852 -0.165869133
## fcf             0.416751095  0.49506087  0.353441940 -0.412927790
## revenueusd      1.000000000  0.78376149  0.749847268 -0.220969783
## gp              0.783761493  1.00000000  0.773573679 -0.243806024
## liabilities     0.749847268  0.77357368  1.000000000 -0.148794728
## ncff           -0.220969783 -0.24380602 -0.148794728  1.000000000
## ncfi           -0.316798948 -0.35392671 -0.435581231 -0.455934980
## ncfo            0.609154717  0.69953337  0.656410785 -0.293864271
## netinc          0.623455697  0.70343212  0.563238166 -0.261607223
## pb              0.002378546  0.02040166 -0.001392047 -0.002440969
## pe1             0.039886615  0.04474907  0.035364463 -0.011452220
## sharesbas       0.571983721  0.66866987  0.637308950 -0.160438083
## tangibles       0.749534746  0.74089207  0.908638572 -0.118267783
## workingcapital  0.616422661  0.58883200  0.465930659 -0.137293039
##                        ncfi        ncfo      netinc           pb
## assets         -0.460766693  0.70260834  0.63289707 -0.003325166
## cashnequsd     -0.225905027  0.55144658  0.54753817  0.014783977
## de             -0.050398645  0.05759611  0.02533766  0.540337349
## ebitda         -0.400063752  0.76826401  0.89281569  0.016698357
## ebitusd        -0.323928598  0.71924796  0.95404019  0.020341003
## epsusd         -0.108274652  0.27655192  0.50739838  0.020651509
## equityusd      -0.426020247  0.67142505  0.65681609 -0.006716599
## fcf            -0.039948165  0.78360998  0.51211626  0.022476972
## revenueusd     -0.316798948  0.60915472  0.62345570  0.002378546
## gp             -0.353926714  0.69953337  0.70343212  0.020401663
## liabilities    -0.435581231  0.65641079  0.56323817 -0.001392047
## ncff           -0.455934980 -0.29386427 -0.26160722 -0.002440969
## ncfi            1.000000000 -0.40025187 -0.27062287 -0.006801858
## ncfo           -0.400251871  1.00000000  0.66058173  0.017157584
## netinc         -0.270622865  0.66058173  1.00000000  0.022462637
## pb             -0.006801858  0.01715758  0.02246264  1.000000000
## pe1            -0.030509905  0.04865358  0.06394589 -0.009267894
## sharesbas      -0.319376831  0.54944951  0.50376558  0.025466026
## tangibles      -0.479200211  0.67490590  0.57879543 -0.005176550
## workingcapital -0.206030627  0.44972139  0.52867111  0.004470168
##                          pe1   sharesbas   tangibles workingcapital
## assets          0.0438072338  0.68848657  0.93114927    0.559316932
## cashnequsd      0.0358132116  0.59694030  0.59337986    0.733752498
## de             -0.0008833853  0.03277515  0.08087608    0.016900577
## ebitda          0.0613479949  0.63941738  0.79537863    0.550673370
## ebitusd         0.0610179915  0.57786280  0.68823342    0.545783865
## epsusd          0.0743975276  0.12284752  0.22934215    0.233588721
## equityusd       0.0514957106  0.66647190  0.82055857    0.636742525
## fcf             0.0360116375  0.34293056  0.28276013    0.390134985
## revenueusd      0.0398866149  0.57198372  0.74953475    0.616422661
## gp              0.0447490652  0.66866987  0.74089207    0.588832000
## liabilities     0.0353644634  0.63730895  0.90863857    0.465930659
## ncff           -0.0114522201 -0.16043808 -0.11826778   -0.137293039
## ncfi           -0.0305099051 -0.31937683 -0.47920021   -0.206030627
## ncfo            0.0486535837  0.54944951  0.67490590    0.449721388
## netinc          0.0639458904  0.50376558  0.57879543    0.528671109
## pb             -0.0092678945  0.02546603 -0.00517655    0.004470168
## pe1             1.0000000000  0.02520183  0.03836747    0.041335192
## sharesbas       0.0252018287  1.00000000  0.64790893    0.509420427
## tangibles       0.0383674668  0.64790893  1.00000000    0.549589281
## workingcapital  0.0413351919  0.50942043  0.54958928    1.000000000
stock_factors <- stock_factors[  , -c(2,6,20)]
stock_factors<-unique(stock_factors)
## remove Calender Return price to normalise rest of the factors.
data_norm<-stock_factors[  , -c(19)]
stock_factors_date <- norm_x_var(data_norm)
caldates <- unique(stock_factors_date$calendardate)
stock_factors_date["return_price"]<-stock_factors[,19]
stock_factors_date <- dplyr::arrange(stock_factors_date, calendardate)
my.list <- subset_stockdata(stock_factors_date )
beta_matrix <- create_beta_matrix(my.list)
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.8274 -0.1222 -0.0040  0.1015  7.3536 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       8.789e-01  4.864e-03 180.689  < 2e-16 ***
## cashnequsd_n     -4.316e-03  8.321e-03  -0.519  0.60401    
## de_n             -1.726e-02  6.148e-03  -2.808  0.00502 ** 
## ebitda_n          2.582e-02  2.598e-02   0.994  0.32038    
## epsusd_n          1.908e-02  5.783e-03   3.300  0.00098 ***
## equityusd_n      -1.600e-02  1.071e-02  -1.494  0.13532    
## fcf_n            -3.313e-03  1.074e-02  -0.309  0.75770    
## revenueusd_n     -5.181e-03  9.546e-03  -0.543  0.58731    
## gp_n              2.228e-03  1.018e-02   0.219  0.82684    
## liabilities_n    -4.700e-03  1.299e-02  -0.362  0.71760    
## ncff_n           -5.408e-03  7.544e-03  -0.717  0.47356    
## ncfi_n            1.938e-03  8.145e-03   0.238  0.81195    
## ncfo_n            1.184e-02  1.465e-02   0.808  0.41917    
## netinc_n          2.425e-03  1.937e-02   0.125  0.90039    
## pb_n              3.821e-02  6.637e-03   5.758  9.4e-09 ***
## pe1_n             1.539e-02  4.830e-03   3.187  0.00145 ** 
## sharesbas_n      -4.728e-05  7.355e-03  -0.006  0.99487    
## workingcapital_n -4.700e-03  9.023e-03  -0.521  0.60248    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2592 on 2944 degrees of freedom
## Multiple R-squared:  0.02692,    Adjusted R-squared:  0.0213 
## F-statistic: 4.791 on 17 and 2944 DF,  p-value: 3.069e-10
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     8.788905e-01    -4.316149e-03    -1.726215e-02     2.581616e-02 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     1.907995e-02    -1.600308e-02    -3.313435e-03    -5.181383e-03 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     2.227962e-03    -4.699924e-03    -5.407592e-03     1.938014e-03 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     1.183847e-02     2.424616e-03     3.821332e-02     1.539296e-02 
##      sharesbas_n workingcapital_n 
##    -4.727553e-05    -4.699862e-03 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.8274 -0.1222 -0.0040  0.1015  7.3536 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       8.789e-01  4.864e-03 180.689  < 2e-16 ***
## cashnequsd_n     -4.316e-03  8.321e-03  -0.519  0.60401    
## de_n             -1.726e-02  6.148e-03  -2.808  0.00502 ** 
## ebitda_n          2.582e-02  2.598e-02   0.994  0.32038    
## epsusd_n          1.908e-02  5.783e-03   3.300  0.00098 ***
## equityusd_n      -1.600e-02  1.071e-02  -1.494  0.13532    
## fcf_n            -3.313e-03  1.074e-02  -0.309  0.75770    
## revenueusd_n     -5.181e-03  9.546e-03  -0.543  0.58731    
## gp_n              2.228e-03  1.018e-02   0.219  0.82684    
## liabilities_n    -4.700e-03  1.299e-02  -0.362  0.71760    
## ncff_n           -5.408e-03  7.544e-03  -0.717  0.47356    
## ncfi_n            1.938e-03  8.145e-03   0.238  0.81195    
## ncfo_n            1.184e-02  1.465e-02   0.808  0.41917    
## netinc_n          2.425e-03  1.937e-02   0.125  0.90039    
## pb_n              3.821e-02  6.637e-03   5.758  9.4e-09 ***
## pe1_n             1.539e-02  4.830e-03   3.187  0.00145 ** 
## sharesbas_n      -4.728e-05  7.355e-03  -0.006  0.99487    
## workingcapital_n -4.700e-03  9.023e-03  -0.521  0.60248    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2592 on 2944 degrees of freedom
## Multiple R-squared:  0.02692,    Adjusted R-squared:  0.0213 
## F-statistic: 4.791 on 17 and 2944 DF,  p-value: 3.069e-10
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     8.788905e-01    -4.316149e-03    -1.726215e-02     2.581616e-02 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     1.907995e-02    -1.600308e-02    -3.313435e-03    -5.181383e-03 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     2.227962e-03    -4.699924e-03    -5.407592e-03     1.938014e-03 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     1.183847e-02     2.424616e-03     3.821332e-02     1.539296e-02 
##      sharesbas_n workingcapital_n 
##    -4.727553e-05    -4.699862e-03 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -11.619  -0.230  -0.055   0.145  84.207 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.9458514  0.0321309  29.437   <2e-16 ***
## cashnequsd_n     -0.0428069  0.0550956  -0.777   0.4372    
## de_n              0.4289061  0.0392490  10.928   <2e-16 ***
## ebitda_n         -0.0199314  0.1659624  -0.120   0.9044    
## epsusd_n          0.0327520  0.0386259   0.848   0.3965    
## equityusd_n       0.0314696  0.0705670   0.446   0.6557    
## fcf_n             0.0368658  0.0894578   0.412   0.6803    
## revenueusd_n     -0.0022733  0.0634233  -0.036   0.9714    
## gp_n             -0.0196365  0.0652298  -0.301   0.7634    
## liabilities_n    -0.1275810  0.0844979  -1.510   0.1312    
## ncff_n            0.0039441  0.0561670   0.070   0.9440    
## ncfi_n           -0.0004256  0.0519632  -0.008   0.9935    
## ncfo_n           -0.0055202  0.1174307  -0.047   0.9625    
## netinc_n          0.0274447  0.1124885   0.244   0.8073    
## pb_n             -0.9197303  0.0415430 -22.139   <2e-16 ***
## pe1_n             0.0308529  0.0318037   0.970   0.3321    
## sharesbas_n       0.1047645  0.0498233   2.103   0.0356 *  
## workingcapital_n -0.0182780  0.0571972  -0.320   0.7493    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.714 on 2907 degrees of freedom
## Multiple R-squared:  0.145,  Adjusted R-squared:   0.14 
## F-statistic:    29 on 17 and 2907 DF,  p-value: < 2.2e-16
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     0.9458514364    -0.0428068895     0.4289060501    -0.0199313731 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0327520415     0.0314696064     0.0368658317    -0.0022733278 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##    -0.0196365440    -0.1275810425     0.0039440857    -0.0004256415 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##    -0.0055202180     0.0274447131    -0.9197303263     0.0308529126 
##      sharesbas_n workingcapital_n 
##     0.1047645011    -0.0182780017 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.0764 -0.1491 -0.0368  0.1020 12.8273 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.1227447  0.0074348 151.012  < 2e-16 ***
## cashnequsd_n     -0.0069652  0.0128768  -0.541 0.588610    
## de_n              0.0011991  0.0087808   0.137 0.891387    
## ebitda_n         -0.0078248  0.0298623  -0.262 0.793316    
## epsusd_n          0.0271174  0.0071771   3.778 0.000161 ***
## equityusd_n      -0.0103807  0.0161411  -0.643 0.520196    
## fcf_n             0.0124862  0.0154970   0.806 0.420474    
## revenueusd_n      0.0091391  0.0137329   0.665 0.505788    
## gp_n             -0.0039288  0.0148905  -0.264 0.791914    
## liabilities_n     0.0001761  0.0176696   0.010 0.992047    
## ncff_n            0.0046722  0.0116267   0.402 0.687822    
## ncfi_n            0.0035367  0.0142612   0.248 0.804159    
## ncfo_n           -0.0053633  0.0208678  -0.257 0.797188    
## netinc_n         -0.0114562  0.0201946  -0.567 0.570562    
## pb_n              0.0266308  0.0093020   2.863 0.004227 ** 
## pe1_n            -0.0057518  0.0079501  -0.723 0.469435    
## sharesbas_n       0.0092518  0.0116017   0.797 0.425255    
## workingcapital_n  0.0080115  0.0134800   0.594 0.552343    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3995 on 2939 degrees of freedom
## Multiple R-squared:  0.01049,    Adjusted R-squared:  0.004769 
## F-statistic: 1.833 on 17 and 2939 DF,  p-value: 0.01953
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     1.1227446643    -0.0069652046     0.0011991225    -0.0078248207 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0271173666    -0.0103806742     0.0124861547     0.0091391293 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##    -0.0039288370     0.0001761497     0.0046722071     0.0035366541 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##    -0.0053632509    -0.0114561729     0.0266307597    -0.0057518003 
##      sharesbas_n workingcapital_n 
##     0.0092517914     0.0080114680 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.8490 -0.1118 -0.0141  0.0871  5.0294 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.9826584  0.0045484 216.044  < 2e-16 ***
## cashnequsd_n      0.0024226  0.0077825   0.311 0.755608    
## de_n              0.0103135  0.0064033   1.611 0.107366    
## ebitda_n         -0.0119237  0.0238054  -0.501 0.616492    
## epsusd_n          0.0163807  0.0047111   3.477 0.000514 ***
## equityusd_n      -0.0128386  0.0094944  -1.352 0.176407    
## fcf_n             0.0254931  0.0104018   2.451 0.014311 *  
## revenueusd_n     -0.0048316  0.0084632  -0.571 0.568109    
## gp_n              0.0140563  0.0096445   1.457 0.145103    
## liabilities_n     0.0058807  0.0116131   0.506 0.612626    
## ncff_n            0.0011044  0.0073055   0.151 0.879852    
## ncfi_n           -0.0081863  0.0090290  -0.907 0.364656    
## ncfo_n           -0.0164564  0.0137102  -1.200 0.230118    
## netinc_n          0.0101930  0.0159605   0.639 0.523107    
## pb_n              0.0010554  0.0063920   0.165 0.868864    
## pe1_n             0.0032982  0.0051562   0.640 0.522445    
## sharesbas_n      -0.0019913  0.0070799  -0.281 0.778525    
## workingcapital_n -0.0007458  0.0081809  -0.091 0.927370    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2425 on 2913 degrees of freedom
## Multiple R-squared:  0.01405,    Adjusted R-squared:  0.008297 
## F-statistic: 2.442 on 17 and 2913 DF,  p-value: 0.0008381
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     0.9826583545     0.0024225680     0.0103134708    -0.0119237016 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0163807223    -0.0128386242     0.0254930678    -0.0048316481 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     0.0140562705     0.0058806848     0.0011043709    -0.0081863164 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##    -0.0164564075     0.0101930365     0.0010554296     0.0032981802 
##      sharesbas_n workingcapital_n 
##    -0.0019913461    -0.0007457874 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.9555 -0.1212 -0.0129  0.0937  4.0153 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.982051   0.004686 209.565  < 2e-16 ***
## cashnequsd_n     -0.005774   0.008141  -0.709 0.478169    
## de_n             -0.012214   0.006314  -1.935 0.053143 .  
## ebitda_n         -0.025171   0.024123  -1.043 0.296823    
## epsusd_n          0.017216   0.005181   3.323 0.000902 ***
## equityusd_n       0.001750   0.009438   0.185 0.852902    
## fcf_n             0.009459   0.010772   0.878 0.379928    
## revenueusd_n     -0.002536   0.009133  -0.278 0.781296    
## gp_n              0.003708   0.009794   0.379 0.705010    
## liabilities_n     0.006911   0.011602   0.596 0.551455    
## ncff_n            0.003741   0.006748   0.554 0.579282    
## ncfi_n            0.006779   0.007311   0.927 0.353842    
## ncfo_n            0.002547   0.015315   0.166 0.867909    
## netinc_n          0.020285   0.016910   1.200 0.230409    
## pb_n              0.029101   0.006137   4.742 2.22e-06 ***
## pe1_n             0.002635   0.004996   0.528 0.597868    
## sharesbas_n       0.002990   0.007322   0.408 0.683011    
## workingcapital_n -0.016146   0.008263  -1.954 0.050785 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2519 on 2924 degrees of freedom
## Multiple R-squared:  0.01799,    Adjusted R-squared:  0.01228 
## F-statistic: 3.151 on 17 and 2924 DF,  p-value: 1.318e-05
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      0.982051285     -0.005774405     -0.012213846     -0.025171093 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.017216257      0.001750056      0.009459330     -0.002535755 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      0.003708050      0.006910598      0.003741487      0.006779289 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.002547312      0.020284573      0.029101265      0.002635297 
##      sharesbas_n workingcapital_n 
##      0.002990234     -0.016145792 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.8527 -0.1156 -0.0197  0.0795  6.1698 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.022617   0.005299 192.999  < 2e-16 ***
## cashnequsd_n     -0.007348   0.009727  -0.755    0.450    
## de_n             -0.009464   0.006908  -1.370    0.171    
## ebitda_n          0.019480   0.026685   0.730    0.465    
## epsusd_n          0.025992   0.006210   4.186 2.93e-05 ***
## equityusd_n      -0.005062   0.010793  -0.469    0.639    
## fcf_n             0.008357   0.011967   0.698    0.485    
## revenueusd_n      0.013492   0.010286   1.312    0.190    
## gp_n              0.001523   0.010639   0.143    0.886    
## liabilities_n     0.006293   0.013217   0.476    0.634    
## ncff_n            0.001830   0.007971   0.230    0.818    
## ncfi_n            0.009576   0.009357   1.023    0.306    
## ncfo_n           -0.001971   0.016146  -0.122    0.903    
## netinc_n         -0.021116   0.018935  -1.115    0.265    
## pb_n              0.032653   0.007389   4.419 1.03e-05 ***
## pe1_n             0.001781   0.005648   0.315    0.753    
## sharesbas_n      -0.006783   0.008113  -0.836    0.403    
## workingcapital_n  0.004098   0.009168   0.447    0.655    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2833 on 2878 degrees of freedom
## Multiple R-squared:  0.0197, Adjusted R-squared:  0.01391 
## F-statistic: 3.402 on 17 and 2878 DF,  p-value: 2.792e-06
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.022616538     -0.007348354     -0.009464200      0.019479507 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.025992179     -0.005062053      0.008357460      0.013492108 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      0.001523195      0.006293113      0.001829869      0.009576153 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     -0.001971260     -0.021116413      0.032653372      0.001780777 
##      sharesbas_n workingcapital_n 
##     -0.006782725      0.004097967 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.0885 -0.1503 -0.0320  0.1001  5.7394 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.1326587  0.0062233 182.004  < 2e-16 ***
## cashnequsd_n      0.0074541  0.0110192   0.676 0.498800    
## de_n             -0.0015371  0.0074738  -0.206 0.837070    
## ebitda_n         -0.0004743  0.0218394  -0.022 0.982676    
## epsusd_n          0.0126662  0.0065592   1.931 0.053571 .  
## equityusd_n      -0.0090622  0.0126587  -0.716 0.474119    
## fcf_n             0.0100693  0.0106710   0.944 0.345444    
## revenueusd_n      0.0071351  0.0125762   0.567 0.570521    
## gp_n             -0.0134158  0.0134931  -0.994 0.320171    
## liabilities_n     0.0045670  0.0143595   0.318 0.750469    
## ncff_n            0.0036882  0.0091375   0.404 0.686512    
## ncfi_n            0.0041310  0.0096371   0.429 0.668208    
## ncfo_n            0.0031214  0.0149802   0.208 0.834955    
## netinc_n         -0.0166468  0.0147950  -1.125 0.260611    
## pb_n              0.0282163  0.0072536   3.890 0.000102 ***
## pe1_n             0.0028903  0.0066017   0.438 0.661550    
## sharesbas_n       0.0011165  0.0093887   0.119 0.905350    
## workingcapital_n  0.0021682  0.0109243   0.198 0.842688    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3342 on 2952 degrees of freedom
## Multiple R-squared:  0.01084,    Adjusted R-squared:  0.005139 
## F-statistic: 1.902 on 17 and 2952 DF,  p-value: 0.01403
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     1.1326586846     0.0074540869    -0.0015370709    -0.0004742764 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0126661989    -0.0090621961     0.0100693410     0.0071350907 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##    -0.0134158058     0.0045670308     0.0036882044     0.0041309594 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     0.0031214186    -0.0166467576     0.0282163322     0.0028903297 
##      sharesbas_n workingcapital_n 
##     0.0011164571     0.0021681931 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.00894 -0.10829 -0.01991  0.07728  2.71410 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.0473682  0.0041885 250.059  < 2e-16 ***
## cashnequsd_n      0.0020662  0.0073209   0.282   0.7778    
## de_n              0.0044940  0.0050904   0.883   0.3774    
## ebitda_n          0.0035653  0.0214684   0.166   0.8681    
## epsusd_n          0.0219432  0.0050417   4.352 1.39e-05 ***
## equityusd_n      -0.0166247  0.0082982  -2.003   0.0452 *  
## fcf_n             0.0043540  0.0105216   0.414   0.6790    
## revenueusd_n     -0.0073925  0.0082021  -0.901   0.3675    
## gp_n              0.0117395  0.0091282   1.286   0.1985    
## liabilities_n     0.0085783  0.0099462   0.862   0.3885    
## ncff_n            0.0050784  0.0064014   0.793   0.4277    
## ncfi_n            0.0061016  0.0075657   0.806   0.4200    
## ncfo_n            0.0010323  0.0135273   0.076   0.9392    
## netinc_n         -0.0046105  0.0148737  -0.310   0.7566    
## pb_n              0.0041753  0.0048529   0.860   0.3897    
## pe1_n            -0.0007045  0.0041587  -0.169   0.8655    
## sharesbas_n       0.0081148  0.0062854   1.291   0.1968    
## workingcapital_n -0.0032877  0.0068956  -0.477   0.6336    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2239 on 2913 degrees of freedom
## Multiple R-squared:  0.0131, Adjusted R-squared:  0.007343 
## F-statistic: 2.275 on 17 and 2913 DF,  p-value: 0.002085
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     1.0473682127     0.0020662276     0.0044939695     0.0035653052 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0219432255    -0.0166247212     0.0043539818    -0.0073925268 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     0.0117395498     0.0085783079     0.0050783704     0.0061015843 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     0.0010322861    -0.0046105283     0.0041752748    -0.0007045462 
##      sharesbas_n workingcapital_n 
##     0.0081147602    -0.0032876576 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.06313 -0.12764 -0.02717  0.09270  2.34458 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.099e+00  4.841e-03 226.964  < 2e-16 ***
## cashnequsd_n      7.019e-03  8.397e-03   0.836   0.4033    
## de_n             -6.093e-03  5.835e-03  -1.044   0.2965    
## ebitda_n         -1.007e-02  2.277e-02  -0.442   0.6583    
## epsusd_n          2.581e-02  5.797e-03   4.452 8.83e-06 ***
## equityusd_n      -2.357e-02  9.963e-03  -2.366   0.0180 *  
## fcf_n             1.779e-03  1.019e-02   0.175   0.8615    
## revenueusd_n      9.467e-03  9.298e-03   1.018   0.3087    
## gp_n              9.054e-03  1.039e-02   0.871   0.3836    
## liabilities_n    -2.865e-03  1.104e-02  -0.259   0.7953    
## ncff_n            8.489e-03  6.536e-03   1.299   0.1941    
## ncfi_n            2.998e-03  7.395e-03   0.405   0.6853    
## ncfo_n            2.330e-04  1.464e-02   0.016   0.9873    
## netinc_n         -8.919e-03  1.633e-02  -0.546   0.5849    
## pb_n              1.303e-02  5.478e-03   2.378   0.0175 *  
## pe1_n            -3.913e-05  4.484e-03  -0.009   0.9930    
## sharesbas_n       6.324e-03  7.407e-03   0.854   0.3933    
## workingcapital_n -1.227e-03  8.338e-03  -0.147   0.8830    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2614 on 2912 degrees of freedom
## Multiple R-squared:  0.01445,    Adjusted R-squared:  0.008699 
## F-statistic: 2.512 on 17 and 2912 DF,  p-value: 0.0005675
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     1.098840e+00     7.018619e-03    -6.092690e-03    -1.007018e-02 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     2.580910e-02    -2.357392e-02     1.778923e-03     9.467091e-03 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     9.053545e-03    -2.865133e-03     8.489286e-03     2.997610e-03 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     2.329960e-04    -8.919439e-03     1.302896e-02    -3.912514e-05 
##      sharesbas_n workingcapital_n 
##     6.323761e-03    -1.227476e-03 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -1.024 -0.148 -0.039  0.076 38.892 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.0779549  0.0146846  73.407   <2e-16 ***
## cashnequsd_n     -0.0001760  0.0241166  -0.007    0.994    
## de_n              0.0060271  0.0180973   0.333    0.739    
## ebitda_n          0.0102945  0.0630789   0.163    0.870    
## epsusd_n          0.0197100  0.0186922   1.054    0.292    
## equityusd_n      -0.0090325  0.0297634  -0.303    0.762    
## fcf_n             0.0053644  0.0309037   0.174    0.862    
## revenueusd_n     -0.0078120  0.0277820  -0.281    0.779    
## gp_n              0.0001712  0.0300626   0.006    0.995    
## liabilities_n    -0.0018660  0.0341445  -0.055    0.956    
## ncff_n            0.0065067  0.0217269   0.299    0.765    
## ncfi_n            0.0012456  0.0227850   0.055    0.956    
## ncfo_n            0.0042575  0.0431728   0.099    0.921    
## netinc_n         -0.0058064  0.0462327  -0.126    0.900    
## pb_n              0.0213426  0.0172070   1.240    0.215    
## pe1_n             0.0012915  0.0147944   0.087    0.930    
## sharesbas_n      -0.0128522  0.0216726  -0.593    0.553    
## workingcapital_n -0.0030277  0.0246248  -0.123    0.902    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7877 on 2881 degrees of freedom
## Multiple R-squared:  0.002126,   Adjusted R-squared:  -0.003763 
## F-statistic: 0.361 on 17 and 2881 DF,  p-value: 0.9921
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     1.0779549203    -0.0001760021     0.0060270781     0.0102945423 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0197099870    -0.0090325270     0.0053643661    -0.0078120124 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     0.0001711704    -0.0018660383     0.0065067456     0.0012455538 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     0.0042574800    -0.0058063974     0.0213426106     0.0012915184 
##      sharesbas_n workingcapital_n 
##    -0.0128522227    -0.0030276565 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.1789 -0.1740 -0.0577  0.0861  9.7723 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.1244176  0.0080601 139.505  < 2e-16 ***
## cashnequsd_n      0.0101455  0.0127910   0.793   0.4277    
## de_n             -0.0463170  0.0093210  -4.969 7.11e-07 ***
## ebitda_n         -0.0228807  0.0271396  -0.843   0.3993    
## epsusd_n         -0.0002878  0.0090627  -0.032   0.9747    
## equityusd_n      -0.0297569  0.0158895  -1.873   0.0612 .  
## fcf_n             0.0237160  0.0151671   1.564   0.1180    
## revenueusd_n     -0.0159993  0.0141274  -1.133   0.2575    
## gp_n             -0.0206879  0.0175935  -1.176   0.2397    
## liabilities_n     0.0313528  0.0176401   1.777   0.0756 .  
## ncff_n            0.0028819  0.0114682   0.251   0.8016    
## ncfi_n            0.0021917  0.0124281   0.176   0.8600    
## ncfo_n           -0.0174223  0.0209238  -0.833   0.4051    
## netinc_n          0.0116724  0.0190718   0.612   0.5406    
## pb_n              0.0725291  0.0084498   8.584  < 2e-16 ***
## pe1_n            -0.0099871  0.0068224  -1.464   0.1433    
## sharesbas_n       0.0150355  0.0119903   1.254   0.2099    
## workingcapital_n -0.0018128  0.0130437  -0.139   0.8895    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4343 on 2949 degrees of freedom
## Multiple R-squared:  0.03533,    Adjusted R-squared:  0.02977 
## F-statistic: 6.352 on 17 and 2949 DF,  p-value: 5.891e-15
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     1.1244176203     0.0101455170    -0.0463170081    -0.0228807075 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##    -0.0002877731    -0.0297568690     0.0237160400    -0.0159993274 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##    -0.0206878519     0.0313527633     0.0028819445     0.0021916891 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##    -0.0174222921     0.0116723894     0.0725290948    -0.0099870834 
##      sharesbas_n workingcapital_n 
##     0.0150355215    -0.0018128439 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.8593 -0.1027 -0.0067  0.0775  4.1164 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.9657672  0.0044754 215.794  < 2e-16 ***
## cashnequsd_n     -0.0062570  0.0071805  -0.871   0.3836    
## de_n             -0.0014130  0.0055192  -0.256   0.7980    
## ebitda_n         -0.0015179  0.0209664  -0.072   0.9423    
## epsusd_n          0.0363460  0.0057450   6.327 2.89e-10 ***
## equityusd_n      -0.0016980  0.0085154  -0.199   0.8420    
## fcf_n            -0.0154614  0.0089293  -1.732   0.0835 .  
## revenueusd_n      0.0159357  0.0079413   2.007   0.0449 *  
## gp_n             -0.0066066  0.0107065  -0.617   0.5372    
## liabilities_n     0.0091190  0.0104270   0.875   0.3819    
## ncff_n            0.0010090  0.0063998   0.158   0.8747    
## ncfi_n           -0.0009621  0.0073953  -0.130   0.8965    
## ncfo_n            0.0256372  0.0119958   2.137   0.0327 *  
## netinc_n         -0.0042161  0.0158853  -0.265   0.7907    
## pb_n              0.0008507  0.0053369   0.159   0.8734    
## pe1_n             0.0073280  0.0039621   1.850   0.0645 .  
## sharesbas_n      -0.0024332  0.0066236  -0.367   0.7134    
## workingcapital_n  0.0038923  0.0072523   0.537   0.5915    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.239 on 2906 degrees of freedom
## Multiple R-squared:  0.03725,    Adjusted R-squared:  0.03162 
## F-statistic: 6.614 on 17 and 2906 DF,  p-value: 9.298e-16
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     0.9657672340    -0.0062570260    -0.0014130189    -0.0015179185 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0363460212    -0.0016979991    -0.0154614220     0.0159357070 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##    -0.0066065531     0.0091189683     0.0010090440    -0.0009621214 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     0.0256371898    -0.0042160718     0.0008506684     0.0073280435 
##      sharesbas_n workingcapital_n 
##    -0.0024332108     0.0038923450 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.97444 -0.10145 -0.01377  0.08218  2.48002 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.0100803  0.0038945 259.359  < 2e-16 ***
## cashnequsd_n      0.0118107  0.0062035   1.904    0.057 .  
## de_n             -0.0025228  0.0045515  -0.554    0.579    
## ebitda_n         -0.0174550  0.0180692  -0.966    0.334    
## epsusd_n          0.0266494  0.0052449   5.081 3.99e-07 ***
## equityusd_n      -0.0088718  0.0074246  -1.195    0.232    
## fcf_n            -0.0008175  0.0080334  -0.102    0.919    
## revenueusd_n      0.0003193  0.0067595   0.047    0.962    
## gp_n             -0.0023617  0.0091825  -0.257    0.797    
## liabilities_n     0.0049472  0.0090634   0.546    0.585    
## ncff_n            0.0038283  0.0059145   0.647    0.518    
## ncfi_n            0.0031718  0.0065314   0.486    0.627    
## ncfo_n            0.0179212  0.0112461   1.594    0.111    
## netinc_n         -0.0018691  0.0127154  -0.147    0.883    
## pb_n              0.0057576  0.0047160   1.221    0.222    
## pe1_n            -0.0006006  0.0036653  -0.164    0.870    
## sharesbas_n       0.0066495  0.0059041   1.126    0.260    
## workingcapital_n -0.0023348  0.0060591  -0.385    0.700    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2105 on 2919 degrees of freedom
## Multiple R-squared:  0.01439,    Adjusted R-squared:  0.008646 
## F-statistic: 2.506 on 17 and 2919 DF,  p-value: 0.0005855
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     1.0100803307     0.0118106846    -0.0025227540    -0.0174550010 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0266494241    -0.0088717981    -0.0008174622     0.0003193082 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##    -0.0023616682     0.0049472143     0.0038282908     0.0031718286 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     0.0179212336    -0.0018691390     0.0057575836    -0.0006005884 
##      sharesbas_n workingcapital_n 
##     0.0066495373    -0.0023348239 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.9287 -0.1288 -0.0059  0.1081  9.3448 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       9.878e-01  5.743e-03 172.003  < 2e-16 ***
## cashnequsd_n      8.820e-03  8.978e-03   0.982 0.325990    
## de_n             -7.630e-03  6.549e-03  -1.165 0.244084    
## ebitda_n         -4.369e-02  2.207e-02  -1.980 0.047778 *  
## epsusd_n          3.159e-02  7.733e-03   4.085 4.53e-05 ***
## equityusd_n       7.666e-03  1.071e-02   0.716 0.474017    
## fcf_n             2.413e-02  1.047e-02   2.304 0.021266 *  
## revenueusd_n     -5.240e-07  9.758e-03   0.000 0.999957    
## gp_n              3.132e-02  1.252e-02   2.502 0.012416 *  
## liabilities_n     1.179e-02  1.236e-02   0.954 0.340142    
## ncff_n            6.082e-03  7.400e-03   0.822 0.411192    
## ncfi_n            2.127e-03  8.770e-03   0.243 0.808354    
## ncfo_n           -1.660e-02  1.636e-02  -1.014 0.310445    
## netinc_n          4.356e-03  1.571e-02   0.277 0.781664    
## pb_n              2.339e-02  6.337e-03   3.690 0.000228 ***
## pe1_n             1.062e-03  5.858e-03   0.181 0.856109    
## sharesbas_n      -1.677e-02  8.632e-03  -1.942 0.052188 .  
## workingcapital_n -4.168e-03  9.245e-03  -0.451 0.652169    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3084 on 2892 degrees of freedom
## Multiple R-squared:  0.02131,    Adjusted R-squared:  0.01556 
## F-statistic: 3.704 on 17 and 2892 DF,  p-value: 4.103e-07
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     9.877561e-01     8.819925e-03    -7.629922e-03    -4.369446e-02 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     3.158713e-02     7.665846e-03     2.412851e-02    -5.239789e-07 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     3.132127e-02     1.179486e-02     6.082073e-03     2.127348e-03 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##    -1.659867e-02     4.355670e-03     2.338616e-02     1.062316e-03 
##      sharesbas_n workingcapital_n 
##    -1.676590e-02    -4.167795e-03 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.0767 -0.1579 -0.0222  0.1090  9.2718 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.046962   0.006960 150.418  < 2e-16 ***
## cashnequsd_n      0.008706   0.011453   0.760 0.447228    
## de_n             -0.030122   0.008291  -3.633 0.000285 ***
## ebitda_n         -0.032339   0.025047  -1.291 0.196753    
## epsusd_n          0.007842   0.007377   1.063 0.287881    
## equityusd_n      -0.018382   0.013843  -1.328 0.184314    
## fcf_n             0.029829   0.012093   2.467 0.013694 *  
## revenueusd_n      0.002303   0.012474   0.185 0.853521    
## gp_n              0.004026   0.015750   0.256 0.798289    
## liabilities_n     0.016725   0.015224   1.099 0.272032    
## ncff_n            0.002375   0.009405   0.253 0.800647    
## ncfi_n           -0.002119   0.010125  -0.209 0.834239    
## ncfo_n           -0.028778   0.016461  -1.748 0.080520 .  
## netinc_n          0.024484   0.016957   1.444 0.148877    
## pb_n              0.041362   0.007784   5.314 1.15e-07 ***
## pe1_n            -0.003330   0.007427  -0.448 0.653950    
## sharesbas_n       0.014326   0.010442   1.372 0.170174    
## workingcapital_n -0.008316   0.011731  -0.709 0.478448    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3803 on 3031 degrees of freedom
## Multiple R-squared:  0.01705,    Adjusted R-squared:  0.01153 
## F-statistic: 3.092 on 17 and 3031 DF,  p-value: 1.886e-05
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.046961766      0.008705597     -0.030121776     -0.032339042 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.007842033     -0.018381638      0.029829246      0.002303163 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      0.004025533      0.016725328      0.002375124     -0.002119043 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     -0.028778195      0.024483774      0.041362001     -0.003329704 
##      sharesbas_n workingcapital_n 
##      0.014326462     -0.008315666 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.0702 -0.0984 -0.0168  0.0729  3.6536 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.015546   0.004476 226.879  < 2e-16 ***
## cashnequsd_n     -0.002881   0.007409  -0.389   0.6974    
## de_n              0.003155   0.005088   0.620   0.5353    
## ebitda_n          0.011151   0.021394   0.521   0.6022    
## epsusd_n          0.030992   0.005998   5.167 2.54e-07 ***
## equityusd_n      -0.010728   0.008600  -1.247   0.2123    
## fcf_n            -0.008465   0.010189  -0.831   0.4061    
## revenueusd_n      0.002751   0.008108   0.339   0.7344    
## gp_n             -0.005413   0.010095  -0.536   0.5919    
## liabilities_n    -0.007595   0.009706  -0.782   0.4340    
## ncff_n            0.005152   0.006032   0.854   0.3931    
## ncfi_n            0.007339   0.007481   0.981   0.3267    
## ncfo_n            0.018955   0.013390   1.416   0.1570    
## netinc_n         -0.020254   0.015136  -1.338   0.1810    
## pb_n              0.003227   0.004585   0.704   0.4817    
## pe1_n             0.003429   0.004746   0.722   0.4701    
## sharesbas_n       0.015358   0.006541   2.348   0.0189 *  
## workingcapital_n  0.006685   0.007503   0.891   0.3730    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2409 on 2952 degrees of freedom
## Multiple R-squared:  0.01398,    Adjusted R-squared:  0.008303 
## F-statistic: 2.462 on 17 and 2952 DF,  p-value: 0.0007486
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.015546035     -0.002880503      0.003154814      0.011151179 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.030991861     -0.010728027     -0.008465397      0.002751156 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.005413008     -0.007594645      0.005151904      0.007339201 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.018955098     -0.020254242      0.003226630      0.003428626 
##      sharesbas_n workingcapital_n 
##      0.015358152      0.006684846 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.9544 -0.1514 -0.0110  0.1166  4.7439 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.8885908  0.0055455 160.235  < 2e-16 ***
## cashnequsd_n     -0.0135674  0.0094763  -1.432 0.152331    
## de_n             -0.0223872  0.0056202  -3.983 6.96e-05 ***
## ebitda_n         -0.0012597  0.0169229  -0.074 0.940668    
## epsusd_n          0.0220123  0.0061809   3.561 0.000375 ***
## equityusd_n      -0.0054171  0.0103235  -0.525 0.599805    
## fcf_n             0.0027840  0.0114814   0.242 0.808426    
## revenueusd_n     -0.0010612  0.0096297  -0.110 0.912255    
## gp_n             -0.0004978  0.0121695  -0.041 0.967376    
## liabilities_n    -0.0035640  0.0110125  -0.324 0.746239    
## ncff_n            0.0037843  0.0083937   0.451 0.652137    
## ncfi_n            0.0104430  0.0089251   1.170 0.242068    
## ncfo_n            0.0112125  0.0156954   0.714 0.475049    
## netinc_n          0.0276644  0.0112904   2.450 0.014333 *  
## pb_n              0.0297970  0.0063648   4.681 2.98e-06 ***
## pe1_n             0.0017597  0.0062499   0.282 0.778307    
## sharesbas_n      -0.0029796  0.0077015  -0.387 0.698872    
## workingcapital_n  0.0039041  0.0090917   0.429 0.667654    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2929 on 2917 degrees of freedom
## Multiple R-squared:  0.03455,    Adjusted R-squared:  0.02892 
## F-statistic:  6.14 on 17 and 2917 DF,  p-value: 2.668e-14
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     0.8885907674    -0.0135673856    -0.0223871610    -0.0012596841 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0220122571    -0.0054171423     0.0027839927    -0.0010612370 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##    -0.0004977758    -0.0035640025     0.0037842557     0.0104430203 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     0.0112125154     0.0276644462     0.0297969845     0.0017596601 
##      sharesbas_n workingcapital_n 
##    -0.0029795848     0.0039041170 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.9270 -0.1261  0.0009  0.1163  6.6550 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.9442207  0.0050238 187.948  < 2e-16 ***
## cashnequsd_n      0.0022711  0.0084890   0.268   0.7891    
## de_n             -0.0087745  0.0059138  -1.484   0.1380    
## ebitda_n         -0.0026430  0.0180231  -0.147   0.8834    
## epsusd_n          0.0413258  0.0066371   6.226 5.46e-10 ***
## equityusd_n       0.0108916  0.0095122   1.145   0.2523    
## fcf_n             0.0146926  0.0121514   1.209   0.2267    
## revenueusd_n      0.0044221  0.0087738   0.504   0.6143    
## gp_n             -0.0068771  0.0109429  -0.628   0.5298    
## liabilities_n     0.0011850  0.0102469   0.116   0.9079    
## ncff_n            0.0034061  0.0071176   0.479   0.6323    
## ncfi_n            0.0093050  0.0079947   1.164   0.2446    
## ncfo_n            0.0001371  0.0166571   0.008   0.9934    
## netinc_n         -0.0153577  0.0129551  -1.185   0.2359    
## pb_n              0.0148945  0.0060074   2.479   0.0132 *  
## pe1_n             0.0078760  0.0045762   1.721   0.0853 .  
## sharesbas_n       0.0027947  0.0072016   0.388   0.6980    
## workingcapital_n -0.0049031  0.0081686  -0.600   0.5484    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2688 on 2902 degrees of freedom
## Multiple R-squared:  0.023,  Adjusted R-squared:  0.01728 
## F-statistic: 4.019 on 17 and 2902 DF,  p-value: 5.328e-08
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     0.9442206865     0.0022710774    -0.0087745201    -0.0026430098 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0413257993     0.0108915837     0.0146926259     0.0044220827 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##    -0.0068770731     0.0011849757     0.0034061078     0.0093049824 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     0.0001370874    -0.0153577242     0.0148944871     0.0078759669 
##      sharesbas_n workingcapital_n 
##     0.0027947221    -0.0049030674 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.9544 -0.1514 -0.0110  0.1166  4.7439 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.8885908  0.0055455 160.235  < 2e-16 ***
## cashnequsd_n     -0.0135674  0.0094763  -1.432 0.152331    
## de_n             -0.0223872  0.0056202  -3.983 6.96e-05 ***
## ebitda_n         -0.0012597  0.0169229  -0.074 0.940668    
## epsusd_n          0.0220123  0.0061809   3.561 0.000375 ***
## equityusd_n      -0.0054171  0.0103235  -0.525 0.599805    
## fcf_n             0.0027840  0.0114814   0.242 0.808426    
## revenueusd_n     -0.0010612  0.0096297  -0.110 0.912255    
## gp_n             -0.0004978  0.0121695  -0.041 0.967376    
## liabilities_n    -0.0035640  0.0110125  -0.324 0.746239    
## ncff_n            0.0037843  0.0083937   0.451 0.652137    
## ncfi_n            0.0104430  0.0089251   1.170 0.242068    
## ncfo_n            0.0112125  0.0156954   0.714 0.475049    
## netinc_n          0.0276644  0.0112904   2.450 0.014333 *  
## pb_n              0.0297970  0.0063648   4.681 2.98e-06 ***
## pe1_n             0.0017597  0.0062499   0.282 0.778307    
## sharesbas_n      -0.0029796  0.0077015  -0.387 0.698872    
## workingcapital_n  0.0039041  0.0090917   0.429 0.667654    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2929 on 2917 degrees of freedom
## Multiple R-squared:  0.03455,    Adjusted R-squared:  0.02892 
## F-statistic:  6.14 on 17 and 2917 DF,  p-value: 2.668e-14
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##     0.8885907674    -0.0135673856    -0.0223871610    -0.0012596841 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     0.0220122571    -0.0054171423     0.0027839927    -0.0010612370 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##    -0.0004977758    -0.0035640025     0.0037842557     0.0104430203 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     0.0112125154     0.0276644462     0.0297969845     0.0017596601 
##      sharesbas_n workingcapital_n 
##    -0.0029795848     0.0039041170
print(beta_matrix)
##       (Intercept)  cashnequsd_n         de_n      ebitda_n      epsusd_n
##  [1,]   0.8788905 -0.0043161488 -0.017262155  0.0258161550  0.0190799459
##  [2,]   0.8788905 -0.0043161488 -0.017262155  0.0258161550  0.0190799459
##  [3,]   0.9458514 -0.0428068895  0.428906050 -0.0199313731  0.0327520415
##  [4,]   1.1227447 -0.0069652046  0.001199123 -0.0078248207  0.0271173666
##  [5,]   0.9826584  0.0024225680  0.010313471 -0.0119237016  0.0163807223
##  [6,]   0.9820513 -0.0057744053 -0.012213846 -0.0251710928  0.0172162573
##  [7,]   1.0226165 -0.0073483536 -0.009464200  0.0194795071  0.0259921791
##  [8,]   1.1326587  0.0074540869 -0.001537071 -0.0004742764  0.0126661989
##  [9,]   1.0473682  0.0020662276  0.004493970  0.0035653052  0.0219432255
## [10,]   1.0988404  0.0070186190 -0.006092690 -0.0100701801  0.0258091046
## [11,]   1.0779549 -0.0001760021  0.006027078  0.0102945423  0.0197099870
## [12,]   1.1244176  0.0101455170 -0.046317008 -0.0228807075 -0.0002877731
## [13,]   0.9657672 -0.0062570260 -0.001413019 -0.0015179185  0.0363460212
## [14,]   1.0100803  0.0118106846 -0.002522754 -0.0174550010  0.0266494241
## [15,]   0.9877561  0.0088199251 -0.007629922 -0.0436944631  0.0315871297
## [16,]   1.0469618  0.0087055975 -0.030121776 -0.0323390425  0.0078420334
## [17,]   1.0155460 -0.0028805026  0.003154814  0.0111511787  0.0309918606
## [18,]   0.8885908 -0.0135673856 -0.022387161 -0.0012596841  0.0220122571
## [19,]   0.9442207  0.0022710774 -0.008774520 -0.0026430098  0.0413257993
## [20,]   0.8885908 -0.0135673856 -0.022387161 -0.0012596841  0.0220122571
##        equityusd_n         fcf_n  revenueusd_n          gp_n liabilities_n
##  [1,] -0.016003077 -0.0033134352 -5.181383e-03  0.0022279625 -0.0046999241
##  [2,] -0.016003077 -0.0033134352 -5.181383e-03  0.0022279625 -0.0046999241
##  [3,]  0.031469606  0.0368658317 -2.273328e-03 -0.0196365440 -0.1275810425
##  [4,] -0.010380674  0.0124861547  9.139129e-03 -0.0039288370  0.0001761497
##  [5,] -0.012838624  0.0254930678 -4.831648e-03  0.0140562705  0.0058806848
##  [6,]  0.001750056  0.0094593301 -2.535755e-03  0.0037080501  0.0069105982
##  [7,] -0.005062053  0.0083574601  1.349211e-02  0.0015231951  0.0062931126
##  [8,] -0.009062196  0.0100693410  7.135091e-03 -0.0134158058  0.0045670308
##  [9,] -0.016624721  0.0043539818 -7.392527e-03  0.0117395498  0.0085783079
## [10,] -0.023573922  0.0017789229  9.467091e-03  0.0090535453 -0.0028651327
## [11,] -0.009032527  0.0053643661 -7.812012e-03  0.0001711704 -0.0018660383
## [12,] -0.029756869  0.0237160400 -1.599933e-02 -0.0206878519  0.0313527633
## [13,] -0.001697999 -0.0154614220  1.593571e-02 -0.0066065531  0.0091189683
## [14,] -0.008871798 -0.0008174622  3.193082e-04 -0.0023616682  0.0049472143
## [15,]  0.007665846  0.0241285079 -5.239789e-07  0.0313212655  0.0117948602
## [16,] -0.018381638  0.0298292465  2.303163e-03  0.0040255334  0.0167253277
## [17,] -0.010728027 -0.0084653972  2.751156e-03 -0.0054130083 -0.0075946450
## [18,] -0.005417142  0.0027839927 -1.061237e-03 -0.0004977758 -0.0035640025
## [19,]  0.010891584  0.0146926259  4.422083e-03 -0.0068770731  0.0011849757
## [20,] -0.005417142  0.0027839927 -1.061237e-03 -0.0004977758 -0.0035640025
##             ncff_n        ncfi_n        ncfo_n     netinc_n          pb_n
##  [1,] -0.005407592  0.0019380137  0.0118384669  0.002424616  0.0382133198
##  [2,] -0.005407592  0.0019380137  0.0118384669  0.002424616  0.0382133198
##  [3,]  0.003944086 -0.0004256415 -0.0055202180  0.027444713 -0.9197303263
##  [4,]  0.004672207  0.0035366541 -0.0053632509 -0.011456173  0.0266307597
##  [5,]  0.001104371 -0.0081863164 -0.0164564075  0.010193037  0.0010554296
##  [6,]  0.003741487  0.0067792891  0.0025473116  0.020284573  0.0291012648
##  [7,]  0.001829869  0.0095761527 -0.0019712597 -0.021116413  0.0326533721
##  [8,]  0.003688204  0.0041309594  0.0031214186 -0.016646758  0.0282163322
##  [9,]  0.005078370  0.0061015843  0.0010322861 -0.004610528  0.0041752748
## [10,]  0.008489286  0.0029976101  0.0002329960 -0.008919439  0.0130289586
## [11,]  0.006506746  0.0012455538  0.0042574800 -0.005806397  0.0213426106
## [12,]  0.002881944  0.0021916891 -0.0174222921  0.011672389  0.0725290948
## [13,]  0.001009044 -0.0009621214  0.0256371898 -0.004216072  0.0008506684
## [14,]  0.003828291  0.0031718286  0.0179212336 -0.001869139  0.0057575836
## [15,]  0.006082073  0.0021273483 -0.0165986711  0.004355670  0.0233861569
## [16,]  0.002375124 -0.0021190430 -0.0287781949  0.024483774  0.0413620005
## [17,]  0.005151904  0.0073392010  0.0189550976 -0.020254242  0.0032266298
## [18,]  0.003784256  0.0104430203  0.0112125154  0.027664446  0.0297969845
## [19,]  0.003406108  0.0093049824  0.0001370874 -0.015357724  0.0148944871
## [20,]  0.003784256  0.0104430203  0.0112125154  0.027664446  0.0297969845
##               pe1_n   sharesbas_n workingcapital_n
##  [1,]  1.539296e-02 -4.727553e-05    -0.0046998624
##  [2,]  1.539296e-02 -4.727553e-05    -0.0046998624
##  [3,]  3.085291e-02  1.047645e-01    -0.0182780017
##  [4,] -5.751800e-03  9.251791e-03     0.0080114680
##  [5,]  3.298180e-03 -1.991346e-03    -0.0007457874
##  [6,]  2.635297e-03  2.990234e-03    -0.0161457922
##  [7,]  1.780777e-03 -6.782725e-03     0.0040979674
##  [8,]  2.890330e-03  1.116457e-03     0.0021681931
##  [9,] -7.045462e-04  8.114760e-03    -0.0032876576
## [10,] -3.912514e-05  6.323761e-03    -0.0012274764
## [11,]  1.291518e-03 -1.285222e-02    -0.0030276565
## [12,] -9.987083e-03  1.503552e-02    -0.0018128439
## [13,]  7.328043e-03 -2.433211e-03     0.0038923450
## [14,] -6.005884e-04  6.649537e-03    -0.0023348239
## [15,]  1.062316e-03 -1.676590e-02    -0.0041677947
## [16,] -3.329704e-03  1.432646e-02    -0.0083156662
## [17,]  3.428626e-03  1.535815e-02     0.0066848459
## [18,]  1.759660e-03 -2.979585e-03     0.0039041170
## [19,]  7.875967e-03  2.794722e-03    -0.0049030674
## [20,]  1.759660e-03 -2.979585e-03     0.0039041170
df_date  <- unique(stock_factors_date$calendardate)
df_date <- data.frame(matrix(unlist(caldates), nrow=20, byrow=T))
colnames(df_date)[1] <- "dt"
beta_matrix <- cbind(beta_matrix, df_date)
colnames(beta_matrix)[1] <- "intercept"
new_beta_matrix <- beta_matrix[1,]
pred_beta_list <- new_beta_matrix[1,]
#### Function compute future date betas  --------


pred_beta_list <- find_future_beta(beta_matrix)

###### Compute   return_price with predicted Betas ############# 

date16_pred_beta.list <- as.list(pred_beta_list[1,-19])
date17_pred_beta.list <- as.list(pred_beta_list[2,-19])
date18_pred_beta.list <- as.list(pred_beta_list[3,-19])
date19_pred_beta.list <- as.list(pred_beta_list[4,-19])
stock_factor_2014_12_31 <- as.data.frame(my.list[16])

stock_factor_2014_12_31<- pred_stock_returns(stock_factor_2014_12_31,date16_pred_beta.list)

stock_factor_2015_03_31 <- as.data.frame(my.list[17])
stock_factor_2015_03_31<- pred_stock_returns(stock_factor_2015_03_31,date17_pred_beta.list)
stock_factor_2015_06_30 <- as.data.frame(my.list[18])
stock_factor_2015_06_30<- pred_stock_returns(stock_factor_2015_06_30,date18_pred_beta.list)
stock_factor_2015_09_30 <- as.data.frame(my.list[19])
stock_factor_2015_09_30<- pred_stock_returns(stock_factor_2015_09_30,date19_pred_beta.list)


#View(stock_factor_2014_12_31)
#View(stock_factor_2015_03_31)
#View(stock_factor_2014_06_30)
#View(stock_factor_2015_09_30)
#stock_factor_2015_09_30 <- na.omit(stock_factor_2015_09_30)

sorted_stock_factor_2014_12_31 <-stock_factor_2014_12_31[order(-stock_factor_2014_12_31$pred_returnPrice),] 
sorted_stock_factor_2015_03_31 <-stock_factor_2015_03_31[order(-stock_factor_2015_03_31$pred_returnPrice),] 
sorted_stock_factor_2015_06_30 <-stock_factor_2015_06_30[order(-stock_factor_2015_06_30$pred_returnPrice),] 
sorted_stock_factor_2015_09_30 <-stock_factor_2015_09_30[order(-stock_factor_2015_09_30$pred_returnPrice),] 



qlist1   <- make_quantiles(sorted_stock_factor_2014_12_31)
qlist2  <- make_quantiles(sorted_stock_factor_2015_03_31)
qlist3  <- make_quantiles(sorted_stock_factor_2015_06_30)
qlist4   <- make_quantiles(sorted_stock_factor_2015_09_30 )


x1<- unlist(qlist1[1])
y1<- unlist(qlist1[2])
x2 <- unlist(qlist2[1])
y2 <- unlist(qlist2[2])
x3 <- unlist(qlist3[1])
y3 <- unlist(qlist3[2])
x4 <- unlist(qlist4[1])
y4 <- unlist(qlist4[2])



x1_name <- "dt16_q"
y1_name <- "dt16_pred"
x2_name <- "dt17_q"
y2_name <- "dt17_pred"
x3_name <- "dt18_q"
y3_name <- "dt18_pred"
x4_name <- "dt9_q"
y4_name <- "dt9_pred"




final_quantile<- data.frame(x1,y1,x2,y2,x3,y3,x4,y4)
names(final_quantile) <- c(x1_name,y1_name,x2_name,y2_name,x3_name,y3_name,x4_name,y4_name)
print(final_quantile)
##     dt16_q dt16_pred    dt17_q dt17_pred    dt18_q dt18_pred     dt9_q
## 1 1.035033 0.9912871 1.0347609 1.0235244 0.9072839 0.9986483 0.9676522
## 2 1.029918 0.9564394 1.0317612 0.9733213 0.9120856 0.9660427 0.9620360
## 3 1.020743 0.9489124 1.0231108 0.9615536 0.8963722 0.9579110 0.9373650
## 4 1.027310 0.9373252 0.9904714 0.9501743 0.8495582 0.9468296 0.9343749
## 5 1.120513 0.8884710 0.9891082 0.9012874 0.8498672 0.8995058 0.9126117
##    dt9_pred
## 1 0.9835349
## 2 0.9493933
## 3 0.9398078
## 4 0.9294456
## 5 0.8862982