Zadanie 1

Zależność między dochodem a prestiżem

ggplot(Prestige, aes(income, prestige))+
  geom_point()+
  labs(title='Wykres rozrzutu dochodu i prestiżu')

Na podstawie wykresu rozrzutu można zauważyć dodatnią korelację między badanymi zmiennymi. Istnieje ogólna tendencja wzrostu prestiżu wraz ze wzrostem dochodu, co sugeruje, że zawody o wyższym prestiżu zazwyczaj wiążą się z wyższymi dochodami. Przy niższych poziomach dochodów - do około 10,000 - występuje szeroki zakres wartości prestiżu, od bardzo niskiego do stosunkowo wysokiego. Może to oznaczać, że niektóre zawody o niższych dochodach również są postrzegane jako prestiżowe. Z kolei wśród zawodów powyżej wspomnianej, wszystkie charakteryzują się wysokim prestiżem, jednak takich osób jest zauważalnie mniej, niż takich z niskimi dochodami.

Regresja lokalna

fit <- locpoly(Prestige$income, Prestige$prestige, degree=0, bandwidth=8, gridsize = 1000) %>% as.tibble
## Warning: `as.tibble()` was deprecated in tibble 2.0.0.
## ℹ Please use `as_tibble()` instead.
## ℹ The signature and semantics have changed, see `?as_tibble`.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
ggplot(Prestige) +
  geom_point(aes(x=income, y=prestige)) +
  geom_line(data=fit, aes(x=x, y=y), col='cornflowerblue')+ 
  labs(title = 'Lokalna linia dopasowania przedstawiająca zależność między dochodem a prestiżem')

Analiza lokalna potwierdza pozytywną zależność między dochodem a prestiżem, z większą stabilnością przy wyższych dochodach, oraz wskazuje na zróżnicowanie prestiżu w zawodach o niższych dochodach. W przedziale niższych dochodów linia regresji wykazuje pewne wahania, co może oznaczać większe zróżnicowanie prestiżu dla zawodów o niższych dochodach, co jest zgodne z poprzednio przedstawionym wnioskiem, że niektóre zawody o niższych dochodach mogą mieć stosunkowo wysoki prestiż.

Loess

fit2 <- loess(prestige~income, span=0.40, degree=2,
  family="gaussian", Prestige)
fit3 <- loess(prestige~income, span=0.40, degree=2,
  family="symmetric", Prestige)
ggplot(Prestige)+
  geom_point(aes(x=income,y=prestige))+
  geom_line(aes(x=income,y=fitted(fit2)), col='violetred')+
  geom_line(aes(x=income,y=fitted(fit3)), col='darkturquoise')+
  labs(title='Loess z rozróznieniem na rozkład gaussian i symmetric')

Wykres przedstawia zależność między dochodem a prestiżem z dwoma dopasowaniami nieliniowymi, dla różnych rodzajów rozkładów: gaussian (kolor różowy) i symmetric (kolor turkusowy). Obie linie dopasowania pokazują podobny trend, wskazując na rosnący prestiż wraz ze wzrostem dochodu do poziomu około 15,000, po czym wzrost prestiżu staje się bardziej płaski. Różnice między rozkładem gaussian a symmetric są widoczne przede wszystkim przy niższych wartościach dochodów.Dopasowanie drugiego z nich jest bardziej wygładzone, podczas gdy ten pierwszy wykazuje większe wahania. Jednak bez względu na zastosowany rozkład, widoczna jest ogólna tendencja wzrostowa prestiżu wraz ze wzrostem dochodu.

fit4 <- loess(prestige~income, span=0.40, degree=1, family="symmetric", Prestige)

ggplot(Prestige)+
  geom_point(aes(x=income,y=prestige))+ 
  geom_line(aes(x=income,y=fitted(fit3)), col='orchid')+ 
  geom_line(aes(x=income,y=fitted(fit4)), col='darkturquoise')+ 
  labs(title='Loess z rozróżnienem na 1 i 2 stopień wielomianu')

Bez względu na stopień wielomianu, oba wykresy charakteryzują się widocznym trendem wzrostowym, przy czym model z wielomianem 1 stopnia jes bardziej wygładzony i wykazuje większy trend wzrostowy w przypadku wartości z wyższym dochodem.

Sploty naturalne

fit5 <- lm(prestige ~ ns(income, df=6), Prestige)
fit6 <- lm(prestige ~ ns(income, df=3), Prestige)
ggplot(Prestige) +
  geom_point(aes(x=income,y=prestige))+ 
  geom_line(aes(x=income,y=fitted(fit5)), col='orchid')+
  geom_line(aes(x=income,y=fitted(fit6)), col='darkturquoise')+
  labs(title='Sploty naturalne df = 6 , df = 3')

Na podstawie wygenerowanego wykresu przedstawiającego sploty naturalne, mozna wywynioskować, że wraz ze wzrostem stopnia swobody, wzrasta szczegółowość splotu.

ggplot(Prestige) +
    geom_point(aes(x=income,y=prestige)) +
    geom_smooth(aes(x=income,y=prestige), method='gam', formula = y ~ s(x,k=6))+
  labs(title='Sploty z uwzględnieniem przedziałów ufności')

Powyższy wykres punktowy przedstawia dane rzeczywiste oraz dodatkowo pojawił się wygładzony trend wyznaczony za pomocą modelu regresji addytywnej , który uwzględnia elastyczną formę zależności między zmiennymi. Obszar zacieniony wokół linii trendu wskazuje przedział ufności, który pokazuje zakres niepewności modelu co do przewidywanych wartości. Na podstawie wszystkich wykresów wykorzystanych w tym zadaniu można stwierdzić, że dochody mają silny wpływ na prestiż, ale relacja ta jest nieliniowa, a przy wyższych poziomach dochodów dodatkowy wzrost prestiżu jest ograniczony.

Zadanie 2

Zależność pomiędzy czasem a przyśpieszeniem

ggplot(mcycle, aes(times, accel))+
  geom_point()+
  labs(title='Wykres rozrzutu czasu i przyśpieszenia')+
  xlab('Czas (ms)')+
  ylab('Przyśpieszenie (g)')

Wykres sugeruje dynamiczne zmiany przyspieszenia w czasie, co może być efektem reakcji na zewnętrzne siły lub niestabilności w układzie. Początkowo przyspieszenie utrzymuje się w okolicach zera, ale około 15-20 ms gwałtownie spada poniżej -100 g, a następnie stopniowo wraca do wartości bliższych zera. Najniższa wartość przyspieszenia występuje między 15 a 25 ms, gdzie wartość przyspieszenia osiąga swoje minimum. Następnie przyspieszenie zaczyna wzrastać, choć pojawiają się dodatkowe wahania. Po osiągnięciu minimum przyspieszenie rośnie, ale widać nieregularne oscylacje. To może wskazywać na niejednostajny ruch lub wpływ zmiennych zewnętrznych.

Regresja lokalna

fit7 <- locpoly(mcycle$times, mcycle$accel, 
               degree=0, bandwidth=1) %>% as.tibble
fit8 <- locpoly(mcycle$times, mcycle$accel, 
               degree=0, bandwidth=2) %>% as.tibble

ggplot(mcycle) +
  geom_point(aes(x=times, y=accel)) +
  geom_line(data=fit7, aes(x=x, y=y), col='orchid')+
  geom_line(data=fit8, aes(x=x, y=y), col='cornflowerblue')+
  labs(title='Regresja lokalna locpoly z różną szerokością pasma')

Na podstwie wykresu widać, że mniejsza szerokość pasma (fioletowa linia) powoduje większe dopasowanie do lokalnych wahań danych. Ta linia lepiej odzwierciedla drobne zmiany w przyspieszeniu, jednak jest bardziej “poszarpana” i wrażliwa na szum.Większa szerokość pasma (niebieska linia) wygładza wykres, co daje bardziej stabilny, uśredniony trend. Linia ta lepiej oddaje ogólny kształt zależności, ale gubi niektóre szczegóły i drobne oscylacje. Oba modele pokazują podobny trend, gdzie przyspieszenie początkowo jest bliskie zeru, następnie gwałtownie spada do wartości poniżej -100, a potem wzrasta i oscyluje wokół wartości zera. Wybór szerokości pasma zależy od celu analizy: jeśli ważne są drobne szczegóły, lepiej zastosować węższe pasmo, natomiast jeśli ważniejsze jest skupienie na ogólnym trendzie i uniknięciu nadmiernego dopasowania do szumu, lepsze będzie szersze pasmo.

Loess

fit9 <- loess(accel~times, span=0.3, degree=2,
  family="gaussian", mcycle)
fit10 <- loess(accel~times, span=0.5, degree=2,
  family="gaussian", mcycle)

ggplot(mcycle)+
  geom_point(aes(x=times,y=accel))+
  geom_line(aes(x=times,y=fitted(fit9)), col='darkturquoise')+
  geom_line(aes(x=times,y=fitted(fit10)), col='orchid')+
  labs(title='Loess z różną szerokością pasma')

Zwiększenie szerokości pasma zmniejsza szczegółowość funcji.

ggplot(mcycle) +
    geom_point(aes(x=times,y=accel)) +
    geom_smooth(aes(x=times,y=accel), method='loess',span=0.30, col='darkturquoise')+
  labs(title='Loess o szerokości pasma z 30% przedziałem ufności')
## `geom_smooth()` using formula = 'y ~ x'

Wykres pokazuje nieliniowy związek między czasem a przyspieszeniem, gdzie przyspieszenie początkowo jest stabilne, następnie gwałtownie spada, osiąga minimum, potem wzrasta do szczytu i stabilizuje się. Na wykresie odwzorowany zosał trend, a 30% przedział ufności jest szerszy w środkowej części wykresu, co wskazuje na większą niepewność i rozproszenie danych w tym zakresie. Poza tym występują pojedyncze punkty odstające, sugerujące możliwe anomalie.

Sploty naturalne

fit11 <- lm(accel ~ ns(times, df=6), mcycle)
fit12 <- lm(accel ~ ns(times, df=10), mcycle)
ggplot(mcycle) +
  geom_point(aes(x=times,y=accel))+ 
  geom_line(aes(x=times,y=fitted(fit11)), col='violetred')+
  geom_line(aes(x=times,y=fitted(fit12)), col='darkturquoise')+
  labs(title='Sploty naturalne df = 6 , df = 10')

Na wykresie przedstawiono dwa dopasowania modelu splajnu naturalnego do danych, z różną liczbą stopni swobody. Dopasowanie z większą liczbą stopni swobody lepiej podąża za szczegółami danych, co sprawia, że jest bardziej złożone i dokładnie odwzorowuje lokalne zmiany przyspieszenia. Dopasowanie z mniejszą liczbą stopni swobody jest bardziej wygładzone i uwzględnia ogólny trend, ale pomija drobniejsze wahania. Oba modele wykazują podobny ogólny wzorzec, ale różnią się szczegółowością w odwzorowaniu zmienności danych.