# 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 = 1
  end = 1
  end_file <- nrow(sorted_data)
  #print(end_file)
  quantile_list = list()
  quantile_pred_list = list()
  for (i in 1:5){
    start = 1+20*(i-1)
    
    if( i == 5 ) {
      end <- end_file
    }else {
      end <- i*20
    }
    #print(start)
    #print(end)
    Quantile <- sorted_data[start:end,]
    quantile_list[i] <- mean(Quantile$return_price)
    quantile_pred_list[i] <- mean(Quantile$pred_returnPrice)
  }
  
  list (quantile_list ,  quantile_pred_list) 
}


######################################################
#######  Code starts here  ###########################
#######################################################





sink()
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)
data_file_ARQ <- read.csv('/Users/jyothi/Desktop/predictive/data_file_ARQ.csv', header = T, sep =',')

IWB_holdings <- read.delim("/Users/jyothi/Desktop/predictive/IWB_holdings.csv")

# Information Technology
IWB_holdings_sector <- subset(IWB_holdings, Sector == 'Information Technology')
#View(IWB_holdings)
merge_df <- merge(data_file_ARQ, IWB_holdings_sector)

colnames(merge_df)
##   [1] "ticker"         "dimension"      "calendardate"   "datekey"       
##   [5] "reportperiod"   "accoci"         "assets"         "assetsavg"     
##   [9] "assetsc"        "assetsnc"       "assetturnover"  "bvps"          
##  [13] "capex"          "cashneq"        "cashnequsd"     "cor"           
##  [17] "currentratio"   "de"             "debt"           "debtusd"       
##  [21] "depamor"        "divyield"       "dps"            "ebit"          
##  [25] "ebitda"         "ebitdamargin"   "ebitdausd"      "ebitusd"       
##  [29] "ebt"            "eps"            "epsdil"         "epsusd"        
##  [33] "equity"         "equityavg"      "equityusd"      "ev"            
##  [37] "evebit"         "evebitda"       "fcf"            "fcfps"         
##  [41] "fxusd"          "gp"             "grossmargin"    "intangibles"   
##  [45] "intexp"         "invcap"         "invcapavg"      "inventory"     
##  [49] "liabilities"    "liabilitiesc"   "liabilitiesnc"  "marketcap"     
##  [53] "ncf"            "ncfcommon"      "ncfdebt"        "ncfdiv"        
##  [57] "ncff"           "ncfi"           "ncfo"           "ncfx"          
##  [61] "netinc"         "netinccmn"      "netinccmnusd"   "netincdis"     
##  [65] "netmargin"      "payables"       "payoutratio"    "pb"            
##  [69] "pe"             "pe1"            "prefdivis"      "price"         
##  [73] "ps"             "ps1"            "receivables"    "retearn"       
##  [77] "revenue"        "revenueusd"     "rnd"            "roa"           
##  [81] "roe"            "roic"           "ros"            "sgna"          
##  [85] "sharefactor"    "sharesbas"      "shareswa"       "shareswadil"   
##  [89] "sps"            "tangibles"      "taxexp"         "tbvps"         
##  [93] "workingcapital" "Name"           "Asset.Class"    "Weight...."    
##  [97] "Price"          "Shares"         "Market.Value"   "Notional.Value"
## [101] "Sector"         "SEDOL"          "ISIN"           "Exchange"
merge_df <- merge_df[-c(94:104) ]
#View(merge_df)
stock_data <- merge_df

colnames(stock_data)
##  [1] "ticker"         "dimension"      "calendardate"   "datekey"       
##  [5] "reportperiod"   "accoci"         "assets"         "assetsavg"     
##  [9] "assetsc"        "assetsnc"       "assetturnover"  "bvps"          
## [13] "capex"          "cashneq"        "cashnequsd"     "cor"           
## [17] "currentratio"   "de"             "debt"           "debtusd"       
## [21] "depamor"        "divyield"       "dps"            "ebit"          
## [25] "ebitda"         "ebitdamargin"   "ebitdausd"      "ebitusd"       
## [29] "ebt"            "eps"            "epsdil"         "epsusd"        
## [33] "equity"         "equityavg"      "equityusd"      "ev"            
## [37] "evebit"         "evebitda"       "fcf"            "fcfps"         
## [41] "fxusd"          "gp"             "grossmargin"    "intangibles"   
## [45] "intexp"         "invcap"         "invcapavg"      "inventory"     
## [49] "liabilities"    "liabilitiesc"   "liabilitiesnc"  "marketcap"     
## [53] "ncf"            "ncfcommon"      "ncfdebt"        "ncfdiv"        
## [57] "ncff"           "ncfi"           "ncfo"           "ncfx"          
## [61] "netinc"         "netinccmn"      "netinccmnusd"   "netincdis"     
## [65] "netmargin"      "payables"       "payoutratio"    "pb"            
## [69] "pe"             "pe1"            "prefdivis"      "price"         
## [73] "ps"             "ps1"            "receivables"    "retearn"       
## [77] "revenue"        "revenueusd"     "rnd"            "roa"           
## [81] "roe"            "roic"           "ros"            "sgna"          
## [85] "sharefactor"    "sharesbas"      "shareswa"       "shareswadil"   
## [89] "sps"            "tangibles"      "taxexp"         "tbvps"         
## [93] "workingcapital"
#colnames(stock_data)
stock_data <- compute_return_price(stock_data)
stock_factors <- na.omit(stock_data[indicator_list])
#View(stock_factors)
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.00000000  0.69639811  0.097921199  0.724801047
## cashnequsd      0.69639811  1.00000000 -0.050151023  0.637595890
## de              0.09792120 -0.05015102  1.000000000  0.029416971
## ebitda          0.72480105  0.63759589  0.029416971  1.000000000
## ebitusd         0.61585197  0.55873289  0.021321732  0.967781732
## epsusd          0.23199783  0.15043216  0.058831330  0.483944037
## equityusd       0.83699575  0.68823929 -0.077642059  0.623766881
## fcf             0.48959441  0.50065483  0.019141758  0.633326398
## revenueusd      0.68063844  0.46364081  0.058721442  0.598128410
## gp              0.80919764  0.74396038  0.004867728  0.814970143
## liabilities     0.90624208  0.55180359  0.211711732  0.644739894
## ncff           -0.17918768 -0.17367063  0.075074390 -0.288316119
## ncfi           -0.23789751 -0.10626588 -0.051714648 -0.153728030
## ncfo            0.57740498  0.56072944  0.016613246  0.692782206
## netinc          0.55974446  0.57128194 -0.021246769  0.929676449
## pb             -0.10101095 -0.09426541  0.698364849 -0.089557268
## pe1            -0.04310139 -0.01916197  0.002213804 -0.001772147
## sharesbas       0.55612024  0.55985953 -0.053109188  0.444279257
## tangibles       0.85843710  0.70243765  0.084979391  0.680255692
## workingcapital  0.62651170  0.57397347  0.038326287  0.495174066
##                     ebitusd       epsusd   equityusd         fcf
## assets          0.615851971  0.231997828  0.83699575  0.48959441
## cashnequsd      0.558732886  0.150432157  0.68823929  0.50065483
## de              0.021321732  0.058831330 -0.07764206  0.01914176
## ebitda          0.967781732  0.483944037  0.62376688  0.63332640
## ebitusd         1.000000000  0.525699784  0.52987713  0.61176561
## epsusd          0.525699784  1.000000000  0.16011215  0.22138204
## equityusd       0.529877127  0.160112149  1.00000000  0.44965606
## fcf             0.611765614  0.221382041  0.44965606  1.00000000
## revenueusd      0.544506432  0.292230498  0.48260532  0.33448774
## gp              0.765096941  0.225003356  0.71489175  0.63374488
## liabilities     0.548711525  0.237645613  0.52756536  0.41378577
## ncff           -0.280664193 -0.134915724 -0.17981275 -0.24378715
## ncfi           -0.123915975 -0.002043466 -0.18713471 -0.16736464
## ncfo            0.642388261  0.226854602  0.53318574  0.97586985
## netinc          0.963005098  0.558293818  0.53502449  0.57589042
## pb             -0.076718009 -0.068649890 -0.13725153 -0.03520709
## pe1             0.007698045  0.005097213 -0.02403983 -0.01112517
## sharesbas       0.403023137 -0.117372306  0.63446267  0.37717047
## tangibles       0.600945352  0.283854898  0.70393622  0.44949108
## workingcapital  0.472787053  0.227301301  0.66377933  0.35334311
##                 revenueusd           gp liabilities        ncff
## assets          0.68063844  0.809197637  0.90624208 -0.17918768
## cashnequsd      0.46364081  0.743960377  0.55180359 -0.17367063
## de              0.05872144  0.004867728  0.21171173  0.07507439
## ebitda          0.59812841  0.814970143  0.64473989 -0.28831612
## ebitusd         0.54450643  0.765096941  0.54871152 -0.28066419
## epsusd          0.29223050  0.225003356  0.23764561 -0.13491572
## equityusd       0.48260532  0.714891751  0.52756536 -0.17981275
## fcf             0.33448774  0.633744881  0.41378577 -0.24378715
## revenueusd      1.00000000  0.642293733  0.68658752 -0.18966980
## gp              0.64229373  1.000000000  0.70622983 -0.28853777
## liabilities     0.68658752  0.706229829  1.00000000 -0.14047576
## ncff           -0.18966980 -0.288537769 -0.14047576  1.00000000
## ncfi           -0.11705779 -0.181130404 -0.22461909 -0.48806912
## ncfo            0.40462296  0.681430695  0.48547018 -0.24789622
## netinc          0.49725287  0.727329918  0.45769383 -0.27637493
## pb             -0.07848427 -0.061518602 -0.05072636  0.04956667
## pe1            -0.05019492 -0.052943518 -0.04883284 -0.00759318
## sharesbas       0.24048668  0.657417877  0.37444197 -0.16100976
## tangibles       0.77179559  0.764493936  0.79144821 -0.15967543
## workingcapital  0.52069166  0.538704046  0.46174928 -0.08880563
##                        ncfi        ncfo      netinc           pb
## assets         -0.237897513  0.57740498  0.55974446 -0.101010949
## cashnequsd     -0.106265885  0.56072944  0.57128194 -0.094265406
## de             -0.051714648  0.01661325 -0.02124677  0.698364849
## ebitda         -0.153728030  0.69278221  0.92967645 -0.089557268
## ebitusd        -0.123915975  0.64238826  0.96300510 -0.076718009
## epsusd         -0.002043466  0.22685460  0.55829382 -0.068649890
## equityusd      -0.187134709  0.53318574  0.53502449 -0.137251528
## fcf            -0.167364642  0.97586985  0.57589042 -0.035207087
## revenueusd     -0.117057788  0.40462296  0.49725287 -0.078484265
## gp             -0.181130404  0.68143069  0.72732992 -0.061518602
## liabilities    -0.224619091  0.48547018  0.45769383 -0.050726358
## ncff           -0.488069121 -0.24789622 -0.27637493  0.049566673
## ncfi            1.000000000 -0.20377781 -0.11190257  0.038038105
## ncfo           -0.203777812  1.00000000  0.60570115 -0.052941711
## netinc         -0.111902568  0.60570115  1.00000000 -0.084997099
## pb              0.038038105 -0.05294171 -0.08499710  1.000000000
## pe1             0.015625456 -0.01461507  0.01895074 -0.008853833
## sharesbas      -0.152221311  0.41523598  0.39546374 -0.051965768
## tangibles      -0.221951074  0.54210226  0.57801199 -0.091894073
## workingcapital -0.168723678  0.40180602  0.48682487 -0.083543879
##                         pe1   sharesbas   tangibles workingcapital
## assets         -0.043101391  0.55612024  0.85843710    0.626511697
## cashnequsd     -0.019161966  0.55985953  0.70243765    0.573973470
## de              0.002213804 -0.05310919  0.08497939    0.038326287
## ebitda         -0.001772147  0.44427926  0.68025569    0.495174066
## ebitusd         0.007698045  0.40302314  0.60094535    0.472787053
## epsusd          0.005097213 -0.11737231  0.28385490    0.227301301
## equityusd      -0.024039832  0.63446267  0.70393622    0.663779327
## fcf            -0.011125172  0.37717047  0.44949108    0.353343110
## revenueusd     -0.050194918  0.24048668  0.77179559    0.520691658
## gp             -0.052943518  0.65741788  0.76449394    0.538704046
## liabilities    -0.048832835  0.37444197  0.79144821    0.461749282
## ncff           -0.007593180 -0.16100976 -0.15967543   -0.088805626
## ncfi            0.015625456 -0.15222131 -0.22195107   -0.168723678
## ncfo           -0.014615066  0.41523598  0.54210226    0.401806017
## netinc          0.018950739  0.39546374  0.57801199    0.486824871
## pb             -0.008853833 -0.05196577 -0.09189407   -0.083543879
## pe1             1.000000000 -0.09431443 -0.04310713    0.007477473
## sharesbas      -0.094314433  1.00000000  0.45528338    0.383620454
## tangibles      -0.043107125  0.45528338  1.00000000    0.797023338
## workingcapital  0.007477473  0.38362045  0.79702334    1.000000000
stock_factors <- stock_factors[  , -c(2,6,20)]
#View(stock_factors)

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)
#View(stock_factors_date)
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 
## -1.67448 -0.20630 -0.03271  0.22905  2.73272 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.671671   0.097112   6.916 3.47e-09 ***
## cashnequsd_n     -0.087833   0.132184  -0.664   0.5089    
## de_n              0.083360   0.087929   0.948   0.3469    
## ebitda_n         -1.121859   0.460957  -2.434   0.0179 *  
## epsusd_n          0.107495   0.067810   1.585   0.1182    
## equityusd_n       0.128233   0.179527   0.714   0.4778    
## fcf_n            -1.911523   0.365649  -5.228 2.28e-06 ***
## revenueusd_n     -0.008647   0.146513  -0.059   0.9531    
## gp_n              0.416428   0.252665   1.648   0.1046    
## liabilities_n    -0.283434   0.228703  -1.239   0.2201    
## ncff_n            0.179728   0.100571   1.787   0.0790 .  
## ncfi_n            0.265999   0.103190   2.578   0.0124 *  
## ncfo_n            2.052307   0.438780   4.677 1.70e-05 ***
## netinc_n          0.890133   0.491508   1.811   0.0751 .  
## pb_n              0.094364   0.305157   0.309   0.7582    
## pe1_n            -0.145057   0.138441  -1.048   0.2989    
## sharesbas_n       0.083132   0.110417   0.753   0.4545    
## workingcapital_n -0.316859   0.185039  -1.712   0.0920 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5766 on 60 degrees of freedom
## Multiple R-squared:  0.4485, Adjusted R-squared:  0.2922 
## F-statistic:  2.87 on 17 and 60 DF,  p-value: 0.001363
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      0.671671106     -0.087833052      0.083359844     -1.121859156 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.107495153      0.128233375     -1.911523009     -0.008646812 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      0.416427937     -0.283434149      0.179728401      0.265999331 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      2.052306582      0.890133156      0.094363742     -0.145057063 
##      sharesbas_n workingcapital_n 
##      0.083131550     -0.316859315 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.67448 -0.20630 -0.03271  0.22905  2.73272 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.671671   0.097112   6.916 3.47e-09 ***
## cashnequsd_n     -0.087833   0.132184  -0.664   0.5089    
## de_n              0.083360   0.087929   0.948   0.3469    
## ebitda_n         -1.121859   0.460957  -2.434   0.0179 *  
## epsusd_n          0.107495   0.067810   1.585   0.1182    
## equityusd_n       0.128233   0.179527   0.714   0.4778    
## fcf_n            -1.911523   0.365649  -5.228 2.28e-06 ***
## revenueusd_n     -0.008647   0.146513  -0.059   0.9531    
## gp_n              0.416428   0.252665   1.648   0.1046    
## liabilities_n    -0.283434   0.228703  -1.239   0.2201    
## ncff_n            0.179728   0.100571   1.787   0.0790 .  
## ncfi_n            0.265999   0.103190   2.578   0.0124 *  
## ncfo_n            2.052307   0.438780   4.677 1.70e-05 ***
## netinc_n          0.890133   0.491508   1.811   0.0751 .  
## pb_n              0.094364   0.305157   0.309   0.7582    
## pe1_n            -0.145057   0.138441  -1.048   0.2989    
## sharesbas_n       0.083132   0.110417   0.753   0.4545    
## workingcapital_n -0.316859   0.185039  -1.712   0.0920 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5766 on 60 degrees of freedom
## Multiple R-squared:  0.4485, Adjusted R-squared:  0.2922 
## F-statistic:  2.87 on 17 and 60 DF,  p-value: 0.001363
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      0.671671106     -0.087833052      0.083359844     -1.121859156 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.107495153      0.128233375     -1.911523009     -0.008646812 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      0.416427937     -0.283434149      0.179728401      0.265999331 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      2.052306582      0.890133156      0.094363742     -0.145057063 
##      sharesbas_n workingcapital_n 
##      0.083131550     -0.316859315 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.72864 -0.17813 -0.00991  0.14063  1.51557 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.713838   0.054446  13.111   <2e-16 ***
## cashnequsd_n      0.009736   0.086185   0.113    0.910    
## de_n              0.078729   0.066462   1.185    0.241    
## ebitda_n         -0.067134   0.308828  -0.217    0.829    
## epsusd_n         -0.062501   0.073009  -0.856    0.395    
## equityusd_n       0.048735   0.103178   0.472    0.638    
## fcf_n            -0.288049   0.271942  -1.059    0.294    
## revenueusd_n      0.041919   0.089931   0.466    0.643    
## gp_n             -0.044541   0.148280  -0.300    0.765    
## liabilities_n    -0.076397   0.164555  -0.464    0.644    
## ncff_n           -0.078970   0.085820  -0.920    0.361    
## ncfi_n            0.008657   0.065856   0.131    0.896    
## ncfo_n            0.150615   0.280031   0.538    0.593    
## netinc_n          0.167708   0.275555   0.609    0.545    
## pb_n             -0.049730   0.105702  -0.470    0.640    
## pe1_n            -0.026646   0.058929  -0.452    0.653    
## sharesbas_n       0.037475   0.072182   0.519    0.605    
## workingcapital_n -0.035040   0.080932  -0.433    0.667    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3823 on 63 degrees of freedom
## Multiple R-squared:  0.1162, Adjusted R-squared:  -0.1223 
## F-statistic: 0.4873 on 17 and 63 DF,  p-value: 0.9498
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      0.713837921      0.009735691      0.078729135     -0.067133910 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     -0.062501268      0.048734566     -0.288048767      0.041919400 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.044540558     -0.076396977     -0.078970474      0.008656821 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.150615313      0.167707537     -0.049729991     -0.026645633 
##      sharesbas_n workingcapital_n 
##      0.037475235     -0.035039662 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.84706 -0.22720  0.05663  0.24317  1.04996 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.770580   0.067940  11.342   <2e-16 ***
## cashnequsd_n      0.010774   0.099522   0.108   0.9142    
## de_n              0.068898   0.103751   0.664   0.5092    
## ebitda_n         -0.161236   0.255913  -0.630   0.5311    
## epsusd_n         -0.003568   0.171920  -0.021   0.9835    
## equityusd_n       0.027445   0.117675   0.233   0.8164    
## fcf_n             0.344832   0.478354   0.721   0.4738    
## revenueusd_n      0.153631   0.096752   1.588   0.1176    
## gp_n             -0.102724   0.166308  -0.618   0.5391    
## liabilities_n    -0.024378   0.163273  -0.149   0.8818    
## ncff_n            0.249446   0.130205   1.916   0.0602 .  
## ncfi_n            0.034745   0.115931   0.300   0.7654    
## ncfo_n           -0.474825   0.516650  -0.919   0.3618    
## netinc_n          0.236371   0.280989   0.841   0.4036    
## pb_n             -0.034298   0.097874  -0.350   0.7272    
## pe1_n             0.062025   0.050616   1.225   0.2252    
## sharesbas_n       0.135384   0.097565   1.388   0.1704    
## workingcapital_n -0.086164   0.108770  -0.792   0.4314    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4116 on 60 degrees of freedom
## Multiple R-squared:  0.2221, Adjusted R-squared:  0.001703 
## F-statistic: 1.008 on 17 and 60 DF,  p-value: 0.4632
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      0.770579681      0.010773691      0.068898088     -0.161236348 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     -0.003567968      0.027444567      0.344831598      0.153631392 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.102723670     -0.024378420      0.249445579      0.034744878 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     -0.474825265      0.236371375     -0.034298382      0.062025007 
##      sharesbas_n workingcapital_n 
##      0.135384061     -0.086164240 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.99766 -0.23426  0.04777  0.25684  0.81180 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.92024    0.05566  16.533  < 2e-16 ***
## cashnequsd_n      0.21309    0.09499   2.243  0.02852 *  
## de_n             -0.42058    0.15649  -2.688  0.00926 ** 
## ebitda_n         -0.01299    0.27315  -0.048  0.96222    
## epsusd_n          0.52790    0.07000   7.542 2.71e-10 ***
## equityusd_n      -0.12148    0.11792  -1.030  0.30698    
## fcf_n             0.01295    0.43055   0.030  0.97610    
## revenueusd_n      0.06792    0.10430   0.651  0.51739    
## gp_n             -0.09929    0.16395  -0.606  0.54700    
## liabilities_n     0.09362    0.18392   0.509  0.61257    
## ncff_n            0.17111    0.10746   1.592  0.11648    
## ncfi_n            0.06057    0.08316   0.728  0.46915    
## ncfo_n            0.12278    0.52414   0.234  0.81557    
## netinc_n         -0.45369    0.20418  -2.222  0.03000 *  
## pb_n              0.29255    0.10290   2.843  0.00607 ** 
## pe1_n             0.12596    0.06490   1.941  0.05689 .  
## sharesbas_n       0.18691    0.08997   2.078  0.04197 *  
## workingcapital_n -0.02538    0.09180  -0.276  0.78313    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3989 on 61 degrees of freedom
## Multiple R-squared:  0.6269, Adjusted R-squared:  0.523 
## F-statistic:  6.03 on 17 and 61 DF,  p-value: 7.712e-08
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##       0.92024307       0.21309429      -0.42057521      -0.01299234 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##       0.52789752      -0.12148030       0.01294913       0.06791670 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      -0.09929460       0.09362256       0.17111146       0.06057153 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##       0.12278493      -0.45368544       0.29254870       0.12596422 
##      sharesbas_n workingcapital_n 
##       0.18690849      -0.02537872 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.84061 -0.19962  0.06721  0.20882  0.46241 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.778111   0.038542  20.189   <2e-16 ***
## cashnequsd_n      0.022435   0.074284   0.302   0.7636    
## de_n             -0.123064   0.118064  -1.042   0.3009    
## ebitda_n         -0.161579   0.203958  -0.792   0.4310    
## epsusd_n         -0.016629   0.054652  -0.304   0.7618    
## equityusd_n      -0.004181   0.084484  -0.049   0.9607    
## fcf_n             0.278714   0.241167   1.156   0.2519    
## revenueusd_n     -0.010274   0.065422  -0.157   0.8757    
## gp_n              0.102377   0.121893   0.840   0.4039    
## liabilities_n     0.032131   0.104867   0.306   0.7602    
## ncff_n           -0.057225   0.064298  -0.890   0.3766    
## ncfi_n           -0.080149   0.044241  -1.812   0.0745 .  
## ncfo_n           -0.285998   0.259384  -1.103   0.2741    
## netinc_n          0.105156   0.189989   0.553   0.5817    
## pb_n              0.099261   0.067690   1.466   0.1471    
## pe1_n            -0.009838   0.037962  -0.259   0.7963    
## sharesbas_n      -0.081369   0.066563  -1.222   0.2258    
## workingcapital_n -0.095113   0.071934  -1.322   0.1905    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3302 on 68 degrees of freedom
## Multiple R-squared:  0.2171, Adjusted R-squared:  0.0214 
## F-statistic: 1.109 on 17 and 68 DF,  p-value: 0.3638
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      0.778110888      0.022434521     -0.123064346     -0.161579273 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     -0.016628963     -0.004181429      0.278713813     -0.010274131 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      0.102377393      0.032131132     -0.057225324     -0.080148709 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     -0.285998352      0.105156376      0.099261086     -0.009838432 
##      sharesbas_n workingcapital_n 
##     -0.081368799     -0.095112639 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.83967 -0.13509  0.00482  0.14288  0.67375 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.788532   0.042353  18.618   <2e-16 ***
## cashnequsd_n     -0.040636   0.098410  -0.413    0.681    
## de_n              0.086943   0.082293   1.057    0.295    
## ebitda_n         -0.117236   0.209737  -0.559    0.578    
## epsusd_n          0.023415   0.057913   0.404    0.687    
## equityusd_n      -0.053077   0.103676  -0.512    0.610    
## fcf_n            -0.073660   0.234389  -0.314    0.754    
## revenueusd_n     -0.100840   0.078611  -1.283    0.204    
## gp_n              0.035776   0.150055   0.238    0.812    
## liabilities_n     0.105036   0.104259   1.007    0.317    
## ncff_n            0.035530   0.065869   0.539    0.591    
## ncfi_n            0.058208   0.060144   0.968    0.337    
## ncfo_n            0.097535   0.257891   0.378    0.707    
## netinc_n          0.143334   0.172693   0.830    0.410    
## pb_n             -0.208933   0.128481  -1.626    0.109    
## pe1_n            -0.032864   0.047979  -0.685    0.496    
## sharesbas_n      -0.008687   0.067284  -0.129    0.898    
## workingcapital_n -0.001412   0.067837  -0.021    0.983    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3454 on 65 degrees of freedom
## Multiple R-squared:  0.1327, Adjusted R-squared:  -0.09414 
## F-statistic: 0.585 on 17 and 65 DF,  p-value: 0.8912
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      0.788532233     -0.040636087      0.086942718     -0.117236452 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.023414824     -0.053077127     -0.073660461     -0.100840024 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      0.035776372      0.105035780      0.035529586      0.058208361 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.097535093      0.143333971     -0.208932967     -0.032864376 
##      sharesbas_n workingcapital_n 
##     -0.008686944     -0.001411896 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.15090 -0.20351  0.03337  0.21723  1.87645 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.887499   0.050940  17.422  < 2e-16 ***
## cashnequsd_n     -0.004625   0.107968  -0.043  0.96595    
## de_n             -0.221831   0.142155  -1.560  0.12309    
## ebitda_n         -0.016162   0.171705  -0.094  0.92528    
## epsusd_n          0.293151   0.047048   6.231 2.92e-08 ***
## equityusd_n      -0.289442   0.124277  -2.329  0.02271 *  
## fcf_n            -0.346736   0.321894  -1.077  0.28505    
## revenueusd_n     -0.095387   0.095351  -1.000  0.32053    
## gp_n             -0.005902   0.151780  -0.039  0.96909    
## liabilities_n     0.244418   0.124604   1.962  0.05374 .  
## ncff_n           -0.028406   0.097136  -0.292  0.77081    
## ncfi_n            0.048035   0.082949   0.579  0.56436    
## ncfo_n            0.419524   0.333983   1.256  0.21319    
## netinc_n         -0.223891   0.145723  -1.536  0.12888    
## pb_n              0.030887   0.119486   0.258  0.79677    
## pe1_n             0.241500   0.090332   2.673  0.00931 ** 
## sharesbas_n       0.143982   0.073075   1.970  0.05270 .  
## workingcapital_n  0.072401   0.087244   0.830  0.40940    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4579 on 71 degrees of freedom
## Multiple R-squared:  0.4446, Adjusted R-squared:  0.3116 
## F-statistic: 3.343 on 17 and 71 DF,  p-value: 0.0001811
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      0.887499436     -0.004625149     -0.221830675     -0.016161515 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.293150898     -0.289442129     -0.346736385     -0.095386818 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.005902162      0.244418452     -0.028405886      0.048035219 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.419524480     -0.223891176      0.030886616      0.241499907 
##      sharesbas_n workingcapital_n 
##      0.143982177      0.072400762 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.15201 -0.30286  0.05224  0.32849  1.63932 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       0.89281    0.06217  14.361  < 2e-16 ***
## cashnequsd_n      0.08792    0.13063   0.673    0.503    
## de_n             -0.17954    0.15887  -1.130    0.262    
## ebitda_n         -0.18458    0.35609  -0.518    0.606    
## epsusd_n          0.59757    0.10747   5.560 4.59e-07 ***
## equityusd_n       0.12255    0.13687   0.895    0.374    
## fcf_n            -0.23295    0.48165  -0.484    0.630    
## revenueusd_n      0.08848    0.11389   0.777    0.440    
## gp_n              0.07857    0.19357   0.406    0.686    
## liabilities_n    -0.15358    0.13353  -1.150    0.254    
## ncff_n            0.07325    0.08689   0.843    0.402    
## ncfi_n            0.01753    0.08644   0.203    0.840    
## ncfo_n            0.13606    0.50965   0.267    0.790    
## netinc_n         -0.31671    0.32137  -0.986    0.328    
## pb_n              0.07856    0.09388   0.837    0.406    
## pe1_n             0.01904    0.08554   0.223    0.825    
## sharesbas_n       0.02774    0.08643   0.321    0.749    
## workingcapital_n -0.02682    0.09691  -0.277    0.783    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5295 on 70 degrees of freedom
## Multiple R-squared:  0.4045, Adjusted R-squared:  0.2599 
## F-statistic: 2.797 on 17 and 70 DF,  p-value: 0.001327
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##       0.89280680       0.08791581      -0.17953903      -0.18457705 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##       0.59756836       0.12255463      -0.23295164       0.08848492 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##       0.07856736      -0.15357923       0.07324728       0.01752808 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##       0.13606070      -0.31671212       0.07855738       0.01904022 
##      sharesbas_n workingcapital_n 
##       0.02773642      -0.02682445 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.12759 -0.19930 -0.04888  0.20907  2.44398 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.09339    0.06341  17.243   <2e-16 ***
## cashnequsd_n      0.16118    0.13046   1.235   0.2208    
## de_n             -0.13571    0.18316  -0.741   0.4612    
## ebitda_n          0.36692    0.27634   1.328   0.1886    
## epsusd_n          0.08326    0.16459   0.506   0.6145    
## equityusd_n       0.02176    0.13709   0.159   0.8744    
## fcf_n             0.21521    0.74871   0.287   0.7746    
## revenueusd_n      0.08471    0.10353   0.818   0.4160    
## gp_n             -0.03905    0.19795  -0.197   0.8442    
## liabilities_n    -0.04693    0.13514  -0.347   0.7294    
## ncff_n           -0.11623    0.06513  -1.785   0.0787 .  
## ncfi_n           -0.17579    0.14215  -1.237   0.2203    
## ncfo_n           -0.53015    0.81480  -0.651   0.5174    
## netinc_n         -0.17705    0.23160  -0.764   0.4471    
## pb_n              0.15814    0.11402   1.387   0.1699    
## pe1_n            -0.08170    0.08329  -0.981   0.3300    
## sharesbas_n      -0.07902    0.11105  -0.712   0.4791    
## workingcapital_n -0.07239    0.09623  -0.752   0.4544    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5454 on 70 degrees of freedom
## Multiple R-squared:  0.192,  Adjusted R-squared:  -0.004287 
## F-statistic: 0.9782 on 17 and 70 DF,  p-value: 0.4917
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##       1.09339375       0.16118131      -0.13570824       0.36691880 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##       0.08326134       0.02175655       0.21521343       0.08471081 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      -0.03904768      -0.04693018      -0.11623043      -0.17579351 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      -0.53014658      -0.17705412       0.15813550      -0.08169670 
##      sharesbas_n workingcapital_n 
##      -0.07902377      -0.07239028 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.0311 -0.3587 -0.0701  0.1412  4.0246 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.060262   0.079289  13.372   <2e-16 ***
## cashnequsd_n      0.162171   0.159529   1.017    0.313    
## de_n             -0.387748   0.322044  -1.204    0.232    
## ebitda_n         -0.310880   0.351020  -0.886    0.379    
## epsusd_n          0.350424   0.211662   1.656    0.102    
## equityusd_n      -0.063683   0.175126  -0.364    0.717    
## fcf_n             0.092883   0.504923   0.184    0.855    
## revenueusd_n      0.017557   0.132720   0.132    0.895    
## gp_n             -0.181048   0.291658  -0.621    0.537    
## liabilities_n     0.200707   0.189826   1.057    0.294    
## ncff_n            0.092417   0.157040   0.588    0.558    
## ncfi_n            0.031535   0.083075   0.380    0.705    
## ncfo_n           -0.208146   0.526146  -0.396    0.694    
## netinc_n          0.242661   0.358303   0.677    0.500    
## pb_n              0.091427   0.153506   0.596    0.553    
## pe1_n            -0.006587   0.069700  -0.095    0.925    
## sharesbas_n       0.065288   0.176030   0.371    0.712    
## workingcapital_n -0.077364   0.123908  -0.624    0.534    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7023 on 73 degrees of freedom
## Multiple R-squared:  0.1319, Adjusted R-squared:  -0.07023 
## F-statistic: 0.6526 on 17 and 73 DF,  p-value: 0.8375
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.060262416      0.162171105     -0.387747555     -0.310879570 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.350424278     -0.063682784      0.092883299      0.017556632 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.181048431      0.200706611      0.092417102      0.031535108 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     -0.208145543      0.242660732      0.091426575     -0.006587097 
##      sharesbas_n workingcapital_n 
##      0.065287602     -0.077364454 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.1361 -0.3351 -0.1186  0.1254  6.4430 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.25485    0.10455  12.003   <2e-16 ***
## cashnequsd_n      0.27663    0.18039   1.533    0.129    
## de_n              0.11317    0.36417   0.311    0.757    
## ebitda_n          0.19144    0.44511   0.430    0.668    
## epsusd_n          0.05584    0.19065   0.293    0.770    
## equityusd_n       0.11934    0.22482   0.531    0.597    
## fcf_n            -0.80951    0.70105  -1.155    0.252    
## revenueusd_n     -0.02328    0.16313  -0.143    0.887    
## gp_n             -0.31855    0.30925  -1.030    0.306    
## liabilities_n    -0.02161    0.22441  -0.096    0.924    
## ncff_n            0.08424    0.16043   0.525    0.601    
## ncfi_n            0.12227    0.20693   0.591    0.556    
## ncfo_n            0.69075    0.75280   0.918    0.362    
## netinc_n         -0.05102    0.38036  -0.134    0.894    
## pb_n             -0.00354    0.18010  -0.020    0.984    
## pe1_n            -0.06202    0.07906  -0.784    0.435    
## sharesbas_n      -0.05110    0.18324  -0.279    0.781    
## workingcapital_n -0.07008    0.16343  -0.429    0.669    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.9336 on 74 degrees of freedom
## Multiple R-squared:  0.09134,    Adjusted R-squared:  -0.1174 
## F-statistic: 0.4376 on 17 and 74 DF,  p-value: 0.9709
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.254850354      0.276626320      0.113165054      0.191443873 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.055837151      0.119339902     -0.809511950     -0.023279024 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.318547269     -0.021613554      0.084241245      0.122272099 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.690744994     -0.051023486     -0.003539524     -0.062015801 
##      sharesbas_n workingcapital_n 
##     -0.051104755     -0.070083881 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.14604 -0.24476 -0.02976  0.21351  1.68329 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.107009   0.049820  22.220   <2e-16 ***
## cashnequsd_n     -0.025899   0.079729  -0.325    0.746    
## de_n             -0.069244   0.151884  -0.456    0.650    
## ebitda_n         -0.018431   0.305041  -0.060    0.952    
## epsusd_n          0.035798   0.109231   0.328    0.744    
## equityusd_n       0.046211   0.101601   0.455    0.651    
## fcf_n            -0.745373   0.501557  -1.486    0.142    
## revenueusd_n     -0.087295   0.081544  -1.071    0.288    
## gp_n             -0.044897   0.144723  -0.310    0.757    
## liabilities_n    -0.022483   0.099625  -0.226    0.822    
## ncff_n           -0.106890   0.090876  -1.176    0.243    
## ncfi_n           -0.088292   0.090381  -0.977    0.332    
## ncfo_n            0.848740   0.548787   1.547    0.126    
## netinc_n         -0.085957   0.273108  -0.315    0.754    
## pb_n              0.079848   0.128451   0.622    0.536    
## pe1_n             0.021692   0.049274   0.440    0.661    
## sharesbas_n       0.105052   0.089445   1.174    0.244    
## workingcapital_n -0.008197   0.069098  -0.119    0.906    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4278 on 71 degrees of freedom
## Multiple R-squared:  0.1818, Adjusted R-squared:  -0.01406 
## F-statistic: 0.9282 on 17 and 71 DF,  p-value: 0.5453
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.107009361     -0.025898880     -0.069244057     -0.018431198 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.035798463      0.046211205     -0.745373212     -0.087295055 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.044896953     -0.022483058     -0.106890204     -0.088291929 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.848739821     -0.085956648      0.079848465      0.021692480 
##      sharesbas_n workingcapital_n 
##      0.105051617     -0.008197474 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.2090 -0.2394 -0.0270  0.2691  1.5928 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.21048    0.06011  20.137  < 2e-16 ***
## cashnequsd_n      0.09014    0.09359   0.963  0.33858    
## de_n              0.16250    0.22858   0.711  0.47935    
## ebitda_n         -0.38671    0.27699  -1.396  0.16680    
## epsusd_n          0.06134    0.12014   0.511  0.61117    
## equityusd_n       0.09175    0.13590   0.675  0.50169    
## fcf_n            -1.20208    0.47106  -2.552  0.01275 *  
## revenueusd_n     -0.15222    0.10368  -1.468  0.14624    
## gp_n             -0.02069    0.16098  -0.129  0.89806    
## liabilities_n     0.15966    0.11230   1.422  0.15925    
## ncff_n            0.20180    0.09403   2.146  0.03511 *  
## ncfi_n            0.17320    0.09065   1.911  0.05988 .  
## ncfo_n            1.45080    0.52308   2.774  0.00699 ** 
## netinc_n          0.28855    0.21801   1.324  0.18966    
## pb_n              0.01270    0.15317   0.083  0.93415    
## pe1_n            -0.04786    0.03898  -1.228  0.22337    
## sharesbas_n      -0.07478    0.10781  -0.694  0.49005    
## workingcapital_n  0.02017    0.07891   0.256  0.79898    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5287 on 75 degrees of freedom
## Multiple R-squared:  0.3247, Adjusted R-squared:  0.1716 
## F-statistic: 2.121 on 17 and 75 DF,  p-value: 0.01408
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##       1.21048144       0.09013989       0.16249846      -0.38670905 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##       0.06133891       0.09174715      -1.20207739      -0.15221775 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##      -0.02069233       0.15966424       0.20179624       0.17319932 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##       1.45080382       0.28855455       0.01269846      -0.04786274 
##      sharesbas_n workingcapital_n 
##      -0.07477891       0.02016836 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.4014 -0.3008 -0.1240  0.1803  2.7308 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.217531   0.076301  15.957   <2e-16 ***
## cashnequsd_n     -0.054248   0.121163  -0.448    0.656    
## de_n              0.059306   0.238768   0.248    0.805    
## ebitda_n         -0.253057   0.362187  -0.699    0.487    
## epsusd_n          0.101815   0.138744   0.734    0.465    
## equityusd_n       0.086749   0.163118   0.532    0.597    
## fcf_n            -0.626446   0.545073  -1.149    0.254    
## revenueusd_n     -0.124765   0.131366  -0.950    0.345    
## gp_n             -0.081177   0.198997  -0.408    0.685    
## liabilities_n     0.053442   0.155161   0.344    0.732    
## ncff_n            0.017593   0.066039   0.266    0.791    
## ncfi_n           -0.017598   0.137650  -0.128    0.899    
## ncfo_n            0.606665   0.574580   1.056    0.295    
## netinc_n          0.389348   0.330052   1.180    0.242    
## pb_n              0.168169   0.148496   1.132    0.261    
## pe1_n             0.087002   0.163784   0.531    0.597    
## sharesbas_n       0.003603   0.126643   0.028    0.977    
## workingcapital_n -0.051175   0.117284  -0.436    0.664    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6422 on 71 degrees of freedom
## Multiple R-squared:  0.138,  Adjusted R-squared:  -0.06839 
## F-statistic: 0.6687 on 17 and 71 DF,  p-value: 0.8225
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.217530596     -0.054247738      0.059305647     -0.253056777 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.101815062      0.086749341     -0.626446452     -0.124764904 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.081177296      0.053441712      0.017593476     -0.017598373 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.606664622      0.389348224      0.168168819      0.087002218 
##      sharesbas_n workingcapital_n 
##      0.003602847     -0.051174987 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.20553 -0.27359 -0.04166  0.18646  2.75115 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.289531   0.084313  15.295  < 2e-16 ***
## cashnequsd_n      0.110007   0.132564   0.830 0.409371    
## de_n             -0.544684   0.132147  -4.122 9.93e-05 ***
## ebitda_n          0.146080   0.349120   0.418 0.676882    
## epsusd_n         -0.024071   0.101663  -0.237 0.813504    
## equityusd_n      -0.076245   0.182413  -0.418 0.677204    
## fcf_n            -0.080766   0.467892  -0.173 0.863437    
## revenueusd_n      0.045715   0.135238   0.338 0.736323    
## gp_n             -0.271785   0.225857  -1.203 0.232783    
## liabilities_n     0.147697   0.222183   0.665 0.508333    
## ncff_n           -0.014416   0.169677  -0.085 0.932530    
## ncfi_n           -0.073107   0.124283  -0.588 0.558218    
## ncfo_n            0.103424   0.510846   0.202 0.840131    
## netinc_n          0.103106   0.294017   0.351 0.726852    
## pb_n              0.588082   0.152482   3.857 0.000248 ***
## pe1_n             0.232970   0.142173   1.639 0.105651    
## sharesbas_n       0.008571   0.132814   0.065 0.948725    
## workingcapital_n -0.019302   0.130505  -0.148 0.882834    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.7185 on 72 degrees of freedom
## Multiple R-squared:  0.2527, Adjusted R-squared:  0.0763 
## F-statistic: 1.432 on 17 and 72 DF,  p-value: 0.1471
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.289531457      0.110007404     -0.544683533      0.146080368 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     -0.024071269     -0.076245237     -0.080766224      0.045714736 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.271784870      0.147696600     -0.014415546     -0.073107369 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.103423993      0.103105869      0.588082049      0.232969699 
##      sharesbas_n workingcapital_n 
##      0.008570927     -0.019301821 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.1508 -0.4074 -0.1464  0.2821  2.4803 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.415460   0.077054  18.370   <2e-16 ***
## cashnequsd_n      0.009261   0.114537   0.081   0.9358    
## de_n             -0.330148   0.203747  -1.620   0.1092    
## ebitda_n          0.869384   0.415791   2.091   0.0398 *  
## epsusd_n         -0.098950   0.149859  -0.660   0.5110    
## equityusd_n       0.005083   0.133084   0.038   0.9696    
## fcf_n            -0.114335   0.424570  -0.269   0.7884    
## revenueusd_n     -0.073213   0.136988  -0.534   0.5946    
## gp_n             -0.050481   0.220733  -0.229   0.8197    
## liabilities_n    -0.170419   0.162065  -1.052   0.2963    
## ncff_n            0.089098   0.105268   0.846   0.4000    
## ncfi_n            0.108404   0.115077   0.942   0.3491    
## ncfo_n            0.285745   0.419265   0.682   0.4976    
## netinc_n         -0.463530   0.371069  -1.249   0.2154    
## pb_n              0.203070   0.130300   1.558   0.1232    
## pe1_n            -0.018351   0.086196  -0.213   0.8320    
## sharesbas_n      -0.190641   0.117858  -1.618   0.1098    
## workingcapital_n  0.021910   0.107289   0.204   0.8387    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.6855 on 77 degrees of freedom
## Multiple R-squared:  0.2314, Adjusted R-squared:  0.0617 
## F-statistic: 1.364 on 17 and 77 DF,  p-value: 0.1787
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.415459659      0.009261197     -0.330147838      0.869383760 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##     -0.098950141      0.005083472     -0.114334949     -0.073213131 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.050481081     -0.170418906      0.089097533      0.108403871 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##      0.285745249     -0.463529858      0.203070175     -0.018351278 
##      sharesbas_n workingcapital_n 
##     -0.190640863      0.021910485 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.19178 -0.31108 -0.03041  0.26528  1.78412 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.118386   0.064146  17.435  < 2e-16 ***
## cashnequsd_n     -0.068919   0.100755  -0.684  0.49589    
## de_n             -0.187027   0.097381  -1.921  0.05826 .  
## ebitda_n         -0.264158   0.270378  -0.977  0.33145    
## epsusd_n          0.094185   0.052815   1.783  0.07824 .  
## equityusd_n       0.074995   0.107574   0.697  0.48768    
## fcf_n             0.420521   0.264836   1.588  0.11617    
## revenueusd_n     -0.148324   0.092425  -1.605  0.11238    
## gp_n             -0.104330   0.151312  -0.690  0.49245    
## liabilities_n     0.341919   0.105753   3.233  0.00176 ** 
## ncff_n            0.003914   0.090415   0.043  0.96558    
## ncfi_n            0.062490   0.117074   0.534  0.59495    
## ncfo_n           -0.383403   0.313269  -1.224  0.22450    
## netinc_n          0.338793   0.218665   1.549  0.12514    
## pb_n              0.235745   0.110090   2.141  0.03521 *  
## pe1_n            -0.005342   0.049450  -0.108  0.91423    
## sharesbas_n      -0.019697   0.094139  -0.209  0.83479    
## workingcapital_n -0.202859   0.094245  -2.152  0.03430 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5576 on 82 degrees of freedom
## Multiple R-squared:  0.3398, Adjusted R-squared:  0.2029 
## F-statistic: 2.483 on 17 and 82 DF,  p-value: 0.003368
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.118386409     -0.068919176     -0.187027038     -0.264157871 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.094184879      0.074995153      0.420520994     -0.148323835 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.104330483      0.341919117      0.003913555      0.062489968 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     -0.383403424      0.338793139      0.235744947     -0.005342234 
##      sharesbas_n workingcapital_n 
##     -0.019696719     -0.202858619 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.3476 -0.3340 -0.0751  0.2164  3.2986 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.244757   0.094057  13.234   <2e-16 ***
## cashnequsd_n      0.284228   0.133292   2.132   0.0361 *  
## de_n              0.014080   0.193533   0.073   0.9422    
## ebitda_n          0.186916   0.377007   0.496   0.6214    
## epsusd_n          0.292775   0.182369   1.605   0.1124    
## equityusd_n      -0.042159   0.168717  -0.250   0.8033    
## fcf_n             0.223764   0.433015   0.517   0.6068    
## revenueusd_n      0.126097   0.149770   0.842   0.4024    
## gp_n             -0.020007   0.231395  -0.086   0.9313    
## liabilities_n    -0.150875   0.172100  -0.877   0.3834    
## ncff_n           -0.186713   0.132931  -1.405   0.1641    
## ncfi_n           -0.199735   0.109896  -1.817   0.0730 .  
## ncfo_n           -0.174578   0.482685  -0.362   0.7186    
## netinc_n         -0.397607   0.291190  -1.365   0.1760    
## pb_n              0.110730   0.152209   0.727   0.4691    
## pe1_n             0.007618   0.071019   0.107   0.9149    
## sharesbas_n       0.075494   0.141676   0.533   0.5956    
## workingcapital_n -0.123513   0.121577  -1.016   0.3128    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.8137 on 78 degrees of freedom
## Multiple R-squared:  0.1543, Adjusted R-squared:  -0.03008 
## F-statistic: 0.8368 on 17 and 78 DF,  p-value: 0.647
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.244757441      0.284228415      0.014080145      0.186916232 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.292774640     -0.042159157      0.223763574      0.126096990 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.020007236     -0.150874981     -0.186712873     -0.199734626 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     -0.174577652     -0.397606866      0.110730047      0.007618022 
##      sharesbas_n workingcapital_n 
##      0.075493789     -0.123512925 
## 
## Call:
## lm(formula = return_price ~ ., data = obj)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.19178 -0.31108 -0.03041  0.26528  1.78412 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       1.118386   0.064146  17.435  < 2e-16 ***
## cashnequsd_n     -0.068919   0.100755  -0.684  0.49589    
## de_n             -0.187027   0.097381  -1.921  0.05826 .  
## ebitda_n         -0.264158   0.270378  -0.977  0.33145    
## epsusd_n          0.094185   0.052815   1.783  0.07824 .  
## equityusd_n       0.074995   0.107574   0.697  0.48768    
## fcf_n             0.420521   0.264836   1.588  0.11617    
## revenueusd_n     -0.148324   0.092425  -1.605  0.11238    
## gp_n             -0.104330   0.151312  -0.690  0.49245    
## liabilities_n     0.341919   0.105753   3.233  0.00176 ** 
## ncff_n            0.003914   0.090415   0.043  0.96558    
## ncfi_n            0.062490   0.117074   0.534  0.59495    
## ncfo_n           -0.383403   0.313269  -1.224  0.22450    
## netinc_n          0.338793   0.218665   1.549  0.12514    
## pb_n              0.235745   0.110090   2.141  0.03521 *  
## pe1_n            -0.005342   0.049450  -0.108  0.91423    
## sharesbas_n      -0.019697   0.094139  -0.209  0.83479    
## workingcapital_n -0.202859   0.094245  -2.152  0.03430 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.5576 on 82 degrees of freedom
## Multiple R-squared:  0.3398, Adjusted R-squared:  0.2029 
## F-statistic: 2.483 on 17 and 82 DF,  p-value: 0.003368
## 
##      (Intercept)     cashnequsd_n             de_n         ebitda_n 
##      1.118386409     -0.068919176     -0.187027038     -0.264157871 
##         epsusd_n      equityusd_n            fcf_n     revenueusd_n 
##      0.094184879      0.074995153      0.420520994     -0.148323835 
##             gp_n    liabilities_n           ncff_n           ncfi_n 
##     -0.104330483      0.341919117      0.003913555      0.062489968 
##           ncfo_n         netinc_n             pb_n            pe1_n 
##     -0.383403424      0.338793139      0.235744947     -0.005342234 
##      sharesbas_n workingcapital_n 
##     -0.019696719     -0.202858619
sink()

print(beta_matrix)
##       (Intercept) cashnequsd_n        de_n    ebitda_n     epsusd_n
##  [1,]   0.6716711 -0.087833052  0.08335984 -1.12185916  0.107495153
##  [2,]   0.6716711 -0.087833052  0.08335984 -1.12185916  0.107495153
##  [3,]   0.7138379  0.009735691  0.07872914 -0.06713391 -0.062501268
##  [4,]   0.7705797  0.010773691  0.06889809 -0.16123635 -0.003567968
##  [5,]   0.9202431  0.213094286 -0.42057521 -0.01299234  0.527897518
##  [6,]   0.7781109  0.022434521 -0.12306435 -0.16157927 -0.016628963
##  [7,]   0.7885322 -0.040636087  0.08694272 -0.11723645  0.023414824
##  [8,]   0.8874994 -0.004625149 -0.22183067 -0.01616151  0.293150898
##  [9,]   0.8928068  0.087915807 -0.17953903 -0.18457705  0.597568363
## [10,]   1.0933938  0.161181307 -0.13570824  0.36691880  0.083261343
## [11,]   1.0602624  0.162171105 -0.38774755 -0.31087957  0.350424278
## [12,]   1.2548504  0.276626320  0.11316505  0.19144387  0.055837151
## [13,]   1.1070094 -0.025898880 -0.06924406 -0.01843120  0.035798463
## [14,]   1.2104814  0.090139892  0.16249846 -0.38670905  0.061338910
## [15,]   1.2175306 -0.054247738  0.05930565 -0.25305678  0.101815062
## [16,]   1.2895315  0.110007404 -0.54468353  0.14608037 -0.024071269
## [17,]   1.4154597  0.009261197 -0.33014784  0.86938376 -0.098950141
## [18,]   1.1183864 -0.068919176 -0.18702704 -0.26415787  0.094184879
## [19,]   1.2447574  0.284228415  0.01408015  0.18691623  0.292774640
## [20,]   1.1183864 -0.068919176 -0.18702704 -0.26415787  0.094184879
##        equityusd_n       fcf_n revenueusd_n         gp_n liabilities_n
##  [1,]  0.128233375 -1.91152301 -0.008646812  0.416427937   -0.28343415
##  [2,]  0.128233375 -1.91152301 -0.008646812  0.416427937   -0.28343415
##  [3,]  0.048734566 -0.28804877  0.041919400 -0.044540558   -0.07639698
##  [4,]  0.027444567  0.34483160  0.153631392 -0.102723670   -0.02437842
##  [5,] -0.121480296  0.01294913  0.067916702 -0.099294603    0.09362256
##  [6,] -0.004181429  0.27871381 -0.010274131  0.102377393    0.03213113
##  [7,] -0.053077127 -0.07366046 -0.100840024  0.035776372    0.10503578
##  [8,] -0.289442129 -0.34673639 -0.095386818 -0.005902162    0.24441845
##  [9,]  0.122554634 -0.23295164  0.088484922  0.078567362   -0.15357923
## [10,]  0.021756553  0.21521343  0.084710815 -0.039047676   -0.04693018
## [11,] -0.063682784  0.09288330  0.017556632 -0.181048431    0.20070661
## [12,]  0.119339902 -0.80951195 -0.023279024 -0.318547269   -0.02161355
## [13,]  0.046211205 -0.74537321 -0.087295055 -0.044896953   -0.02248306
## [14,]  0.091747146 -1.20207739 -0.152217752 -0.020692332    0.15966424
## [15,]  0.086749341 -0.62644645 -0.124764904 -0.081177296    0.05344171
## [16,] -0.076245237 -0.08076622  0.045714736 -0.271784870    0.14769660
## [17,]  0.005083472 -0.11433495 -0.073213131 -0.050481081   -0.17041891
## [18,]  0.074995153  0.42052099 -0.148323835 -0.104330483    0.34191912
## [19,] -0.042159157  0.22376357  0.126096990 -0.020007236   -0.15087498
## [20,]  0.074995153  0.42052099 -0.148323835 -0.104330483    0.34191912
##             ncff_n       ncfi_n      ncfo_n    netinc_n         pb_n
##  [1,]  0.179728401  0.265999331  2.05230658  0.89013316  0.094363742
##  [2,]  0.179728401  0.265999331  2.05230658  0.89013316  0.094363742
##  [3,] -0.078970474  0.008656821  0.15061531  0.16770754 -0.049729991
##  [4,]  0.249445579  0.034744878 -0.47482526  0.23637137 -0.034298382
##  [5,]  0.171111462  0.060571529  0.12278493 -0.45368544  0.292548703
##  [6,] -0.057225324 -0.080148709 -0.28599835  0.10515638  0.099261086
##  [7,]  0.035529586  0.058208361  0.09753509  0.14333397 -0.208932967
##  [8,] -0.028405886  0.048035219  0.41952448 -0.22389118  0.030886616
##  [9,]  0.073247276  0.017528082  0.13606070 -0.31671212  0.078557379
## [10,] -0.116230433 -0.175793513 -0.53014658 -0.17705412  0.158135500
## [11,]  0.092417102  0.031535108 -0.20814554  0.24266073  0.091426575
## [12,]  0.084241245  0.122272099  0.69074499 -0.05102349 -0.003539524
## [13,] -0.106890204 -0.088291929  0.84873982 -0.08595665  0.079848465
## [14,]  0.201796238  0.173199320  1.45080382  0.28855455  0.012698458
## [15,]  0.017593476 -0.017598373  0.60666462  0.38934822  0.168168819
## [16,] -0.014415546 -0.073107369  0.10342399  0.10310587  0.588082049
## [17,]  0.089097533  0.108403871  0.28574525 -0.46352986  0.203070175
## [18,]  0.003913555  0.062489968 -0.38340342  0.33879314  0.235744947
## [19,] -0.186712873 -0.199734626 -0.17457765 -0.39760687  0.110730047
## [20,]  0.003913555  0.062489968 -0.38340342  0.33879314  0.235744947
##              pe1_n  sharesbas_n workingcapital_n
##  [1,] -0.145057063  0.083131550     -0.316859315
##  [2,] -0.145057063  0.083131550     -0.316859315
##  [3,] -0.026645633  0.037475235     -0.035039662
##  [4,]  0.062025007  0.135384061     -0.086164240
##  [5,]  0.125964218  0.186908495     -0.025378723
##  [6,] -0.009838432 -0.081368799     -0.095112639
##  [7,] -0.032864376 -0.008686944     -0.001411896
##  [8,]  0.241499907  0.143982177      0.072400762
##  [9,]  0.019040222  0.027736416     -0.026824446
## [10,] -0.081696696 -0.079023766     -0.072390277
## [11,] -0.006587097  0.065287602     -0.077364454
## [12,] -0.062015801 -0.051104755     -0.070083881
## [13,]  0.021692480  0.105051617     -0.008197474
## [14,] -0.047862744 -0.074778908      0.020168364
## [15,]  0.087002218  0.003602847     -0.051174987
## [16,]  0.232969699  0.008570927     -0.019301821
## [17,] -0.018351278 -0.190640863      0.021910485
## [18,] -0.005342234 -0.019696719     -0.202858619
## [19,]  0.007618022  0.075493789     -0.123512925
## [20,] -0.005342234 -0.019696719     -0.202858619
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,]
#View(new_beta_matrix)
pred_beta_list <- new_beta_matrix[1,]
#### Function compute future date betas  --------


pred_beta_list <- find_future_beta(beta_matrix)

#View(pred_beta_list)
###### 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])

#View(date19_pred_beta.list)
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 <- "quantile_1"
y1_name <- "pred_quantile_1"
x2_name <- "quantile_2"
y2_name <- "pred_quantile_2"
x3_name <- "quantile_3"
y3_name <- "pred_quantile_3"
x4_name <- "quantile_4"
y4_name <- "pred_quantile_4"




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)
##   quantile_1 pred_quantile_1 quantile_2 pred_quantile_2 quantile_3
## 1   1.425317      1.44405084   1.785642       1.8223548   1.096399
## 2   1.250242      0.84012739   1.302446       0.9804582   1.043541
## 3   1.353252      0.68064500   1.155716       0.7371928   0.957445
## 4   1.400368      0.51042324   1.401002       0.5310469   1.497097
## 5   1.295057      0.04064369   1.461144       0.2025672   1.097181
##   pred_quantile_3 quantile_4 pred_quantile_4
## 1       1.6279763   1.333620      1.54500106
## 2       1.0652298   1.232443      0.80190536
## 3       0.9014098   1.201455      0.54024984
## 4       0.7747617   1.366726      0.38417751
## 5       0.2996032   1.037349      0.09176457