r programı Üzerinden bir uygulama
TRANSCRIPT
R İle İstatistiksel Programlama Final Soruları
1. https://delicious.com/e.a/data’ da bulunan linklerden ya da istediğiniz bir yerden bir
veri seti seçiniz. Eğer internet sitesinden direk aldıysanız ya da farklı sitelerden
birleştirerek oluşturduysaniz linkleri yazınız. Hazır bir veri seti kullanıysanız
nereden bulduğunuzu yazınız. Veri seti seçerken gözlem sayısının 1000 den fazla,
değişken sayısının da 7den fazla olmasına dikkat ediniz.
Link: http://www.umass.edu/statdata/statdata/stat-logistic.html 2. Veri setinizi excel, csv ya da text dosyası olarak odev emaili ile birlikte gonderin.
Seçtiğiniz veri setini R a aktarın ve ismini veri yapın.
R Kodu: veri <- read.csv("veri.csv",header=TRUE,sep=";")
3. Veri setini önce kısaca sözel olarak tanıtınız.Ne hakkında, nasıl toplanmış,
değişkenler nelerdir gibi. Daha sonra veri seti üzerinde tanımsal istatistikleri R ile
gerçekletiriniz. Sizce veri seçtiğiniz veri setini tanımak için neler yapmanız
gerekiyorsa onları uygulayın. (grafikler hariç)
Tanım: Verimiz çocuklar üzerinde yapılan bir miyopluk araştırmasıdır, miyopluk var mı, yok mu diye araştırılmıştır. Mercek kalınlığı, eksen uzunlukları vs. gibi özelliklerin miyopluğa göre farklılık gösterip göstermediği incelenmiştir, bir de çocukların yaptıkları aktivitelerin miyopluklarında ne derece önemli olduğu araştırılmıştır.
X1-Miyopluk X2-Odaklama X3-Eksen X4-Ön Oda X5-Mercek X6-Viterus Boşluğu X7-Aktivite X8-Kitap X9-Oyun X10-Ders X11-TV X12-Diğer
R kodu: > class(veri) Verinin yapısına bakılır. >veri1 <- as.matrix(veri) Matrise atama kodu. >names(veri) Verideki değişkenlerin isimleri.
> length(veri) Verinin uzunluğu. > sum(veri) Toplam. > mean(veri1) Genel Ortalama. > mean (veri$x1,x2..) Tek tek sütunların ortalaması. > median(veri1) Medyan. > min(veri1) Minimum. > max(veri1) Maximum. > quantile(veri1) Yüzdelik. >sd(veri1) Genel Standart sapma. > sd(veri$x1,x2..) Tek tek sütunların standart sapması. > var(veri1) Varyans. > summary(veri1) Veri hakkında özet bilgi. >cor(veri1) Korelasyon. Ekran Görüntüsü:
4. Farklı değişkenlerde histogram, cubuk ve pasta grafik ile sacılım diyagramı
olusturun. Grafikler üzerinde baslık, eksen isimlendirme, renklendirme, kulllanılan
semboller gibi özellikleri olabildiğince argümanları kullanarak gerçekleştirin
R Kodu: >M<- table(veri$miyopluk) > lbls <- paste(names(M), "\n", M, sep="") > pie(M, labels=lbls,main="Pasta Grafiği\n (with sample sizes)")
Ekran Görüntüsü: (Pasta Grafiği)
R Kodu: > Y<- table(veri$x1, veri$x2) > barplot(Y,main="veri by x1 and x2", xlab="Number of x2",col=c("darkblue","red"),legend=rownames(Y)) Ekran Görüntüsü: (Çubuk Grafiği)
R Kodu: > x <- veri$x2 > h<-hist(x, breaks=10, col="red", xlab="L",main="Histogram ve normal dağılım") > xfit<-seq(min(x),max(x),length=40) > yfit<-dnorm(xfit,mean=mean(x),sd=sd(x))
0
537
1
81
Pasta Grafiği
(with sample sizes)
-0.7 0 0.25 0.56 0.86 1009 1168 1368 1799
1
0
veri by x1 and x2
Number of x2
02
46
81
0
> yfit <- yfit*diff(h$mids[1:2])*length(x) > lines(xfit, yfit, col="blue", lwd=2) Ekran Görüntüsü: (Histogram ve Normallik)
Recommender Yardımıyla; >instal.packages(“Rcmdr) >library(Rcmdr) R Kodu: > with(veri, indexplot(x2, type='h', id.method='y', id.n=2, labels=rownames(veri)))
Histogram ve normal dağılım
L
Fre
qu
en
cy
0 1000 2000 3000 4000
01
00
20
03
00
40
0
Ekran Görüntüsü:
R Kodu: >with(veri, Hist(x1, scale="frequency", breaks="Sturges", col="darkgray")) Ekran Görüntüsü:
R Kodu: >with(veri, lineplot(x2, x3)) Ekran Görüntüsü:
R Kodu: > xyplot(x1 + x5 ~ x3 + x4, type="p", pch=16, auto.key=list(border=TRUE), par.settings=simpleTheme(pch=16), scales=list(x=list(relation='same'), y=list(relation='same')), data=veri)
0 100 200 300 400 500 600
01
00
02
00
03
00
04
00
0
Observation Index
x2
609530
x3
fre
qu
en
cy
20 21 22 23 24 25
05
01
00
15
0
0 1000 2000 3000 4000
20
21
22
23
24
x2
x3
Ekran Görüntüsü:
R Kodu: > Boxplot( ~ x4, data=veri, id.method="y") Ekran Görüntüsü:
5. Oluşturduğunuz 4 farklı grafiği tek bir grafik gibi (bir ekran görüntüsünde 4 grafik
olacak) görselleştirin.
R kodu: > scatterplot(x5~x6, reg.line=lm, smooth=TRUE, spread=TRUE, id.method='mahal',id.n = 2, boxplots='xy', span=0.5, data=veri)
x3 + x4
x1 +
x5
0
1000
2000
3000
4000
0 1000 2000 3000 4000
x1 * x3x1 * x4x5 * x3x5 * x4
01
00
02
00
03
00
04
00
0
x4
248963515946220736941553485
Ekran Görüntüsü:
R kodu: > scatterplotMatrix(~x2+x3+x4, reg.line=lm, smooth=TRUE, spread=FALSE, span=0.5, id.n=0, diagonal = 'density', data=veri)
Ekran Görüntüsü:
6. Bir regresyon modeli uygulayın. Regresyon modelini oluştururken yapmaniz
gerekenleri gerçeklestirin
R kodu > lm1 <- lm(x1 ~ x2+x3+x4+x5+x6, data=veri) > lm1 >summary(lm1) > lm2 <- lm(x1 ~ x7+x8+x9+x10+x11+x12, data=veri) > lm2 >summary(lm2)
14 15 16 17
01000
2000
3000
4000
x6
x5
175
243
x2
20 21 22 23 24
010
0020
0030
0040
00
2021
2223
24 x3
0 1000 2000 3000 4000 0 1000 2000 3000 4000
010
0020
0030
0040
00
x4
Ekran Görüntüsü
Bağımlı değişken olarak x1 alınırsa (miyop olup olmama durumu);
𝑋 = −1.396e − 01 − 8.900e − 05 𝑋2 + 7.992e − 02𝑋3 − 3.081e − 05 𝑋3 − 6.021e − 06𝑋4
− 9.036e − 02𝑋5 > plot(lm1$residuals,lm1$fitted.values)
Regresyon modelinin özeti;
-0.2 0.0 0.2 0.4 0.6 0.8
-0.2
-0.1
0.0
0.1
0.2
0.3
lm1$residuals
lm1
$fitte
d.v
alu
es
Bağımlı değişken olarak x1 alınırsa (miyop olup olmama durumu);
𝑋 = 0.1533358 − 0.0045839 𝑋7 + 0.0108775𝑋8 + 0.0030270 𝑋9 − 0.0074583𝑋10
+ 0.0007657𝑋11 > plot(lm2$residuals,lm2$fitted.values)
Regresyon modelinin özeti;
-0.2 0.0 0.2 0.4 0.6 0.8 1.0
-0.0
50
.00
0.0
50
.10
0.1
50
.20
0.2
50
.30
lm2$residuals
lm2
$fitte
d.v
alu
es
7. dplyr paketini kullanarak veri setiniz için aşağıdaki işlemleri gerçekleştirin ( _____
kısımlarında veri setinizden uygun olan herhangi bir değişkeni/sayıyı seçerek
işlemleri gerçekleştirin. ben burada örnek olarak x1 diyorum. Altı çizili olan her şeyi
değiştirin)
> install.packages("dplyr")
> library(dplyr)
a) veri ‘yi x1 değişkenini değerleri 34’den fazla olacak şekilde filtreleyin
R kodu
> filter(veri,x2 >34)
Ekran goruntusu
b) veri ‘den iadeli olarak 50 rassal örnek çekiniz. (50 gözlem bütün değişkenler)
R kodu: > sample_n(veri, 50)
Ekran Görüntüsü:
c) veri’de değişkeni isimlerinde . (nokta) barındıran değişkenleri seçerek veri2
isimli yeni bir nesne oluşturun. (burada veri setinize gore noktayı altcizgi ya da
herhangi bir harf ile değiştirebilirsiniz)
Değişkenlerimizin orajinal isimleri;
>names(veri)
“_” içerenleri seçerek yeni veri setine atalım;
R kodu: > veri2<-select(veri, contains("_")) > veri2 Ekran Görüntüsü: