Sunteți pe pagina 1din 34

SEMINAR 3 SI SEMINAR 4

ELEMENTE INTRODUCTIE IN R
###########VECTORI#########

#CREARE VECTOR CU NUMERE DE LA 1 LA 10

vector<-c(1:10)

vector

#VIZUALIZARI

View(vector)

#UN ANUMIT ELEMENT

vector[2]

#ANUMITE ELEMENTE

vector[5:10]

#tot vectorul fara o anumita valoare

vector[-3]

#OPERATII

#RIDICARE LA PUTERE

vector[2]^5

#SUMA ELEMENTELOR DIN VECTOR

sum(vector)

#SUMA ANUMITOR ELEMENTE DIN VECTOR

sum(vector[2:8])
###NUMERE ALEATOARE CU DISTRIBUTIE NORMALA#######

#media este 0

#abaterea standard 1

#se foloseste functia rnorm

x<-rnorm(100,mean=0,sd=1)

View(x)

#OPERATII

#MINIM

min(x)

#MAXIM

max(x)

#MEDIE

mean(x)

#DISPERSIE

var(x)

#ABATERE STANDARD

sd(x)

#SORTARE NUMERE CU FUNCTOA SORT

#TREBUIE SA ASOCIEM CU <- CA ALTFEL NU SE SALVEAZA

#DECREASING=FALSE INSEAMNA CA FACEM SORTARE CRESCATOR


#DECREASING=TRUE INSEAMNA CA FACEM SORTARE DESCRESCATOR

x_sortat<-sort(x,decreasing = FALSE)

x_sortat

#GRAFIC PLOT PENTRU A OBSERVA TRENDUL

plot(x_sortat)

#MAIN PT TITLUL, COL PT CULOARE, XLAB DENUMIM AXA OX, YLAB DENUMIM AXA OY

plot(x_sortat,main="Numere aleatoare cu distributie normala",col="red",ylab="Valori",xlab="Indice")

#GRAFIC HISTOGRAMA PENTRU A OBSERVA DISTRIBUTIA VALORILOR

hist(x_sortat,main="Numere aleatoare cu distributie normala",col="red",xlab="Valori",ylab="Indice")

#IMPORTARE PACHET PENTRU SKEWNESS SI KURTOSIS

install.packages("moments")

library(moments)

#SKEWNESS

skewness(x_sortat)

#KURTOSIS

kurtosis(x_sortat)

################MATRICI####################

#DEFINIRE MATRICE

matrice<-matrix(nrow=3,ncol=3)

View(matrice)

#POPULARE MATRICE
#FIECARE ELEMENT IN PARTE

matrice[1,1]=10

matrice[2,1]=4

matrice[3,1]=5

#POPULARE TOATA COLOANA

matrice[,2]<-c(1,2,3)

matrice[,3]<-c(5,9,2000)

#POPULARE TOT RANDUL

matrice[1,]<-c(1,2,3)

#DENUMIRE RANDURI SI COLOANE

col.names<-c("COL1","COL2","COL3")

row.names<-c("RAND1","RAND2","RAND3")

dimnames(matrice)=list(row.names,col.names)

#OPERATII PE MATRICI

#SUMA ELEMENTELOR DE PE O COLOANA SAU DE PE UN RAND

sum(matrice[,3])

sum(matrice[3,])

#RIDICAREA LA PUTERE A ELEMENTELOR DE PE O COLOANA SAU UN RAND

matrice[3,]^2

matrice[,3]^2

#TRANSPUSA UNEI MATRICI

transpusa_matrice<-t(matrice)

View(transpusa_matrice)

#ABATERE STANDARD PENTRU ELEMENTELE DE PE O COLOANA SAU UN RAND

sd(matrice[,3])

sd(matrice[3,])
#DEFINIRE MATRICE COMPLETATA PE LINIE CU NUMERE LA LA 10 LA 18

#completam pe linii punem byrow=true

#completam pe coloana punem byrow=false

matrice2<-
matrix(c(10:18),nrow=3,ncol=3,byrow=TRUE,dimnames=list(c("rand1","rand2","rand3"),c("col1","col2","
col3")))

View(matrice2)

matrice3<-
matrix(c(10:18),nrow=3,ncol=3,byrow=FALSE,dimnames=list(c("rand1","rand2","rand3"),c("col1","col2",
"col3")))

View(matrice3)

#inmultire doua matrici

View(matrice*matrice2) #asa inmultim fiecare element de pe fiecare pozitie

View(matrice%*%matrice2)

############# SECVENTE DE NUMERE #################

#GENERARE NUMERE FOLOSIND SECVENTE

help(seq)

secventa<-seq(from=0,to=10,by=0.5)

secventa

#OPERATII

min(secventa)

max(secventa)

mean(secventa)

var(secventa)
#GRAFIC PLOT SECVENTA

plot(secventa,main="Numere de la 0 la 10 cu pasul 0.5",col="red",xlab="Indice",ylab="Numere",ylim=c(-


1,12))

######### NUMERE CU DISTRIBUTIE NORMALA #########

#GENERARE NUMERE CU DISTRIBUTIE NORMALA

vector_norm<-rnorm(100,mean=0,sd=1)

#MEDIE SI ABATERE STANDARD

mean(vector_norm)

sd(vector_norm)

#SORTARE DESCRESCATOARE

vector_norm_sortat<-sort(vector_norm,decreasing = TRUE)

#GRAFIC PLOT

plot(vector_norm_sortat,main="Vector norm sortat",col="red")

#GRAFIC HISTOGRAMA

#CONTROLAM NUMARUL DE INTERVALE DIN HISTOGRAMA CU BREAKS

hist(vector_norm_sortat,main="Histograma numere cu distributie normala


sortate",col="red",breaks=10)

#GRAFIC DENSITATE

densitate<-density(vector_norm_sortat)

densitate

plot(densitate,main="Grafic densitate",col="red")

#CU ADJUST REGLAM PT A NE APROPIA DE DISTRIBUTIA REALA


plot(density(vector_norm_sortat,adjust=0.1),main="Grafic densitate",col="red")

####### NUMERE CU DISTRUBUTIE UNIFORMA ##########

#GENERARE NUMERE CU DISTRUBUTIE UNIFROMA

vector_unif<-runif(100,min=-5,max=10)

#OPERATII

min(vector_unif)

max(vector_unif)

mean(vector_unif)

var(vector_unif)

sd(vector_unif)

#SORTARE DESCRESCATOARE

vector_unif_sortat<-sort(vector_unif)

#GRAFIC PLOT

plot(vector_unif_sortat,main="Numere cu distrubutie unifroma sorate",col="red")


SEMINAR 5 SI SEMINAR 6
ANALIZA ACTIUNILOR
#SETAM DIRECTORUL IN CARE SE AFLA FISIERELE CU DATELE
PENTRU IMPORT
setwd("C:/Users/Asus VivoBook/Desktop/Microeconomie/Actiuni/Import date")

############# IMPORT DATE IN R #############


#CSV

recap<-read.csv("Date_seminar.csv",header=TRUE,sep=",")

View(recap)

#TXT

recap<-read.table("Date_seminar.txt",header=TRUE,sep="\t")

View(recap)

#EXCEL

install.packages("readxl")

library(readxl)

recap<-read_excel("Date_seminar.xlsx",col_names = TRUE,sheet = "Sheet1")

View(recap)

#CREARE OBIECTE PENTRU FIECARE COLOANA IN PARTE

attach(recap)
########### STATISTICI DESCRIPTIVE ############

#ELIMINAM PRIMA COLOANA PENTRU CA ACOLO SUNT DATELE

stat_descriptive<-summary(recap[-1])

stat_descriptive

#AFISAM DOAR PENTRU O ANUMITA COLOANA

stat_descriptive<-summary(recap[3])

stat_descriptive

################ ALTE STATISTICI ################

#AMPLITUDINEA

#RANGE NE DA MAXIMUL SI MINIMUL SEPARAT

ampl_pret_toyota<-range(pret_toyota)

ampl_pret_toyota

ampl_pret_SP<-range(pret_SP)

ampl_pret_SP

#PENTRU AMPLITUDINE SCADEM MIN DIN MAX

ampl_pret_toyota<-ampl_pret_toyota[2]-ampl_pret_toyota[1]

ampl_pret_toyota

ampl_pret_SP<-ampl_pret_SP[2]-ampl_pret_SP[1]

ampl_pret_SP

#ABATEREA STANDARD
sd_pret_toyota<-sd(pret_toyota)

sd_pret_toyota

sd_pret_SP<-sd(pret_SP)

sd_pret_SP

#DETERMINAREA ZILELOR IN CARE S-AU OBTINUT VALORILE MAXIME PENTRU PRETURI

which.max(pret_toyota)

#AFISAREA LINIEI RETURNATE ANTERIOR

recap[which.max(pret_toyota),]

#DETERMINAREA ZILELOR IN CARE S-AU OBTINUT VALORILE MINIME PENTRU PRETURI

which.min(pret_toyota)

#AFISAREA LINIEI RETURNATE ANTERIOR

recap[which.min(pret_toyota),]

############## SALVARE DATE IN FISIERE #############

#CSV

write.csv(stat_descriptive,file="Statistici_descriptive.csv")

#TXT

write.table(stat_descriptive,file="Statistici_descriptive.txt")

################ DATA FRAME ################

#CREARE DATA FRAME (o matrice cu coloanele pe care le stabilim noi)

dataframe_preturi<-
data.frame(recap$pret_netflix,recap$pret_disney,recap$pret_toyota,recap$pret_SP)

View(dataframe_preturi)
#REDENUMIRE COLOANE

colnames(dataframe_preturi)<-c("pret_netflix","pret_disney","pret_toyota","pret_SP")

View(dataframe_preturi)

#REDENUMIRE O SINGURA COLOANA

colnames(dataframe_preturi)[2]<-"pret_DISNEY"

############## SALVARE IN MATRICE ###############

#SALVAM IN MATRICE AABATEREA STANDARD, VARIATIA, AMPLITUDINEA PENTRU VOLUME

matrice_recap<-matrix(nrow=4,ncol=3)

dimnames(matrice_recap)=list(c("vol_netflix","vol_disney","vol_toyota","vol_SP"),c("ABATERE_STANDA
RD","VARIATIE","AMPLITUDINE"))

View(matrice_recap)

ampl_vol_netflix<-range(volum_netflix)

ampl_vol_netflix<-ampl_vol_netflix[2]-ampl_vol_netflix[1]

matrice_recap[1,]<-c(sd(volum_netflix),var(volum_netflix),ampl_vol_netflix)

ampl_vol_disney<-range(volum_disney)

ampl_vol_disney<-ampl_vol_disney[2]-ampl_vol_disney[1]

matrice_recap[2,]<-c(sd(volum_disney),var(volum_disney),ampl_vol_disney)

ampl_vol_toyota<-range(volum_toyota)

ampl_vol_toyota<-ampl_vol_toyota[2]-ampl_vol_toyota[1]

matrice_recap[3,]<-c(sd(volum_toyota),var(volum_toyota),ampl_vol_toyota)

ampl_vol_SP<-range(volum_SP)

ampl_vol_SP<-ampl_vol_SP[2]-ampl_vol_SP[1]

matrice_recap[4,]<-c(sd(volum_SP),var(volum_SP),ampl_vol_SP)

#SALVAM MATRICEA IN FISIER CSV SI TXT

write.csv(matrice_recap,file="Statistici_volume.csv")
write.table(matrice_recap,file="Statistici_volume.txt")

################### GRAFICE ######################

#PLOT cu linie continua

windows()

par(mfrow=c(2,2))

plot(pret_netflix,main="Pret NETFLIX",col="red",type="l")

plot(pret_disney,main="Pret DISNEY",col="blue",type="l")

plot(pret_toyota,main="Pret TOYOTA",col="green",type="l")

plot(pret_SP,main="Pret S&P 500",col="pink",type="l")

#HISTOGRAME

windows()

par(mfrow=c(2,2))

hist(pret_netflix,main="Pret NETFLIX",col="red")

hist(pret_disney,main="Pret DISNEY",col="blue")

hist(pret_toyota,main="Pret TOYOTA",col="green")

hist(pret_SP,main="Pret S&P 500",col="pink")

#la histograme ne intereseaza skewness si kurtosis

skewness(pret_netflix)

kurtosis(pret_netflix)

skewness(pret_disney)

kurtosis(pret_disney)

skewness(pret_toyota)

kurtosis(pret_toyota)
skewness(pret_SP)

kurtosis(pret_SP)

#BOXPLOT-URI

windows()

par(mfrow=c(2,2))

boxplot(pret_netflix,main="Pret NETFLIX",col="red")

boxplot(pret_disney,main="Pret DISNEY",col="blue")

boxplot(pret_toyota,main="Pret TOYOTA",col="green")

boxplot(pret_SP,main="Pret S&P 500",col="pink")

###### MAI MULTE VARIABILE INTR-UN SINGUR GRAFIC


#####

windows()

plot(diff(pret_toyota),type="l",col="green",lwd=1,yllim=c(-400,300))

lines(diff(pret_SP),type="l",col="pink",lwd=2)

title("Pret TOYOTA - PRET S&P 500")

legend("topleft",c("TOYOTA","S&P 500"),lwd=c(1,2),col=c("green","pink"))

#### AFISARE DATA PE AXA OX PENTRU GRAFICUL PLOT


#####

windows()

par(mfrow=c(2,2))

plot(date,pret_netflix,main="Pret NETFLIX",col="red",type="l")
plot(date,pret_disney,main="Pret DISNEY",col="blue",type="l")

plot(date,pret_toyota,main="Pret TOYOTA",col="green",type="l")

plot(date,pret_SP,main="Pret S&P 500",col="pink",type="l")

date<-strptime(date,format="%d-%m-%Y")

############# MATRICE DE CORELATIE #################

#COEFICIENTUL DE CORELATIE LINIARA PEARSON - r

corelatii<-cor(recap[-1])

corelatii

#REPREZENTARE GRAFICA A MATRICEI DE CORELATIE

install.packages("corrplot")

library(corrplot)

windows()

corrplot(corelatii,method=c("number"),type=c("lower"))

########### UTILIZARE FOR ################

#AFISARE VALORI PENTRU CARE PRTUL UNEI ACTIUNI ESTE MAI MARE DECAT PRETUL DIN ZIUA
PRECEDENTA

#CREAM UN VECTOR IN CARE SA SALVAM REZULTATUL

vector<-c()

for(i in 2:length(pret_toyota))

if(pret_toyota[i]>pret_toyota[i-1])

{
vector[length(vector)+1]<-pret_toyota[i]

length(pret_toyota)

length(vector)

vector

#AFISARE VALORI PENTRU CARE PRETUL UNEI ACTIUNI ESTE MAI MARE DECAT PRETUL MEDIU

vector<-c()

for(i in 1:length(pret_toyota))

if(pret_toyota[i]>mean(pret_toyota))

vector[length(vector)+1]<-pret_toyota[i]

length(pret_toyota)

length(vector)

vector

#GRAFIC PLOT

windows()

plot(vector,main="Valori pret TOYOTA MAI MARI DECAT MEDIA",col="red",type="l")

############ STANDARDIZARE DATE #############

#PENTRU STANDARDIZARE SCADEM MEDIA SI IMPARTIM LA ABATEREA STANDARD

pret_SP_STAND<-(pret_SP-mean(pret_SP))/sd(pret_SP)

#GRAFICE PLOT
#DESI VALORILE SE MODIFICA EVOLUTIA IN TIMP ESTE ACEEASI, O SA AVEM GRAFICE IDENTICE

windows()

par(mfrow=c(2,1))

plot(pret_SP,main="Valori PRET S&P 500",type="l")

plot(pret_SP_STAND,main="VALORI PRET S&P 500 STANDARDIZATE",type="l")

#GRAFICE HISTOGRAMA

windows()

par(mfrow=c(2,1))

hist(pret_SP,main="Valori PRET S&P 500")

hist(pret_SP_STAND,main="VALORI PRET S&P 500 STANDARDIZATE")

#GRAFICE BOXPLOT

windows()

par(mfrow=c(2,1))

boxplot(pret_SP,main="Valori PRET S&P 500")

boxplot(pret_SP_STAND,main="VALORI PRET S&P 500 STANDARDIZATE")

#DIFERENTE INTRE VALORI NESTANDARDIZATE SI STANDARDIZATE

mean(pret_SP_STAND)

sd(pret_SP_STAND)

mean(pret_SP)

sd(pret_SP)

############## NORMALIZARE DATE ##############

#PENTRU NORMALIZARE SE SCADE MINIMUL SI SE IMPARTE LA AMPLITUDINE

pret_SP_NORM<-(pret_SP-min(pret_SP))/(max(pret_SP)-min(pret_SP))
#GRAFICE PLOT

#DESI VALORILE SE MODIFICA EVOLUTIA IN TIMP ESTE ACEEASI, O SA AVEM GRAFICE IDENTICE

windows()

par(mfrow=c(2,1))

plot(pret_SP,main="Valori PRET S&P 500",type="l")

plot(pret_SP_NORM,main="VALORI PRET S&P 500 NORMALIZATE",type="l")

#GRAFICE HISTOGRAMA

windows()

par(mfrow=c(2,1))

hist(pret_SP,main="Valori PRET S&P 500",type="l")

hist(pret_SP_NORM,main="VALORI PRET S&P 500 NORMALIZATE",type="l")

#GRAFICE BOXPLOT URI

windows()

par(mfrow=c(2,1))

boxplot(pret_SP,main="Valori PRET S&P 500",type="l")

boxplot(pret_SP_NORM,main="VALORI PRET S&P 500 NORMALIZATE",type="l")

#DIFERENTE INTRE VALORI NENORMALIZATE SI NORMALIZATE

mean(pret_SP_NORM)

sd(pret_SP_NORM)

mean(pret_SP)

sd(pret_SP)

####### ADAUGARE COLOANE LA UN SET DE DATE ########


#ADAUGARE COLOANE
recap<-data.frame(recap,pret_SP_STAND,pret_SP_NORM)

View(recap)

SEMINAR 7
ANALIZA
COMPORTAMENTULUI
FIRMELOR
#N=300 DE COMPANII

#M=3 SECTOARE DE ACTIVITATE ALE CELOR 300 DE COMPANII

#30% SUNT DIN CONSTRUCTII

#50% SUNT DIN INDUSTRIA ALIMENTARA

#20% DIN ASIGURARI

#FIRMELE SE IMPART IN FIRME MARI SI FIRME MICI

#20% FIRME MARI

#80% FIRME MICI

################GENERARE ID-URI##################

#GENERARE ID-URI PENTRU FIECARE FIRMA PENTRU IDENTIFICARE

id<-1:300

#ADAUGARE ID-URI LA DATA FARME


Firme<-data.frame(id)

View(Firme)

###########GENERARE SECTOR DE ACTIVITATE##########

#GENERARE SECTOR DE ACTIVITATE PENTRU FIECARE FIRMA

#1-ALIMENTAR

#2-CONSTRUCTII

#3-ASIGURARI

domeniu<-sample(

1:3,

size=300,

replace=TRUE,

prob = c(0.5,0.3,0.2)

domeniu

#ADAUGAM LABEL-URI (DENUMIRI) PENTRU FIECARE CIFRA DE LA 1 LA 3

#1-ALIMENTAR

#2-CONSTRUCTII

#3-ASIGURARI

domeniuFirme<-factor(domeniu,labels=c("ALIMENTAR","CONSTRUCTII","ASIGURARI"))

domeniuFirme

#CATE FIRME DIN FIECARE SECTOR DE ACTIVITATE EXISTA

summary(domeniuFirme)

#ADAUGARE SECTOR DE ACTVITATE LA DATA FARME

Firme<-data.frame(Firme,domeniuFirme)
View(Firme)

###############GENERARE MARIME FIRME############

#GENERARE MARIME FIRME

#1-FIRME MARI

#2-FIRME MICI

marime<-sample(

1:2,

size=300,

replace=TRUE,

prob=c(0.2,0.8)

marime

#ADAUGAM LABEL-URI (DENUMIRI) PENTRU FIECARE CIFRA DE LA 1 LA 2

#1-FIRME MARI

#2-FIRME MICI

marimeFirme<-factor(marime,labels=c("FIRME MARI","FIRME MICI"))

marimeFirme

#CATE FIRME DE FIECARE MARIME EXISTA

summary(marimeFirme)

#ADAUGARE MARIME FIRME LA DATA FARME

Firme<-data.frame(Firme,marimeFirme)

View(Firme)
################### SUBSETURI ####################

#GENERARE SUBSET PENTRU FIRME MARI SI FIRME MICI

firmeMari<-subset(Firme,marimeFirme=="FIRME MARI")

View(firmeMari)

firmeMici<-subset(Firme,marimeFirme=="FIRME MICI")

View(firmeMici)

#CATE LINII SI COLOANE AVEM

var<-dim(firmeMari)

var[2] #COLOANE

var[1] #LINII (FIRME)

######### GENERARE VENITURI PENTRU FIRME ##########

#GENERARE VENITURI PENTRU FIECARE FIRMA IN FUNCTIE DE MARIMEA EI

# FIRME MARI - VENITURI CU DISTRIBUTIE NORMALA DE MEDIE 200 000 SI ABATERE STANDARD DE 40
000

# FIRME MICI - VENITURI CU DISTRIBUTIE NORMALA DE MEDIE 100 000 SI ABATERE STANDARD DE 50
000

venituri_firmeMari<-rnorm(dim(firmeMari)[1],mean=200000,sd=40000)

View(venituri_firmeMari)

venituri_firmeMici<-rnorm(dim(firmeMici)[1],mean=100000,sd=50000)

View(venituri_firmeMici)

#ADAUGARE VENITURI LA SUBSETURI

firmeMari<-cbind(firmeMari,venituri_firmeMari)
firmeMici<-cbind(firmeMici,venituri_firmeMici)

#GRAFIC HISTOGRAMA

windows()

par(mfrow=c(2,1))

hist(venituri_firmeMari,main="Venituri firme mari",col="red")

hist(venituri_firmeMici,main="Venituri firme mici",col="blue")

#UNIM CELE DOUA SUBSETURI

#TREBUIE SA AVEM DENUMIRI IDENTICE LA COLOANE CA SA PUTEM SA UNIM

colnames(firmeMari)[4]="venituriFirme"

colnames(firmeMici)[4]="venituriFirme"

firmeTotal<-rbind(firmeMari,firmeMici)

View(firmeTotal)

######### GENERARE INVESTITII PENTRU FIRME ###########

#GENERARE INVESTITII PENTRU FIRME PE BAZA UNEI RELATII

#INVECTITII=300+0.6*VENITURI+erori

#erorile urmeaza o distributie normala de medie 0 si abatere standard 1

erori<-rnorm(n=300,mean = 0,sd=1)

investitii<-(300+0.6*firmeTotal$venituriFirme+erori)

View(investitii)

#ADAUGARE INVESTITII LA DATA FRAME

firmeTotal<-cbind(firmeTotal,investitii)

#GRAFIC PLOT
plot(investitii,main="Investitii firme",col="red",type="l")

######## LEGATURA DINTRE INVESTITII SI VENITURI ########

#GRAFIC PLOT PENTRU CORELATIA DINTRE VENITURI SI INVESTITII

plot(firmeTotal$investitii,firmeTotal$venituriFirme,main="Legatura dintre venituri si


investitii",col="red")

#COEFICIENTUL DE CORELATIE LINIARA PEARSON - r

cor(firmeTotal$investitii,firmeTotal$venituriFirme)

#GRAFICE PLOT

windows()

par(mfrow=c(2,1))

plot(firmeTotal$venituriFirme,main="Venituri firme",col="red",type="l")

plot(firmeTotal$investitii,main="Investitii firme",col="green",type="l")

######### GENERARE COSTURI PENTRU FIRME ############

#GENERARE COSTURI DE PRODUCTIE PENTRU FIECARE FIRMA

# FIRME MARI - DISTRIBUTIE NORMALA DE MEDIE 250 SI ABATERE STANDARD 120

# FIRME MICI - DISTRIBUTIE NORMALA DE MEDIE 200 SI ABATERE STANDARD 115

costuri_firmeMari<-rnorm(n=dim(firmeMari)[1],mean=250,sd=120)

costuri_firmeMici<-rnorm(n=dim(firmeMici)[1],mean=200,sd=115)

#ADAUGARE INVESTITII LA SUBSETURI

firmeMari<-cbind(firmeMari,costuri_firmeMari)

firmeMici<-cbind(firmeMici,costuri_firmeMici)
View(firmeMari)

View(firmeMici)

#UNIM CELE DOUA SUBSETURI

#TREBUIE SA AVEM DENUMIRI IDENTICE LA COLOANE CA SA PUTEM SA UNIM

colnames(firmeMari)[5]="costuriFirme"

colnames(firmeMici)[5]="costuriFirme"

FIRME<-rbind(firmeMari,firmeMici)

View(FIRME)

#GRAFICE PLOT

windows()

par(mfrow=c(3,1))

plot(firmeMari$costuriFirme,main="Costuri firme mari",col="red",type="l")

plot(firmeMici$costuriFirme,main="Costuri firme mici",col="blue",type="l")

plot(FIRME$costuriFirme,main="Costuri firme",col="green",type="l")

########## CALCUL RENTABILITATI FIRME ##############

#CALCULAM PROFITUL FIRMELOR

#PROFIT=VENITURI-COSTURI

profitFirme<-FIRME$venituriFirme-FIRME$costuriFirme

#ADAUGAM COLOANA PROFIT LA DATA FRAME

FIRME<-cbind(FIRME,profitFirme)

#CALCULAM RATA DE RENTABILITATE PENTRU FIRME

#RATARENT=profit/venit*100

ratarentFirme<-FIRME$profitFirme*100/FIRME$venituriFirme
#ADAUGAM COLOANA RATEI RENTABILITATILOR LA DATA FRAME

FIRME<-cbind(FIRME,ratarentFirme)

#GRAFICE PLOT

windows()

plot(FIRME$ratarentFirme,main="RATA RENTABILIATE FIRME",col="green",type="l")

help("summary")

summary(FIRME)

###### STATISTICI FIRME PE SECTOARE DE ACTIVITATE ######

#CREARE SUBSET PENTRU FIECARE SECTOR DE ACTIVITATE

firmeConstructii<-subset(FIRME,domeniuFirme=="CONSTRUCTII")

View(firmeConstructii)

firmeAlimentar<-subset(FIRME,domeniuFirme=="ALIMENTAR")

View(firmeAlimentar)

firmeAsigurari<-subset(FIRME,domeniuFirme=="ASIGURARI")

View(firmeAsigurari)

#STATISTICI DESCRIPTIVE PENTRU RATA DE RENTABILITATE

summary(firmeConstructii[7])

summary(firmeAlimentar[7])

summary(firmeAsigurari[7])
SEMINAR 8 SI SEMINAR 9
REGRESIE
#SETAM DIRECTORUL

setwd("C:/Users/Asus VivoBook/Desktop/Microeconomie/Actiuni/Import date")

#IMPORTAM DATELE DIN CSV

recap<-read.csv("cerere.csv",header = TRUE,sep = ";")

View(recap)

#CREAM OBIECTE PENTRU FIECARE COLOANA

attach(recap)

###ANALIZA EVOLUTIEI IN TIMP A CERERII SI A PRETULUI###

#ANALIZA EVOLUTIEI IN TIMP A CERERII SI A PRETULUI PENTRU BUNURI ALIMENTARE

#GRAFICE PLOT

windows()

par(mfrow=c(2,1))

plot(DATE,FOOD,main="CEREREA DE BUNURI ALIMENTARE",col="red",type="l")

plot(DATE,PFOOD,main="PRETURI BUNURI ALIMENATRE",col="green",type="l")

#TREND CRESCATOR

#CREARE DATA FRAME CU BUNURILE ALIMENTARE

FOODdata<-data.frame(DATE,FOOD,PFOOD)
View(FOODdata)

#NE CREAM O SERIE DE TIMP ORDONATA DUPA ANI (COLOANA 1 DIN FOODdata)

install.packages("zoo")

library(zoo)

zooFOOD<-zoo(FOODdata[,-1],order.by = FOODdata[,1])

View(zooFOOD)

#IDENTIFICARE ANI IN CARE AVEM CELE MAI MARI MODIFICARI ALE CERERII SI PRETULUI

#CALCULAM MODFICARILE PENTRU FIECARE AN (DELTA)

deltaFOOD<-diff(zooFOOD)

View(deltaFOOD)

#ALEGEM CEA MAI MARE MODIFICARE (TREBUIE SA LUAM VALORILE ABSOLUTE)

#CEA MAI MARE MODIFICARE A PRETULUI

maxDeltaPFOOD<-max(abs(deltaFOOD$PFOOD))

maxDeltaPFOOD

deltaFOOD[deltaFOOD$PFOOD==maxDeltaPFOOD]

#CEA MAI MARE MODIFICARE A CERERII

maxDeltaFOOD<-max(abs(deltaFOOD$FOOD))

maxDeltaFOOD

deltaFOOD[deltaFOOD$FOOD==maxDeltaFOOD]

############DETERMINARE PRETURI REALE###########

#DETERMINARE PRETURI REALE DIN PRETURI NOMINALE PENTRU BUNURILE ALIMENATRE

#PRETURI REALE=PRETURI NOMINALE*100 / INDICE DE PRETURI

PFOOD_reale<-(PFOOD*100)/PTPE
#ADAUGAM COLOANA PRETURI REALE BUNURI ALIMENTARE LA DATA FRAME

recap<-cbind(recap,PFOOD_reale)

##############STATISTICI DESCRIPTIVE##############

#STATISTICI DESCRIPTIVE PENTRU CEREREA SI PRETURILE REALE PENTRU BUNURILE ALIMENTARE

#PENTRU CERERE

summary(FOOD)

mean(FOOD)

sd(FOOD)

cv_FOOD<-sd(FOOD)*100/mean(FOOD)

cv_FOOD

#PENTRU PRETURILE REALE

summary(PFOOD_reale)

mean(PFOOD_reale)

sd(PFOOD_reale)

cv_PFOOD_reale<-sd(PFOOD_reale)*100/mean(PFOOD_reale)

cv_PFOOD_reale

###### ANALIZA GRAFICA CERERE SI PRETURI REALE #######

#GRAFIC HISTOGRAMA

#CERERE

windows()

par(mfrow=c(2,1))

hist(FOOD,main="Histograma cererii pentru bunuri alimentare",col="red")

densitate_FOOD<-density(FOOD)

plot(densitate_FOOD,main="Denistate cerere bunuri alimentare",col="red")

#PRETURI
windows()

par(mfrow=c(2,1))

hist(PFOOD_reale,main="Histograma preturilor reale pentru bunuri alimentare",col="green")

densitate_PFOOD_reale<-density(PFOOD_reale)

plot(densitate_PFOOD_reale,main="Denistate preturilor reale bunuri alimentare",col="green")

#SKEWNESS SI KURTOSIS

install.packages("moments")

library(moments)

skewness(FOOD)

kurtosis(FOOD)

skewness(PFOOD_reale)

kurtosis(PFOOD_reale)

#GRAFIC BOXPLOT

windows()

par(mfrow=c(2,2))

hist(FOOD,main="Histograma cererii pentru bunuri alimentare",col="red")

boxplot(FOOD,main="BOXPLOT cerere pentru bunuri alimentare",col="red")

hist(PFOOD_reale,main="Histograma preturilor reale pentru bunuri alimentare",col="green")

boxplot(PFOOD_reale,main="BOXPLOT preturilor reale pentru bunuri alimentare",col="green")

#IDENTIFICARE OUTLIERI

#CERERE

q1_FOOD<-quantile(FOOD,0.25)

q3_FOOD<-quantile(FOOD,0.75)

outlier_FOOD<-subset(recap,FOOD>(q3_FOOD+(q3_FOOD-q1_FOOD))|FOOD<(q1_FOOD-(q3_FOOD-
q1_FOOD)))

View(outlier_FOOD)
#PRETURI REALE

q1_PFOOD_reale<-quantile(PFOOD_reale,0.25)

q3_PFOOD_reale<-quantile(PFOOD_reale,0.75)

outlier_PFOOD_reale<-subset(recap,PFOOD_reale>(q3_PFOOD_reale+(q3_PFOOD_reale-
q1_PFOOD_reale))|PFOOD_reale<(q1_PFOOD_reale-(q3_PFOOD_reale-q1_PFOOD_reale)))

View(outlier_PFOOD_reale)

## ANALIZA DEPENDENTEI DINTRE PRETUL REAL SI CERERE ##

#DETERMINARE COEFICIENT DE CORELATIE INTRE CERERE SI PRETURI REALE

cor(FOOD,PFOOD_reale)

#LEGATURA INDIRECTA SI PUTERNICA

#GRAFIC PLOT

#DEPENDENTA DINTRE PRETUL REAL SI CEREREA PENTRU BUNURI ALIMENTARE

windows()

plot(FOOD,PFOOD_reale,main="DEPENDENTA DINTRE CERERE SI PRETURI REALE",type="l")

#LEGATURA INDIRECTA, PRETURILE CRESC, CEREREA SCADE

#ADAUGARE DREAPTA DE REGRESIE IN GRAFICUL PLOT

windows()

plot(FOOD,PFOOD_reale,main="DEPENDENTA DINTRE CERERE SI PRETURI REALE",type="l")

abline(lm(PFOOD_reale~FOOD),col="green")
#### REGRESIE LINIARA: FUNCTIE DE CERERE INDIRECTA ####

#FUNCTIE DE CERERE INDIRECTA -> EXPRIMAM PRETURILE IN FUNCTIE DE CERERE

#VARIABILA INDEPENDENTA:CEREREA

#VARIABILA DEPENDENTA:PRETURILE REALE

regresie_cerere_indirecta<-lm(PFOOD_reale~FOOD)

summary(regresie_cerere_indirecta)

#FUNCTIE DE REGRESIE: preturi_reale=123.08-0.039*cerere

#DETERMINAM VALORILE ESTIMATE ALE PRETURILOR REALE PE BAZA FUNCTIEI DE REGRESIE

PFOOD_reale_estimate<-fitted(regresie_cerere_indirecta)

#ADAUGAM COLOANA CU VALORILE ESTIMATE IN DATA FRAME

recap<-cbind(recap,PFOOD_reale_estimate)

#VALORI REALE VS VALORI ESTIMATE

#GRAFIC PLOT

preturi_reale<-data.frame(PFOOD_reale,PFOOD_reale_estimate)

ts.plot(preturi_reale,col=c("red","blue"),main="Valori intiale vs valori estimate - cerere indirecta",lwd=2)

legend('topright',c('PFOOD reale','PFOOD estimate'), col=c('red','blue'),lwd=3)

#ANALIZA REZIDUURILOR

rezidual<-resid(regresie_cerere_indirecta)

hist(rezidual,main="Histograma reziduurilor cerere indirecta")


# REGRESIE FUNCTIA PUTERE: FUNCTIE DE CERERE
INDIRECTA#

#FUNCTIA PUTERE

#pret=(cerere/a)^(1/alpha)

#pret=(1/a)^(1/alpha) * cerere^(1/alpha)

#NOTATII

#m=(1/a)^(1/alpha)

#n=(1/alpha)

#pret=m * cerere^n

#LOGARITMAM VARIABILELE CA SA AJUNGEM LA FUNCTIE LINIARA

#ln(pret)=ln(m)+n*ln(cerere)

#LOGARITMAM VARIABILELE

log_FOOD<-log(FOOD)

log_PFOOD_reale<-log(PFOOD_reale)

#GRAFIC PLOT

windows()

plot(log_FOOD,log_PFOOD_reale,main="FUNCTIA DE CERERE INDIRECTA - FUNCTIE PUTERE", type="l")

abline(log_PFOOD_reale~log_FOOD)

#FUNCTIE DE CERERE INDIRECTA FOLOSIND FUNCTIA PUTERE

regresie_cerere_indirecta_fputere<-lm(log_PFOOD_reale~log_FOOD)
summary(regresie_cerere_indirecta_fputere)

#FUNCTIA DE REGRESIE: log(pret)=5.54254-0.14576*log(cerere)

#DETERMINARE COEFICIENTI

#ln(m)=5.54254

#n=-0.14576

ln_m<-coef(regresie_cerere_indirecta_fputere)[1]

n<-coef(regresie_cerere_indirecta_fputere)[2]

ln_m

#m=e^5.54254

m<-exp(ln_m)

#pret=255.3258 * cerere^(-0.14576)

#ELASTICITATEA INDIRECTA (IN PROCENTE) = n = 1/ALPHA = -0.14576

#ELASTICITATEA DIRECTA (IN U.M) ALPHA=1/n=-6.860781

elasticitate_ind<-n

elasticitate_ind

elasticitate_dir<-1/n

elasticitate_dir

#DETERMINAM VALORILE ESTIMATE ALE PRETURILOR REALE PE BAZA FUNCTIEI DE REGRESIE

PFOOD_reale_estimate_fputere<-fitted(regresie_cerere_indirecta_fputere)

#VALORI REALE VS VALORI ESTIMATE

#GRAFIC PLOT

preturi_reale_fputere<-data.frame(log_PFOOD_reale,PFOOD_reale_estimate_fputere)
ts.plot(preturi_reale_fputere,col=c("red","blue"),main="Valori intiale vs valori estimate - cerere
indirecta - f putere",lwd=2)

legend('topright',c('PFOOD reale','PFOOD estimate'), col=c('red','blue'),lwd=3)

#ANALIZA REZIDUURILOR

rezidual<-resid(regresie_cerere_indirecta_fputere)

hist(rezidual,main="Histograma reziduurilor cerere indirecta - f putere")

S-ar putea să vă placă și