R Curso Básico de R

Software R

Acesse o resumo: USANDO O R COMO FERRAMENTA ESTATÍSTICA

O software R é um dos mais utilizados pelos profissionais da área de Estatística e pode ser adquirido gratuitamente nos links:
http://www.vps.fmvz.usp.br/CRAN/

https://cran.r-project.org/bin/windows/base/

Ele foi criado pelos professores Ross Ihaka e Robert Gentleman na Universidade de Auckland – na Nova Zelândia com a colaboração de pesquisadores de vários outros países.

Trata-se de uma linguagem de programação especializada em computação de dados e que faz parte da filosofia de GNU – General Public License.

Por ser gratuito e de fácil utilização vem se tornando um dos programas mais populares no mundo da
estatística.

Após realizar download do programa, você verá uma tela de abertura.
Clique em ARQUIVO – ESCOLHA NOVO SCRIPT. CLIQUE EM JANELAS e peça para exibir lado a lado.

A tela de script (da esquerda) auxilia a entrada das expressões necessárias que são executadas na tela da direita.

Basta acionar CONTROL R ao lado da expressão de interesse na tela da esquerda para que o processamento ocorra na tela da direita.

Durante a utilização do software é possível consultar a sintaxe de algum comando ou obter mais informações sobre determinada função. Para isso o R conta com o comando help.

Exemplo: help(mean)
Usamos #para comentários

**Cuidado – ao copiar e colar as linhas de comando para o R as aspas se modificam (itálico). É preciso arrumar senão não funcionará no R. 

 

Exemplo 1 – Construindo um histograma:
#Diversas temperaturas foram coletadas em um determinado período

temperatura<-c(33,40,37,35,31,27,32,34,38,31,39,33,37,28,26,24,20,29,31,34,32)
hist(temperatura)

Exemplo 2– Leitura de arquivo de dados em csv

Leitura de dados na internet:

read.table(url(“http://assets.datacamp.com/blog_assets/chol.txt&#8221;), header = TRUE)

hist(AirPassengers, main=”Histogram for Air Passengers”, xlab=”Passengers”, border=”blue”, col=”green”, xlim=c(100,700), las=1, breaks=5)

=======================================

dados1=read.csv2(“http://www.estatisticacomr.uff.br/wp-content/uploads/2015/07/acidentes.csv&#8221;)
dados1
hist(dados1[,2])
mean(dados1[,2])
median(dados1[,2])
boxplot(dados1[,2])
barplot(dados1[,2])
sd(dados1[,2])

Fonte: http://www.estatisticacomr.uff.br/

Como comprar um carro com o R


Se um arquivo estiver dentro de uma pasta no c: “teste_r” podemos fazer:

setwd(“c:/teste_r”)
getwd()
biometria=read.csv2(“biometria.csv”)
fix(biometria)
hist(biometria[,2])
mean(biometria[,2])

Exercício de aplicação: Baixar o arquivo biometria.xls

biometria

Salvar como biometria.csv e posicionar em uma determinada pasta no diretório C

Realize a leitura do arquivo e obtenha as médias, medianas, desvio padrão das grandezas quantitativas.

Construa o histograma e o diagrama de caixa (boxplot) para as grandezas quantitativas.

Construa uma correlação estatística entre massa corporal e estatura. 

biometria


Exemplo 3- Construindo um diagrama de caixa ou box plot:

tempo<-c(50,40,41,17,11,7,22,44,28,21,19,23,37,51,54,42)
boxplot(tempo)

Exemplo 4-  Gráfico de pizza

Ao se digitar os comandos abaixo tem-se o gráfico de pizza:
frota<-c(80000, 60000, 20000,4000,2000)
names(frota)<-c(“carros”,”motos”,”caminhões”,”ônibus”,”outros”)
pie(frota)
porc<-round(frota*100/sum(frota),2) #arredonda a porcentagem)

rotulos<-paste(“(“,porc,”%)”,sep=””)
pie(frota, main=”Frota de carros na cidade de Marília (2010)”,labels=rotulos, col=rainbow(7))
legend(1,1,names(frota),col = rainbow(7),pch=rep(20,6))

Exemplo 5- Gráfico de linha

Ao se digitar os comandos abaixo tem-se um gráfico de linha.
ano<-2001:2009
cidadea<-c(76,65,69,60,62,69,60,69,70)
cidadeb<-c(56,52,55,54,56,58,57,60,62)
plot(ano, cidadea,type=”l”,main=”Distribuição de
chuvas”,xlab=”ano”,ylab=”Volume em mm”,col=”blue”,ylim=c(50,80))
lines(ano, cidadeb,col=”red”)


Exemplo 6- Gráfico de barras

Ao se digitar os comandos abaixo tem-se gráfico de colunas.
alunos<-c(1200,3000,2000,1500)
escola<-c(“privada”,”estadual”,”municipal”,”federal”)
barplot(alunos, names.arg=escola, type=”l”,main=”Tipo de Escola”)

Exemplo 7 – Correlação linear 

Digite os comandos e observe o valor dos coeficientes da reta ajustada.

A equação que se ajusta exatamente ao conjunto de pontos experimentais é Y = 2,18.X – 0,6.
x<-c(1,2,3,4,5,6,7,8,9,10)
y<-c(2,4,5,10,12,9,13,17,19,23)
lm(y~x)
plot(x,y)
equacao<-lm(y~x)
abline(equacao)

Exemplo 8- Analise a regressão múltipla.

O custo de um imóvel pode ser estimado a partir de sua área construída e de seu tempo de uso. O custo é a variável dependente da área e do tempo de uso.
Trata-se de um evento onde Y = variável dependente e X1 e X2 = variáveis
independentes.
Basta escrever as expressões a seguir:
y<-c(400000,
832000,1100000,727000,784000,1158400,1080000,840000,920000,713000,620000,600000,733000,915000,980000,1060000)
x1<-c(60, 86,105,100,88,100,136,86,84,94,100,86,78,84,78,94)
x2<-c(9,10,8,11,8,9,9,10,11,6,14,13,10,8,6,4)
model<-lm(y~x1+x2)
anova (model)
lm(formula=y~x1+x2)

Exemplo 9-Curva Normal

Suponha que a estatura média de uma população seja de 1,70m com
desvio padrão de 0,10m, pode-se afirmar que aproximadamente 95,44% das
pessoas terão estatura entre 1,50m e 1,90m (1,50 +/- 2 desvios-padrão). A
distribuição da estatura da população do exemplo acima poderia ser plotada no
software R utilizando-se os comandos:
x<-seq(80,250,len=170)
fx<-dnorm(x, 170,10)
plot(x,fx,type=”l”)

Se quisermos conhecer a probabilidade de encontrarmos na população uma
pessoa com estatura menor que 1,50m digitamos:
pnorm(150, mean = 170, sd = 10).
A resposta é 0.02275013 ou 2,27%.

Exemplo 10- Distribuição Binomial

Suponha que um pesquisador esteja interessado em avaliar as chances de ocorrência de nenhuma inundação na cidade nos próximos 5 anos. Sabe-se que a probabilidade anual de ocorrência de inundações é de 20% ou 0,2.

Seja X = número de inundações nos 5 anos.
Esse valor pode ser de 0, 1, 2, 3, 4 e 5.
Ou seja, durante os cinco anos observados pode não acontecer nenhuma
inundação, mas também podem acontecer 1, 2, 3, 4 ou 5.
Para fins de estatística diz-se que a probabilidade de sucesso, ou de ocorrência
do evento observado é calculado como sendo:

P(x=0) =0,32  é o resultado calculado manualmente usando a equação.

Ou seja, há 32% de chances de não ocorrer enchente nos 5 anos observados.
No software R, o cálculo da probabilidade em questão seria obtido apenas com a
expressão:

Digite no R:
dbinom(0,5,0.2)

Observe o resultado: 0,32768.

Para a construção do gráfico de distribuição de frequência de probabilidades
basta digitar os seguintes comandos no R:
x<-0:5
fx<-dbinom(x,5,0.2)
plot(x,fx,type=”h”)
barplot(fx)

Exemplo 11- Distribuição binomial

Suponha que a chance de se encontrar uma peça sem defeito em
uma linha de produção de uma indústria é de 80% (p=0,8 é a probabilidade de
sucesso). Um estagiário selecionou aleatoriamente 20 peças para análise. Qual a
probabilidade de se encontrar exatamente 16 peças boas nas 20 peças da
amostra?
Ao digitar os comandos a seguir no software R tem-se:

x<-0:20
fx<-dbinom(x,20,0.8)
plot(x,fx,type=”h”)
dbinom(16,20,0.8)
barplot(fx)

Faça a lista de exercícios descrita a seguir:

USANDO O R COMO FERRAMENTA ESTATÍSTICA

 


Usando R para fazer realizar Testes de Hipóteses

12- Um fabricante vende lâmpadas e afirma que a vida útil delas é de 2000h. O desvio padrão é de 200h. Um comprador realizou testes com uma amostra aleatória de 30 unidades e obteve vida útil média de 1880h. Com 95% de nível de confiança é possível afirmar que a vida útil é mesmo 2000h?

a) Inicialmente é preciso formular as hipóteses:

Hipótese nula    μ = 2000h

Hipótese alternativa    μ ≠ 2000h

b) Calculamos a estatística de Teste Zcal

Zcal <-(1880-2000)/(200/sqrt(30))

Zcal

Zcal = -3.286335

c) Calculamos qual é o Zcrítico. Como é um teste bilateral, vamos rejeitar a Ho se Zcal for maior que Zcrítico ou se Zcal for menor que -Zcritico.

curve(dnorm, -3,3, xlab=””,ylab=””)
text(0,0.1,”Teste Bilateral”)
alpha<-0.05
alpha_2<- alpha/2
zalpha_2 <-abs(qnorm(alpha_2))
polygon(x =c(-3, seq(-3, -zalpha_2, l = 20),- zalpha_2), y=c(0,dnorm(seq(-3, -zalpha_2, l = 20)),0),col=”red”)
polygon(x =c(3, seq(3, zalpha_2, l = 20),zalpha_2), y=c(0,dnorm(seq(3, zalpha_2, l = 20)),0),col=”red”)
alpha
alpha_2
zalpha_2
-zalpha_2
text(2.5,0.2,”RC Halt”)
text(-2.5,0.2,”RC Halt”)

mpop<-2000
xbarra<-1880
n<-30
dp<-200
Z<-(xbarra-mpop)/(dp/sqrt(n))
Z

A expressão a seguir é o Teste de Hipóteses. O resultado será TRUE, ou seja, como Z<(-zalpha_2) então rejeita-se a Hipótese nula Ho.

Z<(-zalpha_2)

d) No nosso caso, Z < – 1,959  – Então rejeitamos Ho. Podemos afirmar com 95% de nível de confiança que o tempo médio de vida da população de lâmpadas é diferente de 2000h.


Teste de Hipóteses com a Estatística de Teste T:

13- Um fabricante diz que suas cordas resistem em média 240kN. Uma amostra da resistência de 5 cordas é analisada. As resistências obtidas nos testes de tração forneceram: 

254kN, 165kN, 189kN, 277kN, 235kN e 198kN

Hipótese nula Ho:   Resistência média  = 240kN

Hipótese alternativa:    Resistência ≠ 240kN

Observe como fazer o Teste T

amostra<-c(254,165,189,277,235,198)
t.test(amostra, mu=240, alternative=”two.sided”,conf.level=0.99)

Interprete os resultados, comparando com a solução manual.

One Sample t-test

data: amostra
t = -1.1675, df = 5, p-value = 0.2956
alternative hypothesis: true mean is not equal to 240
99 percent confidence interval:
149.4436 289.8898
sample estimates:
mean of x
219.6667


Teste de Hipóteses com a Estatística de Teste T:

14- Uma empresa tem dois fornecedores de tubos de aço maciço para construção dos eixos de seus motores. Com o objetivo de comparar as resistências à tração, foram testados 10 peças fornecidas pela empresa A e 10 peças fornecidas pela empresa B. 

Faça um teste estatístico T e analise os resultados.

amostra1=c(16.6,13.4,14.6,15.1,12.9,15.2,14.0,16.6,15.4,13.0)
amostra2=c(15.8,17.9,18.2,20.2,18.1,17.8,18.3,18.6,17.0,18.4)
amostra1
amostra2
t.test(amostra1,amostra2,alternative=”two.sided”)

Welch Two Sample t-test

data: amostra1 and amostra2
t = -6.0257, df = 17.425, p-value = 1.227e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-4.520774 -2.179226
sample estimates:
mean of x mean of y
14.68 18.03

Veja agora a mudança do teste:

amostra1=c(16.6,13.4,14.6,15.1,12.9,15.2,14.0,16.6,15.4,13.0)
amostra2=c(15.8,17.9,18.2,20.2,18.1,17.8,18.3,18.6,17.0,18.4)
amostra1
amostra2
t.test(amostra1,amostra2,alternative=”less”)

Welch Two Sample t-test

data: amostra1 and amostra2
t = -6.0257, df = 17.425, p-value = 6.137e-06
alternative hypothesis: true difference in means is less than 0
95 percent confidence interval:
-Inf -2.384224
sample estimates:
mean of x mean of y
14.68 18.03

 

 


Observe como plotar um gráfico da distribuição Normal:

a <- 0
b <- 2
a.n <- “0”
b.n <- “2”
plot(dnorm, -4, 4, xlab = “”, ylab = “”, axes = F, bty = “n”)
polygon(x = c(a, seq(a, b, l = 20), b), y = c(0, dnorm(seq(a,
+ b, l = 20)), 0), col = “gray”)
text(c(a, b), c(-0.011, -0.011), c(a.n, b.n), cex = 0.6)
segments(-4, -0.004, 4, -0.004)

Observe esse outro exemplo:

curve(dnorm(x), from = -4, to = 4, ylab = “”)
segments(1, -0.2, 1, 0.243)
text(0, 0.1, “P”)

14- Desenhando uma curva normal 

x<-seq(80,250,len=170)
fx<-dnorm(x, 170,20)
plot(x,fx,type=”l”)

Se quisermos conhecer a probabilidade de encontrarmos na população uma
pessoa com estatura menor que 1,50m digitamos:
pnorm(150, mean = 170, sd = 20)

Resultado:  0.1586553  ou 15,8%


15-  Em uma linha de produção, 20% dos produtos têm algum defeito. Qual a probabilidade de encontrarmos mais de 4 produtos com defeitos em uma amostra de tamanho 10?

x<-0:10
fx<-dbinom(x,10,0.2)
plot(x,fx,type=”h”)
dbinom(3,10,0.2)
dbinom(2,10,0.2)
dbinom(1,10,0.2)
dbinom(0,10,0.2)
barplot(fx)

 

Resolva com o software R e manualmente:

1- Um fabricante vende lâmpadas e afirma que a vida útil delas é de 2000h. O desvio padrão é de 200h. Um comprador realizou testes com uma amostra aleatória de 30 unidades e obteve vida útil média de 1950h. Com 99% de nível de confiança é possível afirmar que a vida útil é mesmo 2000h?


2- Um fabricante diz que suas cordas resistem em média 250kN. Uma amostra da resistência de 5 cordas é analisada. As resistências obtidas nos testes de tração forneceram:

254kN, 240kN, 230kN, 277kN, 240kN e 230kN

Com 95% de nível de confiança é possível afirmar que as cordas têm mesmo resistência média de 250kN?


3- Uma empresa tem dois fornecedores de tubos de aço maciço para construção dos eixos de seus motores. Com o objetivo de comparar as resistências à tração, foram testados 10 peças fornecidas pela empresa A e 10 peças fornecidas pela empresa B. Faça um teste estatístico T e analise os resultados. Compare as médias e avalie se é possível afirmar que os eixos têm resistência a tração diferente.

amostra1=c(16.6,13.4,14.6,11.1,12.9,15.2,14.0,16.6,15.4,12.0)
amostra2=c(15.8,17.9,18.2,20.2,18.1,17.8,18.3,18.6,17.0,20.4)


4- Um comprador selecionou 10 amostras de uma resistor e mediu a resistência em kΩ. Com Nível de confiança de 95% qual é o intervalo de confiança das resistências da população de resistores? Utilize T Student.

(15.8,17.9,18.2,20.2,18.1,17.8,18.3,18.6,17.0,20.4)

amostra2<-c(15.8,17.9,18.2,20.2,18.1,17.8,18.3,18.6,17.0,20.4)
mean(amostra2)
sd(amostra2)
qt(c(0.95), df=9)
qt(c(0.05), df=9)
Erro<-sd(amostra2)*(qt(c(0.95), df=9))/sqrt(10)
Erro
mean(amostra2)+Erro
mean(amostra2)-Erro


5- Qual a diferença entre uma amostra sistemática e uma amostra estratificada?

6- Uma escola com 2000 alunos precisa fazer uma pesquisa de opinião sobre a qualidade de atendimento dos servidores. Nesse caso, qual seria o tamanho mínimo da amostra necessária? Considere margem de erro aceitável da pesquisa como sendo 10%. Se a escola tem 3 públicos distintos, qual seria a proporção na amostra?

a) 1000 alunos no Ensino Médio

b) 200 alunos na Engenharia

c) 800 alunos nos cursos técnicos.

O tamanho da amostra é calculado por:

no=1/(0,10²)

N=2000

n = tamanho da amostra = (no*N)/(no+N)

n=96

A proporção deve ser respeitada: 50% da amostra tem que ser para alunos do Ensino Médio, 10% opara alunos da Engenharia e 40% para alunos dos cursos técnicos.


 

7-  São realizados teste de tensão de ruptura em 20 corpos de prova. A carga no ponto de falha foi calculada em um valor médio de 11,5MPa e desvio padrão de 3MPa. Os dados obtidos nos permite afirmar com nível de confiança de 95% que a tensão de ruptura da população dos corpos de prova é superior a 10 MPa?

Ho – hipótese nula      μ = 10MPa

H1 – Hipótese alternativa    μ > 10MPa

Tteste=(11.5-10)/(3/sqrt(20))

Tteste=+2.23

Tcrítico =+1,73

Como Tteste > Tcrítico rejeitamos Ho e aceitamos a hipótese alternativa de que a resistência é maior que 10MPa com nível de confiança de 95%.


8-  São realizados testes de tensão de ruptura em 20 corpos de prova de um determinada peça de aço. A carga no ponto de falha foi calculada em um valor médio de 11,5MPa e desvio padrão de 3MPa. Com nível de confiança de 95%, qual é o intervalo de confiança da resistência das peças de aço (população)?

qt(c(.05, .95), df=19)    # 19 graus de liberdade

Com a linha de comando acima obtemos os valores de t e -t

-1.729133  1.729133

qt(c(0.95), df=19)   #df = nível de confiança
qt(c(0.05), df=19)
Xbarra<-11.5    #Xbarra é a resistência média da amostra
DesvioPadrao<-3   #Desvio padrão da amostra
DP<-3
DP
qt(c(0.95), df=19)
sqrt(20)
Erro<-DP*(qt(c(0.95), df=19))/sqrt(20)
Erro
Xbarra+Erro
Xbarra-Erro


9-Uma fábrica  de Jaraguá do Sul produz rolamentos para a Fórmula 1. Os rolamentos são feitos de esferas de aço polido.  O desvio padrão do diâmetro de rolamentos é de 0,1mm. Para avaliar a qualidade dos rolamentos produzidos, um engenheiro coletou uma amostra aleatória de 10 esferas da produção diária. Usando um paquímetro ele obteve as seguintes medições para as esferas em mm. Calcule o intervalo de confiança para a média das esferas produzidas pela máquina com nível de confiança de 95%.

8,2    8,3   8,4   8,2    8,2     8,4    8,3    8,4   8,2   8,4

Solução:
amostra<-c(8.2,8.3,8.4,8.2,8.2,8.4,8.3,8.4,8.2,8.4)
sigma<- 0.1 #desvio padrão dado
mean(amostra) #calcula a média da amostra
sd(amostra) #calcula o desvio padrão da amostra
alpha<-0.05 #define o nível de significância lembrando que nível de confiança = 1-alpha
metade_alpha<-0.05/2 #considerando metade do nível de significância para cada lado
metade_alpha
zmetade_alpha <-abs(qnorm(metade_alpha)) #calcula o Z para esse nivel de confiança
zmetade_alpha
mean(amostra)+(zmetade_alpha*sigma)/sqrt(10) #define qual o limite superior do intervalo de confiança
mean(amostra)
+(zmetade_alpha*sigma)/sqrt(10)
-(zmetade_alpha*sigma)/sqrt(10)
mean(amostra)-(zmetade_alpha*sigma)/sqrt(10) #define qual o limite inferior do intervalo de confiança


Fonte

http://www.r-tutor.com/elementary-statistics/probability-distributions/student-t-distribution

https://cran.r-project.org/doc/contrib/Landeiro-Introducao.pdf

 

 

 


Fonte:

http://www.ufpa.br/heliton/arquivos/programacao/R/R_graficos_UFSC.pdf