1
1

uzupełnienie repo o różne pomoce

This commit is contained in:
2026-04-21 20:58:36 +02:00
parent c3266e4854
commit d72216df26
37 changed files with 4755 additions and 159 deletions
@@ -0,0 +1,64 @@
Szanowna Pani, Szanowny Panie,  
prosimy o udział w badaniu, którego celem jest przystosowanie do polskich warunków narzędzia o nazwie _Inwentarz Przekonań Filozoficznych i Metodologicznych_ (Philosophical and Methodological Beliefs Inventory, Johnson & Onwuegbuzie, 2004, Sheehan & Johnson, 2012), który służy do oceny preferencji w zakresie metod i metodologii badań naukowych lub diagnostycznych. Inwentarz składa się z 55 stwierdzeń.  
Udział w badaniu tego inwentarza polega na ustosunkowaniu się do jego stwierdzeń za pomocą skali szacunkowej.   
Warunkiem udziału w badaniu jest dobrowolna zgoda oraz doświadczenie dydaktyczne w szkolnictwie wyższym lub podyplomowym.  
Podczas badania pobierane będą wyłącznie dane niezbędne do zrealizowania celu badania i tylko w tym celu będą one przetwarzane. Elektroniczny formularz wykorzystywany w tym badaniu nie gromadzi danych osobowych, ani adresów IP.  
Formularz składa się z trzech części:  
1. _Klauzula informacyjna_,   
2. _Inwentarz PMBI-55_,   
3. _Charakterystyka osoby respondenta_.  
Jeśli miał(a)by Pan(i) uwagi do treści inwentarza PMBI-55, to uprzejmie prosimy o ich umieszczenie w polu „Miejsce na Pana/Pani uwagi”, które znajduje się na ostatniej pozycji tego inwentarza.  
Dziękujemy za współpracę.  
Zespół,   
Sławomir Pasikowski i Martyna Jarota,   
Katedra Badań Edukacyjnych, Wydział Nauk o Wychowaniu, Uniwersytet Łódzki  
_Pytania i komentarze nie znajdujące miejsca w formularzu proszę kierować pod adres: [slawomir.pasikowski@now.uni.lodz.pl](mailto:slawomir.pasikowski@now.uni.lodz.pl)_  
__Badanie jest częścią projektu badawczego, który uzyskał pozytywną ocenę Komisji ds. Etyki Badań Naukowych Uniwersytetu Łódzkiego (Uchwała nr 7/KEBN UŁ/III/2023-24 z dn. 9 lutego 2024)._  
_
Wymagane
KLAUZULA INFORMACYJNA
**Kto prowadzi to badanie i w jakim celu?**  
Badanie realizowane jest przez pracowników Wydziału Nauk o Wychowaniu Uniwersytetu Łódzkiego. Celem projektu jest adaptacja do polskich warunków Inwentarza Przekonań Filozoficznych i Metodologicznych (PMBI, Johnson & Onwuegbuzie, 2004; Sheehan & Johnson, 2012), służącego do oceny preferencji dotyczących metod i metodologii badań naukowych lub diagnostycznych. Osobą odpowiedzialną za projekt jest dr hab. Sławomir Pasikowski ([slawomir.pasikowski@now.uni.lodz.pl](mailto:slawomir.pasikowski@now.uni.lodz.pl)).  
**Na czym polega udział w badaniu?**  
Udział polega na wypełnieniu elektronicznego formularza zawierającego twierdzenia inwentarza oraz pytania dotyczące m.in. wieku, płci metrykalnej i doświadczenia dydaktycznego. Wypełnienie formularza nie powinno zająć więcej, niż 20 minut.  
**Kto może wziąć udział?**  
Do udziału zapraszamy osoby pełnoletnie z doświadczeniem dydaktycznym w szkolnictwie wyższym lub podyplomowym.  
**Jakie są korzyści z udziału?**  
Udział nie musi przynieść bezpośrednich korzyści, jednak zebrane dane posłużą opracowaniu polskiej wersji inwentarza PMBI, co może przysłużyć się rozwojowi nauki i dydaktyki.  
**Czy udział wiąże się z ryzykiem?**  
Udział może wiązać się z odczuwaniem pewnych emocji, jednak ich intensywność nie przekracza poziomu codziennego dyskomfortu. Badanie może być też pozytywnym doświadczeniem.  
**Czy udział jest dobrowolny?**  
Udział jest całkowicie dobrowolny. Można je przerwać w dowolnym momencie, zamykając stronę badania bez konsekwencji.  
**Czy dane będą anonimowe i jak będą przetwarzane?**  
Dane są zbierane anonimowo nie gromadzimy danych umożliwiających identyfikację (np. nazwiska, IP). Dane będą przetwarzane zgodnie z RODO. Baza zostanie udostępniona w otwartym repozytorium naukowym, ale w sposób uniemożliwiający identyfikację uczestników. W razie pytań można kontaktować się z kierownikiem badania lub Inspektorem Ochrony Danych ([iod@uni.lodz.pl](mailto:iod@uni.lodz.pl)).  
**Co stanie się z informacjami?**  
Dane zostaną wykorzystane wyłącznie do celów naukowych. Na prośbę respondenta dane mogą zostać usunięte. W tym celu poprosimy o podanie indywidualnego kodu respondenta tworzonego przez Pana/Panią przed rozpoczęciem badania. Tylko w ten sposób będziemy mogli zidentyfikować dane, które miałyby zostać usunięcie.  
**Czy przewidziane jest wynagrodzenie?**  
Nie przewidujemy wynagrodzenia za udział.  
**Kto finansuje badanie?**  
Projekt nie jest finansowany zewnętrznie. Korzystamy z zasobów udostępnianych przez Uniwersytet Łódzki.  
**Czy można otrzymać wyniki?**  
Nie udostępniamy wyników indywidualnych, ale możliwe jest uzyskanie zbiorczych wyników w tym celu prosimy o kontakt z kierownikiem badania.
![[Pasted image 20250516170041.png]]
+26
View File
@@ -0,0 +1,26 @@
Formularz zgody na badanie z udziałem ludzi
Tytuł badania: **Doświadczenia moralne dnia codziennego**
**Kluczowe informacje**: Niniejszy formularz zgody zawiera prośbę o wzięcie udziału w badaniu prowadzonym przez prof. Pawła Kleka (pawel.kleka@amu.edu.pl).
**Cel**: Badanie to ma na celu pomóc nam zrozumieć, w jaki sposób ludzie doświadczają moralności w różnych codziennych sytuacjach.
**O co zostaniesz poproszony**: W ciągu najbliższych kilku dni wyślemy Ci kilka ankiet, w których zapytamy o doświadczenia, a także przemyślenia i odczucia związane z tymi doświadczeniami.
To badanie składa się z wielu sesji. Zostaniesz poproszony o podanie podstawowych informacji demograficznych i wypełnienie kilku ankiet. Następnie wypełnisz serię krótkich ankiet wysyłanych 5 razy dziennie przez 4 dni. Następnego dnia poprosimy Cię o wypełnienie kilku dodatkowych ankiet dotyczących Twoich postaw i nawyków. Całkowity czas wymagany do wzięcia udziału w tym badaniu wyniesie około 1 godziny rozłożonej na 6 dni.
Udział w badaniu jest dobrowolny. Jeśli chcesz przerwać lub zakończyć udział w nim, skontaktuj się z badaczem wymienionym w otrzymanym arkuszu informacyjnym.
Możesz wycofać się w dowolnym momencie, ale przesłanie wszystkich ankiet jest potrzebne, aby otrzymać kod ukończenia. Niektóre pytania demograficzne można pominąć. Aby wziąć udział w badaniu, wymagane jest podanie przynależności politycznej i religijności.
W jaki sposób zostanie zachowana poufność: Odpowiedzi udzielane w trakcie badania będą anonimowe, a udział w badaniu pozostanie poufny. Dane będą wykorzystywane wyłącznie do celów badawczych. Wszystkie dane będą zawsze bezpiecznie przechowywane.
**Przyszłe wykorzystanie danych**: Anonimowe dane zostaną publicznie udostępnione społeczności badawczej w celu dalszych analiz.
**Korzyści i zagrożenia**: To badanie nie przyniesie osobistych korzyści. Nie znamy żadnego ryzyka związanego z udziałem w tym badaniu poza poświęconym nań czasem.
W przypadku jakichkolwiek pytań dotyczących tego badania prosimy o kontakt z badaczem, który je prowadzi.
**Kliknięcie przycisku Akceptuj**: Klikając "Akceptuję, proszę o włączenie mnie do badania", wskazujesz, że masz ukończone 18 lat, dobrowolnie zgadzasz się na udział w tym badaniu i rozumiesz informacje zawarte w niniejszym formularzu zgody. Użytkownik nie zrzeka się żadnych praw, które przysługiwałyby mu jako uczestnikowi badania. Jeśli nie chcesz kontynuować, opuść aplikację w tym momencie.
@@ -0,0 +1,417 @@
# Instrukcja pracy z Git i Gitea
Ten dokument zawiera kompletną instrukcję pracy z systemem kontroli wersji Git oraz platformą Gitea dla studentów seminarium. Instrukcja jest zorganizowana od podstaw do bardziej zaawansowanych operacji.
---
## Spis treści
1. [Co to jest Git?](#1-co-to-jest-git)
2. [Instalacja Git](#2-instalacja-git)
3. [Pierwsze logowanie do Gitea](#3-pierwsze-logowanie-do-gitea)
4. [Konfiguracja Git na komputerze](#4-konfiguracja-git-na-komputerze)
5. [Pierwsze pobieranie repozytorium](#5-pierwsze-pobieranie-repozytorium)
6. [Codzienna praca z Git](#6-codzienna-praca-z-git)
7. [Sprawdzanie statusu pracy](#7-sprawdzanie-statusu-pracy)
8. [Rozwiązywanie problemów](#8-rozwiązywanie-problemów)
9. [Zaawansowane operacje](#9-zaawansowane-operacje)
10. [Dobre praktyki](#10-dobre-praktyki)
---
## 1. Co to jest Git?
Git to narzędzie do **kontroli wersji** plików, które umożliwia:
- Śledzenie historii zmian w plikach
- Współpracę wielu osób nad tym samym projektem
- Przywracanie poprzednich wersji plików
- Równoległą pracę nad różnymi wersjami projektu (gałęzie)
**Gitea** to platforma webowa (podobna do GitHub), która pozwala na wygodne przeglądanie repozytoriów przez przeglądarkę internetową.
---
## 2. Instalacja Git
Przed rozpoczęciem pracy musisz zainstalować Git na swoim komputerze.
### Windows
1. Pobierz instalator ze strony: **https://git-scm.com/download/windows**
2. Uruchom pobrany plik i postępuj zgodnie z instrukcjami instalatora
3. Podczas instalacji pozostaw domyślne ustawienia (klikaj „Next")
4. Po instalacji otwórz **Git Bash** lub **PowerShell** i sprawdź instalację:
```bash
git --version
```
Alternatywnie możesz zainstalować Git przez winget (w PowerShell):
```bash
winget install --id Git.Git -e --source winget
```
### macOS
**Opcja 1 Xcode Command Line Tools** (najprostsza):
```bash
xcode-select --install
```
**Opcja 2 Homebrew** (zalecana dla aktualnej wersji):
```bash
brew install git
```
Po instalacji sprawdź wersję:
```bash
git --version
```
### Linux (Ubuntu/Debian)
```bash
sudo apt-get update
sudo apt-get install git
```
### Linux (Fedora)
```bash
sudo dnf install git
```
Po instalacji sprawdź wersję:
```bash
git --version
```
---
## 3. Pierwsze logowanie do Gitea
1. Otwórz przeglądarkę internetową i przejdź na adres:
**http://150.254.88.90:3000**
2. Zaloguj się używając:
- **Login**: Twój adres uczelniany (np. `pawkle1@st.amu.edu.pl`)
- **Hasło początkowe**: `HakerzyZnają` (zmień je przy pierwszym logowaniu!)
3. Po zalogowaniu przejdź do **Ustawień profilu** i uzupełnij:
- Imię i nazwisko
- Avatar (opcjonalnie)
1. Kliknij **Odkrywaj**, aby zobaczyć dostępne repozytoria.
1. Otwórz repozytorium.
2. Możesz edytować i przeglądać pliki, README, literaturę lub materiały przez stronę www.
---
## 4. Konfiguracja Git na komputerze
Po instalacji Git musisz skonfigurować swoje dane. Otwórz terminal (Git Bash na Windows) i wykonaj:
```bash
git config --global user.name "Twoje Imię i Nazwisko" # zapisane w Gitea
git config --global user.email "twoj.email@st.amu.edu.pl"
```
Te dane będą widoczne przy każdej wprowadzonej przez Ciebie zmianie. Jeśli chcesz używać inne repozytoria, np. na GitHub od Microsoftu pomiń `--global` aby ustawienia były lokalne, tylko do danego repozytorium.
Sprawdź konfigurację:
```bash
git config --list
```
---
## 5. Pierwsze pobieranie repozytorium
### Przez terminal
1. Otwórz terminal (na windowsie PowerShell lub CMD) i przejdź do katalogu, w którym chcesz mieć repozytorium:
```bash
cd /ścieżka/do/katalogu
```
2. Sklonuj repozytorium:
```bash
git clone http://150.254.88.90:3000/Seminaria-KLEKA/Seminarium-Psychologia-2027.git
# jeśli pojawi sie info o braku uwierzytelnienia - zaloguj sie do repozytorium w przeglądarce
# jesli nie masz programu git ściągnij go ze strony https://git-scm.com/install/
```
3. Jeśli pojawi się prośba o uwierzytelnienie podaj login i hasło z Gitea.
4. Wejdź do sklonowanego katalogu:
```bash
cd Seminarium-Psychologia-2027
```
### Przez aplikację graficzną
Możesz też używać aplikacji graficznych takich jak:
- **GitHub Desktop** (https://desktop.github.com)
- **Sourcetree** (https://www.sourcetreeapp.com)
---
## 6. Codzienna praca z Git
### Model 1: Praca na wspólnej gałęzi `main`
Ten model jest odpowiedni, gdy wszyscy pracują nad wspólnymi plikami. Tak np. jest w naszym seminarium na początku. W miarę rozrostu projektów możemy przenosić się na indywidualne gałęzie lub wręcze prywatne repozytoria.
#### Krok 1: Pobierz najnowsze zmiany (ZAWSZE na początku pracy!)
```bash
git pull
```
#### Krok 2: Wprowadź zmiany
Edytuj lub dodaj pliki w katalogu repozytorium (np. notatki w `.md`, skrypty R, dane).
#### Krok 3: Dodaj pliki do zapisu
Dodaj konkretny plik:
```bash
git add NAZWA-PLIKU.md
```
Lub dodaj wszystkie zmienione pliki:
```bash
git add . # dodaje wszystkie pliki na listę do wysyłki
```
#### Krok 4: Zatwierdź zmiany z opisem
```bash
git commit -m "Opis zmiany, np. Dodano pomysł na badanie X"
```
#### Krok 5: Wyślij zmiany na serwer
```bash
git push origin main # wysyła pliki do repozytorium na główną gałąź
```
#### Krok 6: Sprawdź na stronie Gitea
Zaloguj się do Gitea i sprawdź w zakładce **Code**, czy Twoje pliki się pojawiły.
---
### Model 2: Praca na własnej gałęzi
Ten model jest odpowiedni, gdy każdy pracuje nad własnymi danymi/plikami niezależnie od innych.
#### Tworzenie własnej gałęzi (jednorazowo)
```bash
git checkout main
git pull
git checkout -b nazwa-twojej-galezi
```
Na przykład: `dane-katarzyna`, `rozdzial-3`, `oliwia-wniosek`
#### Codzienna praca na swojej gałęzi
```bash
# Upewnij się, że jesteś na swojej gałęzi
git checkout nazwa-twojej-galezi
# Wprowadź zmiany w plikach...
# Dodaj i zatwierdź zmiany
git add .
git commit -m "Aktualizacja danych"
# Wyślij na serwer
git push origin nazwa-twojej-galezi
```
#### Przełączanie między gałęziami
```bash
git checkout main # przejście na gałąź główną
git checkout dane-katarzyna # przejście na gałąź Katarzyny
```
### Lista wszystkich gałęzi
```bash
git branch -a
```
---
## 7. Sprawdzanie statusu pracy
### Sprawdź status zmian
Pokazuje zmodyfikowane pliki oraz pliki oczekujące na zatwierdzenie:
```bash
git status
```
### Historia commitów
Wyświetla listę ostatnich zmian:
```bash
git log --oneline
```
### Sprawdź aktualną gałąź
```bash
git branch
```
Gwiazdka (\*) oznacza gałąź, na której aktualnie pracujesz.
### Sprawdź zdalne repozytorium
```bash
git remote -v
```
---
## 8. Rozwiązywanie problemów
### Merge conflict (konflikt scalania)
Pojawia się, gdy dwie osoby edytowały ten sam fragment pliku.
**Rozwiązanie:**
1. Git oznaczy konfliktowe miejsca w pliku znacznikami `<<<<<<<`, `=======`, `>>>>>>>`
2. Otwórz plik i ręcznie wybierz właściwą wersję
3. Usuń znaczniki konfliktu
4. Zapisz plik i wykonaj:
```bash
git add nazwa-pliku
git commit -m "Rozwiązano konflikt"
git push
```
### Brak zmian po `git push`
Sprawdź:
- Czy jesteś w odpowiednim katalogu repozytorium?
- Czy jesteś na właściwej gałęzi? (`git branch`)
- Czy wykonałeś `git add` i `git commit` przed `git push`?
### Błąd uwierzytelnienia
Zaloguj się najpierw do Gitea przez przeglądarkę, a następnie spróbuj ponownie.
---
## 9. Zaawansowane operacje
### Ignorowanie plików (`.gitignore`)
Aby Git ignorował określone pliki, utwórz plik `.gitignore` w głównym katalogu repozytorium:
```
# Pliki tymczasowe R
.Rhistory
.RData
.Rproj.user/
# Katalog na pliki lokalne
_lokalnie/
```
Od tej pory GIt nie będzie zwracał uwagi co się dzieje w katalogu `_lokalnie`
### Usunięcie pliku/katalogu z repozytorium (zachowując lokalnie)
```bash
git rm -r --cached nazwa-katalogu
git commit -m "Usunięto katalog z repozytorium"
git push
```
### Usunięcie katalogu z gałęzi main
Jeśli przez pomyłkę dodano prywatny katalog do `main`:
```bash
git checkout main
git rm -r NazwaKatalogu/
git commit -m "Usunięto prywatny katalog"
git push
```
### Zmiana adresu zdalnego repozytorium
```bash
git remote set-url origin http://150.254.88.90:3000/Seminaria-KLEKA/NazwaRepo.git
```
### Nadpisanie zdalnej wersji lokalną (OSTROŻNIE!)
**Uwaga:** Ta operacja nadpisuje historię na serwerze!
```bash
git push origin main --force
```
---
## 11. Dobre praktyki
1. **Zawsze wykonuj `git pull` przed rozpoczęciem pracy** unikniesz konfliktów.
2. **Używaj opisowych wiadomości w commitach** np. „Dodano analizę rzetelności skali X" zamiast „update".
3. **Nie wysyłaj plików tymczasowych** dodaj do `.gitignore`:
- `.Rhistory`
- `.RData`
- `.Rproj.user/`
4. **Nie wysyłaj dużych plików binarnych** Git nie jest optymalny dla dużych plików (np. baz danych, filmów).
5. **Regularnie zapisuj postępy** małe, częste commity są lepsze niż jeden duży.
6. **Pracując na własnej gałęzi** nie dodawaj katalogów innych.
7. **W README zapisuj postępy i refleksje** to ułatwia orientację w projekcie.
---
## Szybka ściągawka
| Polecenie | Opis |
|-----------|------|
| `git clone URL` | Pobierz repozytorium |
| `git pull` | Pobierz najnowsze zmiany |
| `git status` | Sprawdź status zmian |
| `git add .` | Dodaj wszystkie pliki |
| `git commit -m "opis"` | Zatwierdź zmiany |
| `git push origin main` | Wyślij na serwer |
| `git branch` | Pokaż gałęzie |
| `git checkout nazwa` | Przełącz gałąź |
| `git checkout -b nazwa` | Utwórz nową gałąź |
| `git log --oneline` | Historia commitów |
---
**Wskazówka:**
Jeśli zapomnisz hasła lub napotkasz problem techniczny, skontaktuj się z prowadzącym seminarium.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,39 @@
---
author: Paweł Kleka
created: 2024-03-23
---
\begin{center}
{\Large Tutaj fajny tytuł}\\[.6em]
{\Large Autor lub Autorka}\\[1.0em]
{\large Uniwersytet im. Adama Mickiewicza w Poznaniu}
\end{center}
Lore ipsum jak pisał Hipler i Szwarz (1987) to było tak i nie było tak ale nadal nie wiadomo jak.
A może jeszcze obrazek? Szybko narysuję coś w [Excalidraw](https://ko-fi.com/zsolt) i wstawię bitmapę, bo:
![obrazek z Excalidraw o rozmiarze 300 | 300](tylko_png.png)
A na koniec wstawię wzór w linii: $\frac{ \text{praca} }{\hat{m}} = \sum_{i=1}^{100}{x}$
## Literatura
\newcommand{\entry}[1]{\noindent\hangindent=1.27cm #1\par}
\entry{Hippler, H.-J., Schwarz, N. (1987). Response effects in surveys. \textit{Social information processing and survey methodology} (p. 102-122). Springer. doi: 10.1007/978-1-4612-4798-26}
Literatura jest wstawiana ręcznie. Aby działały referencje i cross-referencje [zobacz tu](https://medium.com/better-humans/obsidian-tutorial-for-academic-writing-87b038060522).
---
## Instrukcja
Co potrzeba do działania?
1. Dwie wtyczki w Obsidian: **Pandoc Plugin** i **Enhancing Export**
2. Rysunek z **Excalidraw** trzeba wyeksportować do png | jpg i podać adres `![](nazwa.png)` < tu można użyć wtyczki **Link Converter**
3. Jeśli wszystkie ścieżki są ok(_czyli macie program pandoc zainstalowany!_), to polecenie **Enhancing Export ...** pozwoli wyeksportować ładny PDF.
Jako extra arguments dla PDF we wtyczce Export Settings mam:
`--pdf-engine=xelatex -V linkcolor=blue --variable geometry:a4paper --variable geometry=top=1.27cm, left=2.54cm, right=2.54cm, bottom=1.27cm --variable linestretch=1.5 --wrap=preserve --from=markdown+hard_line_breaks`
Jeśli template inny niż "None" nie działa to albo brakuje pakietów w instalacji TeX, albo problem z czcionką (wtedy `\usepackage{newtxtext}` w szablonie w katalogu `VAULT/.obsidian/plugins/obsidian-enhancing-export/templates/neurips.tex ` załatwia sprawę).
Binary file not shown.
@@ -0,0 +1,121 @@
Jesteś **specjalistą od precyzowania problemów badawczych i budowania ram teoretycznych** dla prac magisterskich empirycznych z psychologii. Twoja rola polega na **prowokowaniu studentów do krytycznego myślenia**, aby samodzielnie zdefiniowali:
- **Lukę badawczą** (co jest jeszcze niezbadane lub kontrowersyjne?),
- **Cel badawczy** (dlaczego to badanie jest wartościowe?),
- **Ramę teoretyczną** (jakie teorie, modele lub koncepcje będą podstawą pracy?).
**Zasady:**
1. **Nie podajesz gotowych tematów ani teorii** tylko zadajesz pytania, które pomagają studentowi **odkryć** je samodzielnie.
2. **Kierujesz na konkretne elementy artykułu naukowego**:
- Wstęp (uzasadnienie, luka badawcza),
- Ramy teoretyczne (teorie, definicje, modele),
- Hipotezy/pytania badawcze.
3. **Krótkie, celne pytania** jedno na raz, zawsze powiązane z **konkretnym elementem pracy**.
4. **Wykonalność**: Upewniasz się, że problem jest **mierzalny** i **realistyczny** (dostęp do próby, narzędzia, czas).
---
### **Przebieg Interakcji: Skoncentrowany na Problemie Badawczym i Ramach Teoretycznych**
#### **Krok 1: Zrozumienie Obszaru i Motywacji Studenta**
**Cel:** Dowiedzieć się, jaki obszar psychologii interesuje studenta i dlaczego.
**Przykładowe pytania:**
- *"Jakie zagadnienie z psychologii najbardziej Cię fascynuje? Może to być konkretne zjawisko, grupa ludzi lub problem społeczny."*
- *"Dlaczego ten temat Cię interesuje? Czy chodzi o jego praktyczne zastosowanie, brak badań, czy może osobiste doświadczenie?"*
- *"Czy masz już jakieś przeczucie, co w tym temacie jest jeszcze **niezbadane** lub **kontrowersyjne**?"*
---
#### **Krok 2: Identyfikacja Luk Badawczych**
**Cel:** Pomóc studentowi znaleźć **konkretną lukę** w literaturze, którą jego praca może wypełnić.
**Techniki:**
- *"Przeczytałeś jakieś badania na ten temat? Co Cię w nich zaskoczyło lub wydawało się **niedokończone**?"*
- *"Jakie pytania **pozostały bez odpowiedzi** w artykułach, które znałeś? Może autorzy sugerowali potrzebę dalszych badań?"*
- *"Czy w tym obszarze są **sprzeczne wyniki** lub **brakujące dane** dla konkretnej grupy (np. polskiej populacji, dzieci, seniorów)?"*
**Przykład:**
Student: *"Interesuje mnie wpływ mediów społecznościowych na samoocenę."
Ty: *"Super! A które **konkretne aspekty** tego wpływu są najsłabiej zbadane? Na przykład:
- **Mechanizmy** (dlaczego media obniżają samoocenę? Porównania społeczne? Ekspozycja na idealizowane treści?),
- **Grupy** (czy badania dotyczyły głównie nastolatek, a może chcesz zbadać młodych dorosłych mężczyzn?),
- **Kontekst** (czy badania dotyczyły głównie Instagrama, a Ty chcesz sprawdzić TikToka?)"
---
#### **Krok 3: Precyzowanie Problemu Badawczego**
**Cel:** Sformułować **konkretny, mierzalny problem**, który będzie podstawą hipotez.
**Pytania:**
- *"Jakie **konkretne zachowanie** lub **zmienna** Cię interesuje? (np. czas spędzany na scrollowaniu, liczba lajków, typ treści)."*
- *"Co chcesz **porównać** lub **sprawdzić**? (np. czy korzystanie z TikToka wiąże się z niższym poczuciem własnej wartości niż korzystanie z LinkedIn?)"*
- *"Jakie **teorie** mogą wyjaśniać ten związek? (np. teoria porównań społecznych, teoria autodeterminacji)."*
**Przykład:**
Student: *"Chcę zbadać, jak TikTok wpływa na samoocenę."
Ty: *"Aby to sprecyzować, zastanów się:
1. **Kto?** (grupa wiekowa, płeć, kulturowy kontekst),
2. **Co?** (jakie wskaźniki samooceny: ogólna, wygląd, kompetencje?),
3. **Jak?** (czy chodzi o **częstotliwość** korzystania, **typ treści**, czy **aktywne/pasywne użytkowanie**?).
Spróbuj sformułować zdanie: *Badanie sprawdzi, czy [konkretne zachowanie] wiąże się z [konkretnym wskaźnikiem] u [konkretnej grupy].*"
---
#### **Krok 4: Budowanie Ram Teoretycznych**
**Cel:** Pomóc studentowi **powiązać problem z istniejącymi teoriami**.
**Pytania:**
- *"Jakie **teorie psychologiczne** mogą wyjaśniać Twój problem? (np. teoria porównań społecznych Festingera, model akceptacji technologii)."*
- *"Jakie **pojęcia** musisz zdefiniować? (np. samoocena, uzależnienie od mediów, FOMO)."*
- *"Jakie **badania wcześniejsze** potwierdzają lub negują Twój pomysł? Jak się do nich odnieść?"*
**Przykład:**
Student: *"Myślę o teorii porównań społecznych."
Ty: *"Świetnie! Jak **konkretnie** ta teoria tłumaczy Twój problem? Czy chodzi o to, że użytkownicy TikToka porównują się do idealizowanych postaci, co obniża ich samoocenę? A może są inne mechanizmy?"*
---
#### **Krok 5: Formułowanie Hipotez/Pytań Badawczych**
**Cel:** Przekształcić problem w **testowalne hipotezy** lub pytania.
**Pytania:**
- *"Jeśli Twoja teoria mówi, że X wpływa na Y, to jakie **konkretne hipotezy** możesz postawić? (np. *Im więcej czasu spędza się na TikToku, tym niższa samoocena wyglądu*)."*
- *"Czy Twoje hipotezy są **mierzalne**? Jakie narzędzia (kwestionariusze, skale) mógłbyś użyć?"*
- *"Czy da się zbadać **związek przyczynowo-skutkowy**, czy tylko korelację? Jakie są ograniczenia Twojego projektu?"*
**Przykład:**
Student: *"Chcę sprawdzić, czy czas na TikToku obniża samoocenę."
Ty: *"Aby to zbadać, potrzebujesz:
1. **Narzędzia** do pomiaru czasu (np. self-report, dane z aplikacji),
2. **Skali samooceny** (np. Skala Rosenberga),
3. **Kontroli zmiennych** (np. płeć, wiek, wcześniejsze problemy z samooceną).
Jakie **statystyki** planujesz użyć? (korelacja, regresja, ANOVA?)"
---
#### **Krok 6: Weryfikacja Wykonalności**
**Cel:** Upewnić się, że projekt jest **realistyczny**.
**Pytania:**
- *"Jaką **próbę** planujesz zbadać? Ile osób? Jak je zrekrutujesz?"*
- *"Czy masz dostęp do **narzędzi** (kwestionariusze, oprogramowanie statystyczne)?"*
- *"Czy temat jest wystarczająco **wąski**, aby zmieścić się w 50-70 stron? Czy nie jest zbyt ogólny?"*
---
### **Przykładowy Dialog**
**Student:** *"Chcę napisać o wpływie stresu na studentów, ale nie wiem, jak zawęzić temat."
**Ty:** *"Zacznijmy od luk w badaniach. Czytałeś jakieś artykuły o stresie studentów? Co w nich **brakuje** lub jest **niedokończone**?"
**Student:** *"Większość badań dotyczy stresu egzaminacyjnego, ale mało jest o stresie związanym z pracą zawodową podczas studiów."
**Ty:** *"To ciekawy kierunek! A jakie **konkretne aspekty** tego stresu Cię interesują?
- **Źródła** (np. godzenie pracy z nauką, presja finansowa),
- **Skutki** (np. wypalenie, obniżone oceny, problemy ze snem),
- **Moderatory** (np. wsparcie społeczne, strategie radzenia sobie)?"*
**Student:** *"Skutki zwłaszcza wypalenie."
**Ty:** *"A jakie **teorie** mogą to wyjaśniać? (np. model wymagań-zasobów, teoria zachowania zasobów). Jakie **zmienne** chciałbyś zbadać? (np. liczba godzin pracy, satysfakcja z życia, poziom kortyzolu)?"*
---
### **Podsumowanie: Co Powinien Wynieść Student?**
Po rozmowie student powinien mieć:
1. **Sformułowany problem badawczy** (np. *"Badanie sprawdzi, czy łączenie pracy z pełnoetatowymi studiami zwiększa ryzyko wypalenia, z uwzględnieniem roli wsparcia społecznego."*).
2. **Ramę teoretyczną** (wybrane teorie, definicje kluczowych pojęć).
3. **Pytania/hipotezy badawcze** (konkretne, mierzalne).
4. **Plan metodologiczny** (próba, narzędzia, analiza danych).
+24 -159
View File
@@ -1,167 +1,32 @@
# Szablon pracy dyplomowej
# Zawartość
Jak pobrać repozytorium i rozpocząć pisanie pracy magisterskiej w RStudio przy uzyciu formatu Markdown (Quarto)?
Repo zawiera pliki przydatne przy tworzeniu i pisaniu pracy magisterskiej w nowoczesny sposób.
## 1. Pobranie wybranych plików
**Do_badania**: przykład instrukcji i zgody dla badanych
**O Git**: instrukcja jak korzystać z systemu wersjonowania plików
**Obsidian i Markdown**: Przykład jak z poziomu Obsidian generować dokumenty PDF korzystając z formatowania MD
**Prompty**: przykładowy prompt ustawiający AI w roli tutora pracy magisterskiej
**Statystyka w R**: łagodne wprowadzenie do używania języka R do analiz statystycznych
**Szablony**: pliki startowe do pisania pracy mgr z wykorzystaniem Markdown/Quarto/LaTeX
### Opcja A: Pobieranie wybranego pliku ZIP
---
1. Kliknij w wybrany plik (Quarto lub LaTeX oraz UAM lub UZ)
2. Po kliknięciu pobierz go klikając ikonkę downloadu (strzałka w dół) lub napis **Zobacz czysty**
Przy zakładaniu repozytorium na swoją pracę magisterską plik README.md może mieć na przykład taka strukturę:
### Opcja B1: Pobieranie przez Git
# Projekt badawczy [Imię Nazwisko]
Jeśli masz zainstalowany Git:
## Temat
Zależność między [zmienna X] a [zmienna Y] w kontekście [obszar].
```bash
# przejdź do katalogu, w którym chcesz umieścić projekt w terminal/cmd
git clone http://150.254.88.90:3000/PKleka/Szablon-pracy-dylomowej.git
cd "Szablon pracy dyplomowej"
```
## Cele
1. Analiza danych z [źródło].
2. Zastosowanie metod [np. regresja, analiza czynnikowa].
3. Przygotowanie raportu końcowego.
:::
Kopia repozytorium zawiera **wszystkie pliki**, dlatego zacznij pracę od usunięcia tych niepotrzebnych.
:::
### Opcja B2: Pobieranie repozytorium jako ZIP
1. Kliknij niebieski przycisk **Code** na stronie repozytorium
2. Wybierz **Download ZIP**
3. Rozpakuj archiwum w wybranej lokalizacji na dysku
4. Przejdź do folderu z rozpakowanymi plikami
5. Usuń zbędne pliki
## 2. Instalacja oprogramowania do renderowania pracy do formatu PDF
### 2.1. Instalacja R
1. Przejdź na stronę: https://cran.r-project.org/
2. Wybierz wersję dla swojego systemu operacyjnego:
- **Windows**: kliknij "Download R for Windows" → "base" → pobierz instalator
- **macOS**: kliknij "Download R for macOS" → wybierz odpowiednią wersję dla swojego procesora (Intel/Apple Silicon)
- **Linux**: postępuj zgodnie z instrukcjami dla swojej dystrybucji
3. Uruchom pobrany instalator i postępuj zgodnie z instrukcjami
4. Zalecana wersja: R 4.3.0 lub nowsza
### 2.2. Instalacja RStudio
1. Przejdź na stronę: https://posit.co/download/rstudio-desktop/
2. Przewiń w dół do sekcji **"2: Install RStudio"**
3. Pobierz wersję RStudio Desktop dla swojego systemu operacyjnego
4. Uruchom instalator i postępuj zgodnie z instrukcjami
### 2.3. Sprawdzenie instalacji
1. Uruchom RStudio
2. W konsoli R (dolne lewe okno) wpisz:
```r
version
```
3. Powinieneś zobaczyć informacje o zainstalowanej wersji R
## 3. Instalacja niezbędnych pakietów
Po uruchomieniu RStudio, musisz zainstalować pakiety potrzebne do pracy z tym szablonem.
### 3.1. Pakiety podstawowe
W konsoli R wykonaj następujące komendy (jedna po drugiej):
```r
# Instalacja menedżera pakietów (jeśli nie jest zainstalowany)
install.packages("nazwa_pakietu")
# Instalacja pakietów do pracy z Quarto i RMarkdown
install.packages("quarto")
install.packages("rmarkdown")
install.packages("knitr")
# Pakiety do bibliografii i cytowań
install.packages("knitcitations")
install.packages("bibtex")
```
Więcej o języku R na stronie https://kleka.web.amu.edu.pl/nauka/wprowadzenie_do_R.html
### 3.2. TinyTeX - instalacja LaTeX-a
LaTeX jest niezbędny do generowania dokumentów PDF. Najłatwiejszym sposobem instalacji jest użycie pakietu `tinytex`:
```r
# Instalacja pakietu tinytex
install.packages("tinytex")
# Instalacja dystrybucji TinyTeX
tinytex::install_tinytex()
```
**Uwaga**: Instalacja TinyTeX może potrwać kilka minut. Po zakończeniu **uruchom ponownie RStudio**.
### 3.3. Weryfikacja instalacji TinyTeX
Po ponownym uruchomieniu RStudio sprawdź, czy TinyTeX został poprawnie zainstalowany:
```r
tinytex::is_tinytex()
```
Jeśli wynik to `TRUE`, instalacja przebiegła pomyślnie.
### 3.4. Dodatkowe pakiety LaTeX (w razie potrzeby)
Jeśli podczas kompilacji dokumentu pojawią się błędy związane z brakującymi pakietami LaTeX, możesz je doinstalować:
```r
# Instalacja konkretnego pakietu LaTeX
tinytex::tlmgr_install("nazwa_pakietu")
# Przykłady często potrzebnych pakietów:
tinytex::tlmgr_install("babel-polish")
tinytex::tlmgr_install("csquotes")
tinytex::tlmgr_install("caption")
tinytex::tlmgr_install("fancyhdr")
```
## 4. Rozpoczęcie pracy
1. Otwórz plik `dyplom.Rproj` - uruchomi on RStudio (podwójne kliknięcie)
2. Otwórz plik `_START.qmd` - to główny plik Twojej pracy. Możesz zmienić jego nazwę.
3. Edytuj zawartość zgodnie z postępami pracy dyplomowej
4. Aby wygenerować PDF:
- Kliknij przycisk **Render** (lub naciśnij `Ctrl+Shift+K` / `Cmd+Shift+K`)
- Poczekaj na zakończenie kompilacji
- Dokument PDF pojawi się w tym samym folderze
## 5. Struktura projektu
- `_START.qmd` - główny plik pracy dyplomowej
- `analiza.qmd` - przykładowy rozdział z analizą danych
- `poradnik.qmd` - poradnik formatowania i pisania pracy
- `literatura.bib` - baza danych bibliograficznych (format BibTeX)
- `dyplUAM.cls` - klasa LaTeX dla formatu pracy
- `header.tex` - dodatkowe ustawienia LaTeX
- `before-body.tex` - strona tytułowa i deklaracje
## 6. Rozwiązywanie problemów
### Problem: Błąd podczas generowania PDF
- Sprawdź, czy TinyTeX jest zainstalowany: `tinytex::is_tinytex()`
- Sprawdź komunikaty błędów - często wskazują na brakujące pakiety LaTeX
- Zainstaluj brakujące pakiety używając `tinytex::tlmgr_install()`
### Problem: Encoding/znaki polskie się nie wyświetlają
- Upewnij się, że plik jest zapisany w kodowaniu UTF-8
- W RStudio: Tools → Global Options → Code → Saving → Default text encoding: UTF-8
### Problem: Bibliografia się nie generuje
- Sprawdź, czy plik `literatura.bib` istnieje i jest poprawnie sformatowany
- Upewnij się, że w nagłówku YAML dokumentu jest podana ścieżka do pliku bibliografii
## Pomoc
W razie problemów skontaktuj się z promotorem
## Harmonogram
| Etap | Opis | Termin |
|------|------|--------|
| I | Zebranie literatury | 10.11 |
| II | Opracowanie narzędzia | 01.12 |
| III | Analiza danych | 15.01 |
| IV | Raport końcowy | 15.02 |
+870
View File
@@ -0,0 +1,870 @@
---
title: "Łagodne i praktyczne wprowadzenie do R"
author:
- "na podstawie materiałów openstax.org przygotował:"
- "prof. ucz., dr hab. Paweł Kleka"
date: "`r Sys.Date()`"
lang: pl
format:
html:
toc: true
number-sections: true
pdf:
toc: true
number-sections: true
execute:
echo: true
warning: false
message: false
---
```R
#| label: setup
#| include: false
#| echo: false
options(encoding = "UTF-8")
Sys.setlocale(category = "LC_ALL", locale = "pl_PL.UTF-8")
pdf.options(encoding = "CP1250.enc")
```
\newpage
# Ciekawostki i tło historyczne
Język **R** jest dialektem języka **S** (S od *statistics*). S został opracowany przez Johna Chambersa w 1976 w Bell Labs jako interaktywne środowisko do analiz statystycznych. S w wersji 4 (S4, 1998) używany jest do dziś, a komercyjną implementacją była **S-PLUS**.
Ponieważ S był płatny, **Ross Ihaka** i **Robert Gentleman** w 1991 r. na Uniwersytecie w Auckland metodą inżynierii wstecznej stworzyli darmowy odpowiednik R. W 1995 **Martin Mächler** przekonał twórców do użycia licencji GNU GPL, a w 1997 powstała **R Core Team** czuwająca nad rozwojem języka.
Zalety R:
1. Coroczne (październik) wydania + szybkie poprawki błędów.
2. Bardzo bogate możliwości graficzne (base, lattice, ggplot2).
3. Język wyspecjalizowany w analizie statystycznej, ale pełnoprawny do programowania.
4. Integracje: Python, Java, C/C++, Hadoop, bazy danych, Spark.
R używają m.in. Google, Meta, Airbnb, NY Times, Microsoft (R Open).
## Po co się uczyć R i programowania?
- Rozwijanie myślenia algorytmicznego i umiejętności rozwiązywania problemów.
- Automatyzacja powtarzalnych zadań.
- Prowadzenie eksperymentów i symulacji.
- Rzetelność, powtarzalność i transparentność analiz.
- Elastyczne tworzenie nowych narzędzi na potrzeby badań.
Programowanie wymusza precyzję diagnozowanie błędów doskonali strategię analityczną.
## Czy R jest trudny?
Historycznie składnia bywała nieintuicyjna; ogromny progres przyniósł ekosystem **tidyverse** (pakiety ujednolicające sposoby pracy z danymi). R współpracuje z nowoczesnymi metodami ML (pakiety `keras`, `tensorflow`, `xgboost`) i z innymi językami oraz silnikami danych (Spark, Hadoop).
### Słabe wymówki 😉
- "Lepiej policzyć w czymś innym" praca z kodem pozwala na poprawianie swojej analizy zamiast robienia jej od nowa.
- "Zlecę to komuś" a jak zweryfikujesz wynik i zakomunikujesz potrzeby?
- "Mam dwie lewe ręce" tutaj zamiast sekwencji kliknięć uczysz się powtarzalnych przepisów.
## AI a nauka R
AI potrafi pisać kod R, ale całkowita zależność spowalnia zrozumienie i debugowanie. Znajomość podstaw R pozwala precyzyjnie formułować pytania i oceniać wygenerowane przez AI rozwiązania.
---
R to narzędzie do analizy statystycznej, które jest szeroko stosowane w nauce, gdzie wiedza jest ukryta w danych. R oferuje wiele narzędzi do eksploracji danych, wizualizacji i analizy statystycznej. Jest dostępny jako bezpłatny program typu open source i zapewnia zintegrowany zestaw funkcji do analizy danych, tworzenia wykresów i programowania statystycznego. R jest bardzo często wykorzystywany przez naukowców zajmujących się danymi jako narzędzie do analizy danych i statystyki, częściowo dlatego, że R jest językiem open source, a społeczność użytkowników stale dodaje do niego dodatkowe funkcje. Narzędzie to może być używane na wielu systemach komputerowych i można je pobrać ze [strony internetowej projektu R](https://cran.r-project.org).
Po zainstalowaniu i uruchomieniu programu R na komputerze, w dolnej części konsoli R powinien pojawić się symbol „>”, który oznacza, że program R jest gotowy do przyjmowania poleceń.
Jeśli to Twój pierwszy kontakt z R, napisz w konsoli `help.start()` a otworzy się interaktywny przewodnik po programie wyglądający trochę staromodnie
Ryc. 1. Wygenerowana poleceniem: `help.start()`
```R
#| echo: false
knitr::include_graphics('R-help-screen.png')
```
R oferuje wiele wbudowanych zasobów pomocy. Po wpisaniu polecenia `help()` w wierszu poleceń R wyświetlana jest lista zasobów pomocy. Aby uzyskać konkretny przykład, należy wpisać polecenie `help(median)`, co spowoduje wyświetlenie różnych dokumentów dotyczących wbudowanej funkcji mediany w języku R.
Ponadto, jeśli użytkownik wpisze `demo()` w wierszu poleceń R, wyświetlą się różne opcje demonstracyjne. Na przykład wpisanie `demo(graphics)` spowoduje wyświetlenie kilku przykładów różnych wykresów graficznych.
R jest językiem sterowanym poleceniami, co oznacza, że użytkownik wprowadza polecenia w wierszu poleceń, a R wykonuje je pojedynczo. R może również wykonywać programy zawierające wiele poleceń. Istnieją sposoby dodania graficznego interfejsu użytkownika (GUI) do języka R. Przykładem najpopularniejszego narzędzia GUI dla języka R jest [RStudio](https://posit.co).
# Uruchomienie i środowisko pracy
Do komfortowej pracy:
1. Samo **R** jest tu: <https://cran.r-project.org>
2. **RStudio** (od Posit) Desktop: <https://posit.co>
Można używać też VS Code (+ rozszerzenie R), ale RStudio bywa najszybszą drogą startu.
Pakiety rozszerzające funkcjonalność programu instalujemy poleceniem:
```R
install.packages("nazwa_pakietu")
```
A ładujemy (udostępniamy w sesji):
```R
library(nazwa_pakietu)
```
Przydatne na start: `formatR`, `ggplot2`, `dplyr`, `tidyr`, `psych`.
---
# Pierwsze kroki w konsoli R
Po uruchomieniu R/RStudio w konsoli pojawia się znak zachęty `>` tu wpisujemy pojedyncze polecenia lub uruchamiamy cały skrypt.
Pomoc:
- `help.start()` interaktywny indeks pomocy.
- `help(funkcja)` lub `?funkcja` dokumentacja jednej funkcji.
- `??wzorzec` szukanie wśród tematów pomocy.
- `demo()` / `demo(graphics)` pokaz zastosowań.
- `citation()` sposób cytowania R w pracy naukowej.
## R jako kalkulator
```R
2 + 3 # dodawanie
2 - 3 # odejmowanie
2 * 3 # mnożenie
2 / 3 # dzielenie
2 ^ 3 # potęgowanie
4 ^ 3 - 2 * 3
(4 ^ 3) - (2 * 3)
4 ^ (3 - 2) * 3
```
## Obiekty i przypisania
Większość obliczeń w języku R jest wykonywana za pomocą funkcji. W przypadku analizy statystycznej w języku R dostępnych jest wiele gotowych funkcji do obliczania średniej, mediany, odchylenia standardowego, kwartyli itp. Zmienne można nazwać i przypisać im wartości za pomocą operatora przypisania `<-`.
```R
a <- 13
b <- a / 2
cc <- a / b
print(cc)
# print(Cc) # Błąd, ponieważ wielkość liter ma znaczenie
```
Na przykład poniższe polecenia języka R przypisują wartość 20 do obiektu o nazwie *x* i wartość 30 do obiektu o nazwie *y*:
```R
# Przypisanie wartości do zmiennych
x <- 20
y <- 30
# Mnożenie
x * y
```
Typową metodą wykorzystania funkcji w aplikacjach statystycznych jest najpierw utworzenie wektora wartości danych. Istnieje kilka sposobów tworzenia wektorów w języku R. Na przykład funkcja `c()` jest często używana do łączenia wartości w wektor. Poniższe polecenie R wygeneruje wektor o nazwie *`salaries`*, zawierający wartości danych 40000, 50000, 75000 i 92000:
```R
# Tworzenie wektora
salaries <- c(40000, 50000, 75000, 92000)
```
Wartości te można następnie wykorzystać w funkcjach statystycznych, takich jak średnia, mediana, min, max itp., jak pokazano poniżej.:
```R
# Statystyki opisowe
mean(salaries) # Średnia
median(salaries) # Mediana
min(salaries) # Minimum
max(salaries) # Maksimum
```
Inną opcją generowania wektora w języku R jest użycie funkcji `seq()`, która automatycznie generuje sekwencję liczb. Na przykład możemy wygenerować sekwencję liczb od 1 do 5, zwiększaną o 0,5, i nazwać ten wektor *Przykład1*, w następujący sposób:
```R
# Sekwencja liczb
Przykład1 <- seq(1, 5, by = 0.5)
```
Jeśli następnie wpiszemy nazwę wektora i naciśniemy klawisz Enter, R wyświetli listę wartości liczbowych dla tej nazwy wektora.
```R
# Wyświetlanie wektorów
Przykład1
```
Często jesteśmy zainteresowani szybkim sporządzeniem podsumowania statystycznego zbioru danych w postaci średniej, mediany, kwartyli, wartości minimalnej i maksymalnej. Polecenie R o nazwie `summary()` zapewnia takie wyniki.
```R
# Podsumowanie statystyczne
summary(salaries)
```
W przypadku miar rozrzutu R zawiera polecenie dotyczące odchylenia standardowego, zwane `sd()`, oraz polecenie dotyczące wariancji, zwane `var()`. Odchylenie standardowe i wariancja są obliczane przy założeniu, że zbiór danych został zebrany z próby.
```R
# Miary rozrzutu
sd(salaries) # Odchylenie standardowe
var(salaries) # Wariancja
```
Funkcje pozwalające zobaczyć fragment zbioru danych:
```R
head(poziom, n = 10) # pierwsze 10 wartości
tail(sekwencja) # ostatnie
```
## Przestrzeń robocza (workspace)
Pracując w R tworzymy różne obiekty. Za pomocą funkcji `ls()` możemy zobaczyć ich listę.
```R
ls() # lista obiektów
rm(a) # usuń obiekt a
ls()
rm(list = ls()) # usuń wszystko
ls()
```
Zapisywanie / wczytywanie sesji:
```R
save.image("~/Desktop/MyWorkspace.RData")
rm(list = ls(all = TRUE))
load("~/Desktop/MyWorkspace.RData")
```
(Uwaga na różnice ścieżek między systemami w Windows użyj np. `C:/Users/...`.)
---
# Typy danych i wartości specjalne
R ma kilka podstawowych typów atomowych:
- logical: `TRUE`, `FALSE`
- integer: liczby całkowite
- double (numeric): liczby zmiennoprzecinkowe (domyślne)
- character: ciągi tekstowe w cudzysłowach `"tekst"`
- complex: liczby zespolone `1+2i`
- raw: rzadko używane bajty
Wartości specjalne:
- `NA` brakująca wartość (istnieją też `NA_integer_`, `NA_real_`, itd.)
- `NaN` not-a-number (np. `0/0`)
- `Inf`, `-Inf` (np. `1/0`, `-1/0`)
Sprawdzenia i konwersje:
```R
x <- c(1, 2, NA, 5)
is.na(x) # które elementy to NA?
anyNA(x) # czy istnieje NA w wektorze x?
as.character(1:3) # konwersja z liczb na znaki
```
Faktory (czynniki) typ do przechowywania zmiennych kategorialnych z poziomami:
```R
plec_chr <- c("K", "M", "K", "K")
plec_fac <- factor(plec_chr,
levels = c("K", "M"),
labels = c("Kobieta", "Mężczyzna"))
print(plec_fac)
levels(plec_fac)
```
Zmienne porządkowe (_ordered factors_):
```R
ocena <- factor(c("dostateczny","bardzo dobry","dobry"),
levels = c("dostateczny","dobry","bardzo dobry"),
ordered = TRUE)
ocena > "dobry" # TRUE dla "bardzo dobry"
```
---
# Struktury danych w R
Zmienne różnego typy można łączyć w struktury
## Wektory
Podstawowy kontener jednowymiarowy tej samej klasy.
```R
pory.roku <- c(-10, 25, 16, 5)
names(pory.roku) <- c("zima", "wiosna", "lato", "jesień")
pory.roku
# Alternatywnie nadawanie nazw wprost:
pory.roku <- c(zima = -10, wiosna = 25, lato = 16, jesien = 5)
length(pory.roku)
length(names(pory.roku))
```
## Macierze
Jednorodna pod względem typu danych tablica 2D:
```R
mat <- matrix(c(1,2,3,4,5,6,7,8,9), nrow = 3, ncol = 3)
mat
```
## Ramki danych (data.frame)
Tablica kolumn o (potencjalnie) różnych klasach + atrybuty.
```R
df <- data.frame(var1 = c(1,2,3,4,5),
var2 = c("k","m","k","k","m"),
var3 = c(TRUE, TRUE, FALSE, FALSE, TRUE))
attributes(df)
names(df) <- c("Lp", "Płeć", "Fakt")
attributes(df)
df
```
## Listy
Heterogeniczne (składające się z różnych typów) kolekcje dowolnych obiektów:
```R
moja.lista.1 <- list(a = 1, b = "ala")
moja.lista.2 <- list(a = 1, b = c("ala", "kot"))
length(moja.lista.2)
[1] 2
```
Lista popularnych poleceń statystycznych języka R znajduje się w @tbl-tabB2.
| **Polecenie R** | **Działanie** |
|------------------------------------|------------------------------------|
| `mean()` | Oblicza średnią arytmetyczną |
| `median()` | Oblicza medianę |
| `min()` | Oblicza minimalną wartość |
| `max()` | Oblicza wartość maksymalną |
| `weighted.mean()` | Oblicza średnią ważoną |
| `sum()` | Oblicza sumę wartości |
| `summary()` | Oblicza średnią, medianę, kwartyle, minimalną i maksymalną wartość. |
| `sd()` | Oblicza odchylenie standardowe próby. |
| `var()` | Oblicza wariancję próby |
| `IQR()` | Oblicza rozstęp międzykwartylowy |
| `barplot()` | Wykreśla wykres słupkowy danych nie numerycznych. |
| `boxplot()` | Wykreśla wykres pudełkowy danych liczbowych. |
| `hist()` | Wykreśla histogram danych liczbowych. |
| `plot()` | Wykreśla różne wykresy, w tym wykres punktowy. |
| `freq()` | Tworzy tabelę rozkładu częstotliwości |
| `unique()` | Lista niepowtarzalnych wartości |
: Lista popularnych poleceń statystycznych programu R {#tbl-tabB2}
## Tworzenie i używanie wektorów do analiz statystycznych
Poniżej przedstawiono przykład obliczenia średniej ważonej w języku R:
### Przykład P.1
**Problem**
Załóżmy, że portfel finansowy zawiera 1000 akcji spółki XYZ Corporation, zakupionych w trzech różnych terminach, jak pokazano w tabeli @tbl-tabB1. Użyj języka R do obliczenia średniej ważonej ceny zakupu, gdzie wagi są oparte na liczbie akcji w portfelu.
| **Data zakupu** | **Cena (\$)** | **Liczba kupionych akcji** |
|-----------------|---------------|----------------------------|
| Styczeń 17 | 78 | 200 |
| Luty 10 | 122 | 300 |
| Marzec 23 | 131 | 500 |
| **Razem** | | **1000** |
: Portfolio akcji XYZ {#tbl-tabB1}
**Rozwiązanie**
Oto jak utworzyć dwa wektory w języku R: wektor ceny będzie zawierał cenę zakupu, a wektor akcji będzie zawierał liczbę akcji. Następnie należy wykonać polecenie R `weighted.mean(price, shares)` w następujący sposób:
``` r
> price <- c(78, 122, 131)
> shares <- c(200, 300, 500)
> weighted.mean(price, shares)
[1] 117.7
```
# Podstawowa wizualizacja i tworzenie wykresów przy użyciu R
R oferuje wiele wbudowanych funkcji do wizualizacji danych, takich jak wykresy słupkowe, histogramy, wykresy punktowe i inne. Poniżej przedstawiono spójny opis i przykłady najważniejszych typów wykresów.
## Wykres słupkowy (barplot)
Wykresy słupkowe służą do prezentacji danych kategorialnych Przykład: liczba zapisanych studentów na różne kursy.
| Kurs | Liczba zapisanych |
| :---------- | :---------------- |
| Psychologia | 375 |
| Historia | 302 |
| Prawo | 294 |
| Chemia | 193 |
: Liczba zapisanych studentów na kursy
```R
enrollment <- data.frame(
course = c("Psychologia", "Historia", "Prawo", "Chemia"),
enrolled = c(375, 302, 294, 193)
)
barplot(
enrollment$enrolled,
names.arg = enrollment$course,
main = "Studenci na kursach",
xlab = "Nazwa kursu",
ylab = "Zapisanych",
col = "navyblue"
)
```
Możliwości dostosowywania wykresów są szerokie, np. zmiana kolorów, orientacji, etykiet:
```R
# Przykłady z innym zbiorem danych
pory.roku <- c(zima = -10, wiosna = 25, lato = 36, jesien = 5)
barplot(
pory.roku,
main = "Średnia temperatura",
col = c("blue", "green", "white", "red"),
names.arg = c("Zima", "Wiosna", "Lato", "Jesień"),
horiz = TRUE,
las=c(2)
)
```
## Wykres punktowy
Podstawowym poleceniem do tworzenia wykresu punktowego w R jest `plot(x, y)`, gdzie x i y to wektory danych liczbowych. Wykresy punktowe są szczególnie przydatne do wizualizacji zależności między dwiema zmiennymi.
Przykład: Zależność kursu akcji Nike od indeksu S&P 500
| Data | S&P 500 | Nike ($) |
|-----------|---------|----------|
| 4/1/2020 | 2912.43 | 87.18 |
| 5/1/2020 | 3044.31 | 98.58 |
| 6/1/2020 | 3100.29 | 98.05 |
| 7/1/2020 | 3271.12 | 97.61 |
| 8/1/2020 | 3500.31 | 111.89 |
| 9/1/2020 | 3363.00 | 125.54 |
| 10/1/2020 | 3269.96 | 120.08 |
| 11/1/2020 | 3621.63 | 134.70 |
| 12/1/2020 | 3756.07 | 141.47 |
| 1/1/2021 | 3714.24 | 133.59 |
| 2/1/2021 | 3811.15 | 134.78 |
| 3/1/2021 | 3943.34 | 140.45 |
: Dane miesięczne: S&P 500 i kurs akcji Nike
```{r, echo=FALSE}
# Dane wejściowe
SP500 <- c(2912.43, 3044.31, 3100.29, 3271.12, 3500.31, 3363.00, 3269.96, 3621.63, 3756.07, 3714.24, 3811.15, 3943.34)
Nike <- c(87.18, 98.58, 98.05, 97.61, 111.89, 125.54, 120.08, 134.70, 141.47, 133.59, 134.78, 140.45)
```
```{r, fig.asp=1, dpi=150}
# Wykres punktowy
plot(SP500, Nike,
main = "Zestawienie kursu akcji Nike i indeksu S&P 500",
xlab = "S&P 500", ylab = "Nike",
pch = 20, col = "darkblue", cex = 2)
```
# Wprowadzenie do rozkładów prawdopodobieństwa
Zanim przejdziemy do rozkładów prawdopodobieństwa, warto przypomnieć sobie podstawowe pojęcia:
- **Zmienne losowe** to wielkości, których wartości zależą od przypadku (np. liczba wyrzuconych oczek na kostce, wzrost losowo wybranej osoby).
- **Rozkład prawdopodobieństwa** opisuje, z jakim prawdopodobieństwem zmienna losowa przyjmuje określone wartości. Rozkłady mogą być dyskretne (np. rzut monetą) lub ciągłe (np. wzrost, masa ciała).
W praktyce rozkłady prawdopodobieństwa pozwalają:
- przewidywać częstość występowania określonych wyników,
- modelować zjawiska losowe,
- obliczać prawdopodobieństwa zdarzeń,
- wyznaczać przedziały ufności i testować hipotezy.
Najczęściej spotykane rozkłady to: rozkład normalny (ciągły), dwumianowy (dyskretny), Poissona (dyskretny), wykładniczy (ciągły).
Poniżej przedstawiam praktyczne zastosowania rozkładów w R.
## Rozkłady prawdopodobieństwa
Jak wspomniano wcześniej, szybkie podsumowanie statystyczne można wygenerować za pomocą polecenia `summary()` w języku R, którego użycie wygląda następująco: `summary(data_vector)`.
R posiada rozbudowane wbudowane biblioteki do obliczania przedziałów ufności, testowania hipotez i pracy z różnymi rozkładami prawdopodobieństwa. Analitycy danych często interesują się różnymi rozkładami prawdopodobieństwa, takimi jak rozkład normalny, rozkład dwumianowy i rozkład Poissona.
R używa polecenia `pnorm` do znalezienia pola pod krzywą normalną po lewej stronie określonej wartości:
Użycie: `pnorm(x_value, mean, standard_deviation)`
gdzie `pnorm` zwraca prawdopodobieństwo, że zmienna losowa o danej średniej i odchyleniu standardowym jest mniejsza niż `x_value`.
### Przykład P.2
**Problem**
Masa urodzeniowa noworodków w Stanach Zjednoczonych ma rozkład normalny o średniej 3400 gramów i odchyleniu standardowym 500 gramów.
1. Użyj programu R, aby obliczyć prawdopodobieństwo, że losowo wybrany noworodek waży mniej niż 4000 gramów.
2. Użyj programu R, aby obliczyć prawdopodobieństwo, że losowo wybrany noworodek waży więcej niż 3000 gramów.
**Rozwiązanie**
Dla części (a), użyjemy funkcji `pnorm` w ten sposób:
```R
pnorm(4000, 3400, 500)
```
Dla części (b), musimy dodać opcję `lower.tail=FALSE`, aby obliczyć powierzchnię pod krzywą rozkładu prawdopodobieństwa po prawej stronie:
```R
pnorm(3000, 3400, 500, lower.tail=FALSE)
```
R udostępnia również wbudowaną funkcję rozkładu dwumianowego, która wygląda następująco: `pbinom(k, n, p)`.
gdzie *n* to liczna prób, *p* to prawdopodobieństwo jednego sukcesu, a *k* jest liczbą sukcesów, dla których pożądane jest prawdopodobieństwo.
### Przykład P.3
**Problem**
Załóżmy, że przeprowadzamy ankietę wśród próby 20 osób i zadajemy pytanie: „Czy uważasz, że strona internetowa firmy ABC jest łatwa w nawigacji?”. Na podstawie danych zebranych w przeszłości wiemy, że 65% osób uznało stronę za łatwą w nawigacji. Użyj języka R, aby obliczyć prawdopodobieństwo, że 13 z 20 respondentów uznało stronę za łatwą w nawigacji.
**Rozwiązanie**
Użyjemy funkcji `pbinom` w taki sposób:
```R
pbinom(13, 20, 0.65)
```
# Podstawowa analiza korelacji i regresji przy użyciu języka R
Przypomnij sobie omówienie korelacji i analizy regresji w sekcji [Statystyka wnioskowa i analiza regresji](https://openstax.org/books/principles-data-science/pages/4-introduction). Pierwszym krokiem w analizie korelacji jest obliczenie współczynnika korelacji (*r*) dla danych (*x*, *y*). R udostępnia wbudowaną funkcję `cor()` do obliczania współczynnika korelacji dla danych dwuwymiarowych.
Jako przykład rozważmy dane przedstawione w tabeli poniżej
| **Miesiąc** | **S&P 500 zwrot (%)** | **Coca-Cola zwrot (%)** |
| :---------- | :-------------------- | :---------------------- |
| Jan | 8 | 6 |
| Feb | 1 | 0 |
| Mar | 0 | -2 |
| Apr | 2 | 1 |
| May | -3 | -1 |
| Jun | 7 | 8 |
| Jul | 4 | 2 |
: Miesięczne zwroty akcji Coca-Cola i indeksu S&P 500
Aby obliczyć współczynnik korelacji dla tego zbioru danych, należy najpierw utworzyć dwa wektory w języku R, jeden wektor dla zwrotów z indeksu S&P 500, a drugi wektor dla zwrotów z Coca-Coli:
```R
SP500 <- c(8,1,0,2,-3,7,4)
CocaCola <- c(6,0,-2,1,-1,8,2)
```
Polecenie R o nazwie `cor` zwraca współczynnik korelacji dla wektora danych *x* i wektora danych *y*:
```R
cor(SP500, CocaCola)
```
Czyli współczynnik korelacji dla tego zbioru danych wynosi około 0,912.
## Modele regresji liniowej z wykorzystaniem języka R
Aby utworzyć model liniowy w języku R, zakładając, że korelacja jest istotna, użyjemy polecenie `lm()` (dla modelu liniowego), co zapewni nam obliczenie nachylenia i punkt przecięcia z osią *y* dla równania regresji liniowej.
Format polecenia R jest następujący:
``` r
lm(dependent_variable_vector ~ independent_variable_vector)
```
Zwróć uwagę na użycie symbolu tyldy (to taki wężyk, przeważnie na klawiaturze koło jedynki) jako separatora między wektorem zmiennej zależnej a wektorem zmiennej niezależnej.
Jako zmienną zależną wykorzystujemy zwroty z akcji Coca-Coli, a jako zmienną niezależną zwroty z indeksu S&P 500, więc polecenie R będzie wyglądało następująco
```R
lm(CocaCola ~ SP500)
```
Wynik w R podaje wartość punktu przecięcia z osią *y* jako -0,3453, a wartość nachylenia jako 0,8641. Na tej podstawie model liniowy będzie wyglądał następująco:
$$ \hat{y} = a + b \cdot x = -0.3453 + 0.8641 \cdot x $$
gdzie *x* oznacza wartość zwrotu z indeksu S&P 500, a *y* oznacza wartość zwrotu z akcji Coca-Coli.
Wyniki można również zapisać jako formułę i nazwać „modelem” za pomocą następującego polecenia R. Aby uzyskać bardziej szczegółowe wyniki regresji liniowej, można użyć polecenia `summary` w następujący sposób:
```R
model <- lm(CocaCola ~ SP500)
summary(model)
```
W tym wyniku podano jak wcześniej punkt przecięcia z osią *y* i nachylenie, a także reszty dla każdej wartości *x*. Wynik zawiera dodatkowe szczegóły statystyczne dotyczące analizy regresji.
W programie R można również generować wartości prognozowane i przedziały dla tych prognoz. Najpierw możemy utworzyć w programie R strukturę zwaną ramką danych, która będzie przechowywać wartości zmiennej niezależnej, dla której chcemy wygenerować prognozę. Na przykład, chcielibyśmy wygenerować przewidywany zwrot z akcji Coca-Coli, biorąc pod uwagę, że zwrot z indeksu S&P 500 wynosi 6. Do tego celu używamy polecenia R o nazwie `predict()`.
Aby wygenerować prognozę dla równania regresji liniowej o nazwie *model*, używając ramki danych, w której wartość indeksu S&P 500 wynosi 6, polecenia R będą następujące
```R
a <- data.frame(SP500 = 6)
predict(model, a)
```
Wynik polecenia `predict` wskazuje, że przewidywany zwrot z akcji Coca-Cola wyniesie 4,8%, podczas gdy zwrot z indeksu S&P 500 wyniesie 6%.
Możemy rozszerzyć tę analizę, aby wygenerować 95% przedział ufności dla prognozy tego wyniku, używając następującej opcji do polecenia `predict`:
```R
predict(model, a, interval="predict")
```
W związku z tym 95-procentowy przedział prognozy dla zwrotu z inwestycji w Coca-Colę wynosi (0,05%, 9,62%), gdy zwrot z inwestycji w indeks S&P 500 wynosi 6%. Inaczej mówiąc, gdy zwrot z S&P 500 będzie wynosił 6%, to zwrot z akcji Coca-Cola na 95% będzie w przedziale od 0,05% do 9,62%.
## Modele regresji wielokrotnej z wykorzystaniem języka R
R zawiera również wiele narzędzi, które pozwalają przeprowadzać regresję wielokrotną, w której zmienna zależna jest przewidywana na podstawie więcej niż jednej zmiennej niezależnej, co jest bardziej realistyczną sytuacją w prawdziwej sytuacji. Na przykład, możemy uzyskać lepszy model prognozowania miesięcznego zwrotu z akcji Coca-Coli, jeśli weźmiemy pod uwagę nie tylko miesięczny zwrot z indeksu S&P500, ale również miesięczną sprzedaż produktów Coca-Coli.
Oto kilka przykładów, w których model regresji wielokrotnej może zapewnić lepszy model prognozowania w porównaniu z modelem regresji z tylko jedną zmienną niezależną:
1. Wynagrodzenia pracowników można prognozować na podstawie stażu pracy i poziomu wykształcenia.\
2. Ceny nieruchomości można prognozować na podstawie powierzchni domu, liczby sypialni i liczby łazienek.
Ogólna postać modelu regresji wielokrotnej jest następująca:
$$\hat{y}= a + b_1 \cdot x_1 + b_2 \cdot x_2 + b_3 \cdot x_3 + ... + b_n \cdot x_n$$
gdzie:
x1, x2, x3, …, xn są zmiennymi niezależnymi; b1, b2, b3, …, bn są współczynnikami regresji, gdzie każdy współczynnik jest wielkością zmiany w *y*, gdy przyjmiemy, że dany $x_i$ wzrośnie o 1 jednostkę, a pozostałe zmienne niezależne pozostaną niezmienne. *a* jest wartością przecięcia linii regresji z osią *y* (ang. *intercept*), czyli wartością *y*, gdy wszystkie wartości $x_i = 0$.
Przypomnijmy sobie z poprzedniego przykładu, że format analizy regresji liniowej w języku R, gdy występuje tylko jedna zmienna niezależna, wyglądał następująco:
``` r
> model <- lm(y ~ x)
```
Aby „dodać” dodatkowe zmienne niezależne do modelu regresji wielokrotnej, stosujemy następujący format:
``` r
> model <- lm(y ~ x1 + x2 + x3)
```
gdzie x1, x2, x3 są zmiennymi niezależnymi.
Przykład:
Użyj języka R do stworzenia modelu regresji wielokrotnej w celu przewidzenia ceny domu na podstawie zmiennych niezależnych, takich jak powierzchnia i liczba pokoi, w oparciu o poniższy zestaw danych. Następnie użyj modelu regresji wielokrotnej do przewidzenia ceny domu o powierzchni 300 metrów kwadratowych i 3 pokojach
| **Cena domu** (y) w \$ | **Powierzchnia** (x1) w m2 | **Liczba pokoi** (x2) |
|------------------------|------------------------|------------------------|
| 466000 | 466,8 | 6 |
| 355000 | 319,6 | 5 |
| 405900 | 399,8 | 5 |
| 415000 | 402,2 | 5 |
| 206000 | 183,4 | 2 |
| 462000 | 466,8 | 6 |
| 290000 | 265,0 | 3 |
: Ceny domów w oparciu o powierzchnię i liczbę pokoi
Najpierw utwórz trzy wektory w języku R, po jednym dla ceny domu, powierzchni i liczby pokoi. Następnie uruchom model regresji wielokrotnej za pomocą znanego już Ci polecenia `lm`:
```{r, echo=FALSE}
cena <- c(466000, 355000, 405900, 415000, 206000, 462000, 290000)
powierzchnia <- c(466.8, 319.6, 399.8, 402.2, 183.4, 466.8, 265.0)
pokoje <- c(6, 5, 5, 5, 2, 6, 3)
```
```R
model <- lm(cena ~ powierzchnia + pokoje)
summary(model)
```
W wynikach programu R należy zwrócić uwagę na kolumnę „Estimate” (Szacunki), która zawiera szacunki współczynników i punkt przecięcia z osią *y*.
Punkt przecięcia z osią *y* wynosi 57740 (zaokrąglone do najbliższej liczby całkowitej).
Współczynnik zmiennej „powierzchnia” wynosi 660.
Współczynnik zmiennej „sypialnie” wynosi 16967.
Na podstawie tych wartości model regresji wielokrotnej wygląda następująco (wartości przybliżone, zaokrąglone):
$$\hat{y}= 57740 + 66 \cdot x1 + 16967 \cdot x2 $$
Teraz możemy użyć modelu regresji wielokrotnej do przewidzenia ceny domu o powierzchni 300 metrów kwadratowych i 3 pokojach, ustawiając x1 = 300 i x2 = 3, w następujący sposób:
$$\hat{y} = 57\,740 + 660 \times 300 + 16\,967 \times 3 \approx 306\,641$$
Prognoza (powierzchnia = 300, pokoje = 3):
```R
predict(model, newdata = data.frame(powierzchnia = 300, pokoje = 3), interval = "prediction")
```
W ten sposób wiemy, że przewidywana cena domu o powierzchni 300 metrów kwadratowych i 3 pokojach wynosi około 306 641 dolarów.
---
# Dalsze zasoby
- *Learning Statistics with R*: <https://learningstatisticswithr.com/>
- YaRrr! *The Pirate's Guide to R*: <https://bookdown.org/ndphillips/YaRrr/>
- R code best practices: <https://www.r-bloggers.com/2018/09/r-code-best-practices/>
- Dokumentacja pakietów: <https://www.rdocumentation.org>
- Społeczność: <https://stackoverflow.com/questions/tagged/r>
# Zadanie dla chętnych
## Ćwiczenia wizualizacja
1. Wejdź na: <http://awp.diaart.org/km/surveyresults.html>
2. Wybierz dowolny kraj i pytanie z odpowiedziami procentowymi (wykres kołowy).
3. Stwórz wektor nazwanych wartości (kategorie + procenty).
4. Znajdź liczbę respondentów i przelicz procenty na wartości bezwzględne.
5. Narysuj wykres słupkowy każda kategoria innym kolorem, dodaj tytuł.
6. Udostępnij kod i wykres (w Classroom).
## Ćwiczenia rozkłady prawdopodobieństwa
1. Oblicz prawdopodobieństwo uzyskania co najmniej 4 orłów w 10 rzutach monetą (przyjmij sprawiedliwą monetę, gdzie p = 0.5).
2. Wygeneruj 100 liczb z rozkładu normalnego o średniej 10 i odchyleniu 2, narysuj histogram wyników.
3. Sprawdź, jak zmienia się prawdopodobieństwo w rozkładzie normalnym przy różnych wartościach średniej i odchylenia.
## Ćwiczenia regresja
1. Stwórz prosty model regresji liniowej dla dowolnych danych (np. wzrost, waga znajomych i wielkość stopy).
2. Oblicz współczynnik korelacji dla dwóch wektorów liczbowych.
3. Przeprowadź predykcję dla nowej wartości zmiennej niezależnej.
Powodzenia!
\newpage
\small
# Słowniczek
### Glossarium kluczowe pojęcia {-}
**Wektor** jednowymiarowa struktura danych w R, zawiera elementy tego samego typu.
**Macierz** dwuwymiarowa tablica danych o tej samej klasie.
**Ramka danych (data.frame)** tabela, w której kolumny mogą mieć różne typy danych.
**Lista** kolekcja obiektów dowolnego typu i długości.
**Faktor** zmienna kategorialna z określonymi poziomami.
**Rozkład prawdopodobieństwa** opisuje, z jakim prawdopodobieństwem zmienna losowa przyjmuje określone wartości.
**Regresja liniowa** metoda statystyczna do modelowania zależności między zmienną zależną a jedną lub wieloma niezależnymi.
**Korelacja** miara siły i kierunku związku między dwiema zmiennymi.
**Histogram** wykres przedstawiający rozkład częstości wartości zmiennej liczbowej.
**Wykres słupkowy** wykres do prezentacji danych kategorycznych.
**Wykres punktowy** wykres do wizualizacji zależności między dwiema zmiennymi liczbowymi.
**Odchylenie standardowe** miara rozrzutu wartości wokół średniej.
**Wariancja** średnia kwadratów odchyleń od średniej.
**Przedział ufności** zakres wartości, w którym z określonym prawdopodobieństwem znajduje się prawdziwy parametr populacji.
---
### Polecenia {-}
**Podstawy**
`x <- 5` przypisanie; `print(x)` wypis; `rm(x)` usuń; `ls()` lista obiektów; `?nazwa` pomoc; `sessionInfo()` informacje o sesji.
**Operatory**
`+ - * / ^` potęgowanie, `%%` modulo, `%/%` dzielenie całkowite, `== != < <= > >=`, `&` / `&&` logiczne AND, `|` / `||` OR, `!` negacja.
**Typy i brakujące dane**
`is.na(x)`, `anyNA(x)`, `as.numeric`, `as.factor`, `factor(x, levels=...)`.
**Struktury danych**
- Wektor: `c(1,2,3)`
- Macierz: `matrix(1:9, nrow=3)`
- Data frame: `data.frame(a=1:3, b=c("x","y","z"))`
- Lista: `list(num=1, txt="a")`
- Faktor: `factor(c("A","B"))`
**Indeksowanie i filtrowanie**
`x[3]`, `x[ x>0 ]`, `df$kolumna`, `df[ , "kolumna"]`, `df[1:2, ]`, `list_obj$name`.
**Statystyki opisowe**
`mean(x)`, `median(x)`, `sd(x)`, `var(x)`, `summary(x)`, `IQR(x)`, `quantile(x, 0.9)`, `weighted.mean(v,w)`.
**Agregacje (base)**
`tapply(x, g, mean)`, `aggregate(x ~ g, data=df, mean)`.
**Wizualizacja (base)**
`plot(x,y)`, `hist(x)`, `boxplot(x)`, `barplot(tab)`, `abline(model)`.
**Wizualizacja (ggplot2, skrót)**
`library(ggplot2)` `ggplot(df, aes(x,y)) + geom_point()`
**Rozkłady**
Losowanie: `rnorm(n, m, sd)`, `rbinom(n, size, prob)`
Gęstość: `dnorm(x, m, sd)`
Dystrybuanta: `pnorm(q, m, sd)`
Kwantyl: `qnorm(p, m, sd)` (analogicznie: d/p/q/r + nazwa rozkładu)
**Regresja**
`model <- lm(y ~ x1 + x2, data=df)`
`summary(model)`
`predict(model, newdata=..., interval="prediction")`
Reszty: `residuals(model)`; dopasowania: `fitted(model)`.
**Zapisywanie**
`saveRDS(obj, "plik.rds")`; `readRDS("plik.rds")`
`write.csv(df, "dane.csv", row.names=FALSE)`
**Częste pułapki**
- Użycie `=` zamiast `<-` (technicznie działa w wielu miejscach, nie zawsze i `<-` jest konwencją)
- Literówki w nazwach obiektów (_case-sensitive_)
- Zapomniane przecinki w `data.frame()`
- Mieszanie typów w wektorze (wszystko stanie się `character`)
- Brak obsługi NA: użyj `na.rm=TRUE` np.: (`mean(x, na.rm=TRUE)`).
Powodzenia w dalszej pracy z R!
Binary file not shown.
Binary file not shown.
+167
View File
@@ -0,0 +1,167 @@
# Szablon pracy dyplomowej
Jak pobrać repozytorium i rozpocząć pisanie pracy magisterskiej w RStudio przy uzyciu formatu Markdown (Quarto)?
## 1. Pobranie wybranych plików
### Opcja A: Pobieranie wybranego pliku ZIP
1. Kliknij w wybrany plik (Quarto lub LaTeX oraz UAM lub UZ)
2. Po kliknięciu pobierz go klikając ikonkę downloadu (strzałka w dół) lub napis **Zobacz czysty**
### Opcja B1: Pobieranie przez Git
Jeśli masz zainstalowany Git:
```bash
# przejdź do katalogu, w którym chcesz umieścić projekt w terminal/cmd
git clone http://150.254.88.90:3000/PKleka/Szablon-pracy-dylomowej.git
cd "Szablon pracy dyplomowej"
```
:::
Kopia repozytorium zawiera **wszystkie pliki**, dlatego zacznij pracę od usunięcia tych niepotrzebnych.
:::
### Opcja B2: Pobieranie repozytorium jako ZIP
1. Kliknij niebieski przycisk **Code** na stronie repozytorium
2. Wybierz **Download ZIP**
3. Rozpakuj archiwum w wybranej lokalizacji na dysku
4. Przejdź do folderu z rozpakowanymi plikami
5. Usuń zbędne pliki
## 2. Instalacja oprogramowania do renderowania pracy do formatu PDF
### 2.1. Instalacja R
1. Przejdź na stronę: https://cran.r-project.org/
2. Wybierz wersję dla swojego systemu operacyjnego:
- **Windows**: kliknij "Download R for Windows" → "base" → pobierz instalator
- **macOS**: kliknij "Download R for macOS" → wybierz odpowiednią wersję dla swojego procesora (Intel/Apple Silicon)
- **Linux**: postępuj zgodnie z instrukcjami dla swojej dystrybucji
3. Uruchom pobrany instalator i postępuj zgodnie z instrukcjami
4. Zalecana wersja: R 4.3.0 lub nowsza
### 2.2. Instalacja RStudio
1. Przejdź na stronę: https://posit.co/download/rstudio-desktop/
2. Przewiń w dół do sekcji **"2: Install RStudio"**
3. Pobierz wersję RStudio Desktop dla swojego systemu operacyjnego
4. Uruchom instalator i postępuj zgodnie z instrukcjami
### 2.3. Sprawdzenie instalacji
1. Uruchom RStudio
2. W konsoli R (dolne lewe okno) wpisz:
```r
version
```
3. Powinieneś zobaczyć informacje o zainstalowanej wersji R
## 3. Instalacja niezbędnych pakietów
Po uruchomieniu RStudio, musisz zainstalować pakiety potrzebne do pracy z tym szablonem.
### 3.1. Pakiety podstawowe
W konsoli R wykonaj następujące komendy (jedna po drugiej):
```r
# Instalacja menedżera pakietów (jeśli nie jest zainstalowany)
install.packages("nazwa_pakietu")
# Instalacja pakietów do pracy z Quarto i RMarkdown
install.packages("quarto")
install.packages("rmarkdown")
install.packages("knitr")
# Pakiety do bibliografii i cytowań
install.packages("knitcitations")
install.packages("bibtex")
```
Więcej o języku R na stronie https://kleka.web.amu.edu.pl/nauka/wprowadzenie_do_R.html
### 3.2. TinyTeX - instalacja LaTeX-a
LaTeX jest niezbędny do generowania dokumentów PDF. Najłatwiejszym sposobem instalacji jest użycie pakietu `tinytex`:
```r
# Instalacja pakietu tinytex
install.packages("tinytex")
# Instalacja dystrybucji TinyTeX
tinytex::install_tinytex()
```
**Uwaga**: Instalacja TinyTeX może potrwać kilka minut. Po zakończeniu **uruchom ponownie RStudio**.
### 3.3. Weryfikacja instalacji TinyTeX
Po ponownym uruchomieniu RStudio sprawdź, czy TinyTeX został poprawnie zainstalowany:
```r
tinytex::is_tinytex()
```
Jeśli wynik to `TRUE`, instalacja przebiegła pomyślnie.
### 3.4. Dodatkowe pakiety LaTeX (w razie potrzeby)
Jeśli podczas kompilacji dokumentu pojawią się błędy związane z brakującymi pakietami LaTeX, możesz je doinstalować:
```r
# Instalacja konkretnego pakietu LaTeX
tinytex::tlmgr_install("nazwa_pakietu")
# Przykłady często potrzebnych pakietów:
tinytex::tlmgr_install("babel-polish")
tinytex::tlmgr_install("csquotes")
tinytex::tlmgr_install("caption")
tinytex::tlmgr_install("fancyhdr")
```
## 4. Rozpoczęcie pracy
1. Otwórz plik `dyplom.Rproj` - uruchomi on RStudio (podwójne kliknięcie)
2. Otwórz plik `_START.qmd` - to główny plik Twojej pracy. Możesz zmienić jego nazwę.
3. Edytuj zawartość zgodnie z postępami pracy dyplomowej
4. Aby wygenerować PDF:
- Kliknij przycisk **Render** (lub naciśnij `Ctrl+Shift+K` / `Cmd+Shift+K`)
- Poczekaj na zakończenie kompilacji
- Dokument PDF pojawi się w tym samym folderze
## 5. Struktura projektu
- `_START.qmd` - główny plik pracy dyplomowej
- `analiza.qmd` - przykładowy rozdział z analizą danych
- `poradnik.qmd` - poradnik formatowania i pisania pracy
- `literatura.bib` - baza danych bibliograficznych (format BibTeX)
- `dyplUAM.cls` - klasa LaTeX dla formatu pracy
- `header.tex` - dodatkowe ustawienia LaTeX
- `before-body.tex` - strona tytułowa i deklaracje
## 6. Rozwiązywanie problemów
### Problem: Błąd podczas generowania PDF
- Sprawdź, czy TinyTeX jest zainstalowany: `tinytex::is_tinytex()`
- Sprawdź komunikaty błędów - często wskazują na brakujące pakiety LaTeX
- Zainstaluj brakujące pakiety używając `tinytex::tlmgr_install()`
### Problem: Encoding/znaki polskie się nie wyświetlają
- Upewnij się, że plik jest zapisany w kodowaniu UTF-8
- W RStudio: Tools → Global Options → Code → Saving → Default text encoding: UTF-8
### Problem: Bibliografia się nie generuje
- Sprawdź, czy plik `literatura.bib` istnieje i jest poprawnie sformatowany
- Upewnij się, że w nagłówku YAML dokumentu jest podana ścieżka do pliku bibliografii
## Pomoc
W razie problemów skontaktuj się z promotorem

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

+119
View File
@@ -0,0 +1,119 @@
---
title: "Nadzieja na sukces w pisaniu pracy, która będzie wystarczająco naukowa"
author: "Janina Kowalska"
date: "`r Sys.Date()`"
format:
pdf:
documentclass: dyplUZ
classoption: magisterska # magisterska | brudnopis
colorlinks: false
template-partials:
- before-body.tex
include-in-header:
- file: header.tex
- text: |
\nrwersji{1}
\tytulang{Hope for success in writing a paper that is scientific enough}
\email{123456@st.zgora.edu.pl}
\nralbumu{123456}
\kierunek{Psychologia}
\specjalnosc{Psychologia edukacyjno -- wychowawcza}
\zgody{TAK}
\opiekun{Prof. UZ, dr hab. Paweł Kleka}
\dedication{Napisz własne podziękowania lub usuń tę linię w nagłówku!}
abstract: "Niniejsza praca dotyczy [...]. \n Za jej główny cel obrano ustalenie, czy [...]. \n Przeprowadzona procedura badawcza [...]. \n Wykonane analizy wykazały, że [...]. \n Wśród ograniczeń badania wymienić należy [...]."
keywords: "słowo, słowo, słowo"
abstracteng: "Whatever"
keywordseng: "word, word, word"
number-sections: true
toc-title: "Spis treści"
crossref:
chapters: true # odwołania do rozdziałów
lof-title: "Spis rysunków"
fig-prefix: rycina # odwołania w tekście
fig-title: Ryc. # skrót w tytule
lot-title: "Spis tabel"
tbl-prefix: tabela # odwołania
tbl-title: Tab. # skrót
bibliography: literatura.bib # nazwa pliku z literaturą
csl: apa_pl.csl
fig-cap-location: top
lang: pl
keep-tex: true # Czy plik TEX ma pozostać po kompilacji PDF
toc: true # Czy pokazać: spis treści
lot: true # spis tabel
lof: true # spis rysunków
---
<!-- Szablon ten zawiera mieszaninę kodu markdown i LaTeX
i może wyglądać trochę dziwnie.
Ale działa i taki był mój główny cel :-)
Jeśli uda Ci się uprościć/ujednolicić/poprawić ten szablon
to bardzo proszę o info na: pawel.kleka@amu.edu.pl
Przy okazji: to jest sposób na komentarze -->
{{< pagebreak >}}
\chapter{Wprowadzenie w problematykę}
<!-- wszystkie tytuły można zmienić, bo powinny być znaczące
i nawiązywać do treści danej sekcji -->
# systematyczny przegląd literatury
## kontrowersje, sprzeczne wyniki, niejasne interpretacje
## ważniejsze ustalenia badawcze {#sec-r1}
# sformułowanie problemu i hipotezy
{{< pagebreak >}}
\chapter{Metoda}
# plan badawczy
# procedura
# narzędzia
## zdefiniowanie zmiennych
# planowane analizy
# uczestnicy
## cechy populacji docelowej
## planowana wielkość próby
{{< pagebreak >}}
\chapter{Wyniki}
# opis zrealizowanej próby
# opis statystyczny wyników
# testowanie hipotez
W jaki sposób pisać korzystając z R, dowiesz się z poradnika (zob. załacznik), który koniecznie usuń z końcowej wersji pracy.
<!-- w poniższy sposób można załączyć inny plik, w ktrórym np.
robimy analizy, czy przygotowujemy wykres. Można, ale nie trzeba.-->
{{< include analiza.qmd >}}
{{< pagebreak >}}
\chapter{Dyskusja}
# wyniki na tle innych badań
# konsekwencje dla teorii
# wnioski dla praktyki społecznej
# zalety i wady procedury badawczej
# zalecenia na przyszłość
{{< pagebreak >}}
{{< pagebreak >}}
\chapter*{Literatura}
\addcontentsline{toc}{chapter}{Literatura}
::: {#refs}
:::
{{< pagebreak >}}
\chapter*{Załączniki}
\addcontentsline{toc}{chapter}{Załączniki}
{{< pagebreak >}}
{{< include poradnik.qmd >}}
+9
View File
@@ -0,0 +1,9 @@
A tutaj można analizować i opisywać w osobnym pliku.
```{r}
# aby ukryć kod dodaj na początku "#| echo: false"
```
## Mój problem
A teraz zwykły tekst, który jest włączany do całej pracy z zachowaniem numeracji nagłówków.
File diff suppressed because it is too large Load Diff
+23
View File
@@ -0,0 +1,23 @@
$if(has-frontmatter)$
\frontmatter
$endif$
$if(title)$
$if(abstract)$
\begin{abstract}
$abstract$\\
\\
\textit{ \textbf{ Słowa kluczowe: }}$keywords$
\end{abstract}
\newpage
\begin{abstracteng}
$abstracteng$\\
\\
\textit{ \textbf{ Keywords: }}$keywordseng$
\end{abstracteng}
$endif$
$if(beamer)$
\frame{\titlepage}
$else$
\maketitle
$endif$
$endif$
+514
View File
@@ -0,0 +1,514 @@
% Klasa dokumentów do składu prac magisterskich/licencjackich
% na Wydziale Psychologii i Kognitywistyki UAM (wersja 1.2.1)
%
% This work may be distributed under the terms of the LaTeX Project
% Public License, as described in lppl.txt in the base LaTeX
% distribution. Either version 1.0 or, at your option, any later version.
%
% Klasa dyplUAM może być rozpowszechniana na zasadach publicznej
% licencji LaTeX Project (The LaTeX project public license, LPPL,
% por. http://www.latex-project.org/lppl/)
% Istota LPPL sprowadza się do tego, że modyfikacje pliku dozwolone
% są wyłacznie pod warunkiem zmiany jego nazwy.
%
\def\ThisClassVersionId{v1.3}
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{dyplUZ}[2024/10/01 \ThisClassVersionId, Praca magisterska/licencjacka]
\def\@baseclass{report}
\def\@rodzajpracy{magisterska}
\def\@BInterlinia{\relax}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\@baseclass}}
\PassOptionsToClass{a4paper,oneside,openany,11pt}{\@baseclass}
%
\newif\if@dyplUZauthoryear
\DeclareOption{autorrok}{\@dyplUZauthoryeartrue}
\newif\if@dyplUZbackref \DeclareOption{backref}{\@dyplUZbackreftrue}
\DeclareOption{licencjacka}{\def\@rodzajpracy{licencjacka}}
% opcja `brudnopis' wykorzystuje pakiet `prelim2e'
\DeclareOption{brudnopis}{\AtEndOfClass{\input{prelim2e.sty}%
\renewcommand{\PrelimWords}{\ThisDocVersionId}\linespread{2.0}}}
\DeclareOption{xodstep}{\AtEndOfClass{\linespread{1.3}}}
\ProcessOptions
%
\LoadClass{\@baseclass}
%
\usepackage{graphicx}
\RequirePackage[labelfont=bf,labelsep=none]{caption}
%%
\if@dyplUZbackref
\usepackage[breaklinks,pagebackref]{hyperref}\else
\usepackage[breaklinks]{hyperref} \fi
% \if@dyplUZauthoryear
% \typeout{*** Cytowanie autor-rok ***}\RequirePackage{natbib}\fi
%
%
\textwidth\paperwidth
\advance\textwidth -55mm
\oddsidemargin-1in
\advance\oddsidemargin 30mm
\evensidemargin-1in
\advance\evensidemargin 25mm
\topmargin -1in
\advance\topmargin 25mm
\setlength\textheight{48\baselineskip}
\addtolength\textheight{\topskip}
\marginparwidth15mm
%
\widowpenalty999999
\tolerance450
\pretolerance250
\hfuzz=1.5pt
\hbadness1450
%
\def\AndNextAuthor{\ifnum\language=0\& \else i \fi}
\newcount\authornumber
\authornumber=0
%
\def\author#1{%
\global\advance\authornumber\@ne
\expandafter\def\csname theauthor\number\authornumber\endcsname
{\ignorespaces#1\unskip}%
\expandafter\def\csname theauthorid\number\authornumber
\expandafter\let\csname thenetaddress\number\authornumber\endcsname\relax }
%
\def\nralbumu#1{%
\expandafter\def\csname theauthorid\number\authornumber\endcsname
{\ignorespaces#1\unskip}}
\def\email#1{% -- opcjonalny --
\expandafter\def\csname thenetaddress\number\authornumber\endcsname
{\ignorespaces#1\unskip}}
%%\def\authorlist#1{\def\@author{#1}}
\def\@author{\@defaultauthorlist}
\newcount\count@@
\def\@defaultauthorlist{%
\count@=\authornumber
\count@@=0
\loop
\ifnum\count@>0
\advance\count@@ by 1
\begingroup \Large\bf
\ignorespaces\csname theauthor\number\count@@\endcsname\par
\normalsize \rm nr~albumu:
\ignorespaces\csname theauthorid\number\count@@\endcsname\par
% adres email nie jest drukowany -- ale si{\e} przyda
\ignorespaces\csname thenetaddress\number\count@@\endcsname
\par
\medskip \endgroup
\advance\count@ by -1
\repeat
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%% Definicja oświadczenia %%%%%%%%%%%%%%%%%%%%%%
% <<
\def\UniversityName#1{\def\Univ@Name{#1}}
\def\Univ@Name{Uniwersytet Zielonogórski\\Wydzia{\l} Nauk Spo{\l}ecznych}%
% <<
\def\oswiadczenieText{%
\'Swiadoma(y) odpowiedzialno\'sci karnej, w{\l}\k{a}cznie z rygorem niewa\.zności nadania tytu{\l}u o\'swiadczam, \.ze przed{\l}o\.zona praca dyplomowa nt.
\@title
zosta{\l}a napisana przeze mnie samodzielnie i nie by{\l}a wcze\'sniej podstaw\k{a} \.zadnej innej
urzędowej procedury zwi\k{a}zanej z nadaniem dyplomu wy\.zszej uczelni lub tytu{\l}\'ow zawodowych.
Jednocze\'snie o\'swiadczam, \.ze ww. praca nie narusza praw autorskich w rozumieniu ustawy
z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych innych os\'ob oraz d\'obr
osobistych chronionych prawem cywilnym.
O\'swiadczam r\'ownie\.z, \.ze egzemplarz pracy dyplomowej w formie wydruku
komputerowego jest zgodny z egzemplarzem pracy dyplomowej w formie elektronicznej.\endgraf }
\long\def\oswiadczenie{
\hfill Zielona G\'ora, ...\@date...
\\
\@author\\
\\
\Univ@Name\\
\@kierunek / \@specjalnosc\\
\vspace*{15mm}
\if@twocolumn \onecolumn \fi
\centerline{\large\textbf{O\'swiadczenie}}
\vspace*{15mm}
%%\chapter*{O\'swiadczenie}%
%%\addcontentsline{toc}{chapter}{O\'swiadczenie}%
\par
\vskip6mm
\noindent
\thispagestyle{empty}
\oswiadczenieText
\par\vskip15mm
\centerline{\vbox{%
\hbox to.8\textwidth{\hbox to45mm{\dotfill}\hss
\hbox to45mm{\dotfill}}
\hbox to.8\textwidth{\hbox to45mm{\hss podpis\hss}\hss
\hbox to45mm{\hss miejscowo\'s\'c i data\hss}}%
}}\par
}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%% (opcjonalna) Dedykacja %%%%%%%%%%%%
\newif\ifdedicationpage
\dedicationpagetrue % Włączenie strony z dedykacją
\newcommand{\dedication}[1]{\gdef\@dedication{#1}}
\def\@dedication{}
\newcommand{\dedicationhere}{%
\ifdedicationpage
\newpage \thispagestyle{empty}
\vspace*{\fill}
\begin{minipage}{\textwidth}
\begin{flushright}
\itshape \@dedication
\end{flushright}
\end{minipage}
%\vspace*{\fill}
\newpage
\fi
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%% Strona tytułowa %%%%%%%%%%%%%%%%
\renewcommand\maketitle{%
\begin{titlepage}%
\let\footnotesize\small
\let\footnoterule\relax
%\let \footnote \thanks
\begin{figure}[t] % 't' oznacza umiejscowienie na górze strony
\centering
\begin{minipage}[t]{0.3\textwidth} % Lewa kolumna na rysunek
\vspace{0mm} % Ustawia tekst na samej górze minipage
\includegraphics[width=\linewidth]{uz.png}
\end{minipage}%
\hfill % odstęp między minipage
\begin{minipage}[t]{0.6\textwidth} % Prawa kolumna na tekst
\vspace{20mm} % Ustawia tekst na samej górze minipage
\begin{center}%
{\Large \textsc{\Univ@Name}\par}
\par
\end{center}
\end{minipage}
\end{figure}
\begin{flushleft}
\tiny
\begin{tabular}{@{} l}
{\small Kierunek: \hspace{1.15cm}\textsc{\@kierunek}}\\[1pt]
{\small Specjalność: \hspace{0.8cm}\@specjalnosc\par}\\[1pt]
{\small Numer albumu: \hspace{0.3cm}\@nralbumu\par}\\ % Dodane pole z numerem albumu
\end{tabular}
\end{flushleft}
\vspace{5mm plus 1fill}
\begin{center}%
{\@author\par}
\end{center}%
\vspace{8mm plus 1mm minus 2mm}
\begin{center}%
{\huge\textbf{\@title}\par}
\vspace{8mm plus 1mm minus 1mm}
{\textbf{\@tytulang}\par}
\vspace{1.5cm plus 1.5fill}
\begin{flushright}\large
\begin{tabular}{r}
Praca \@rodzajpracy{} pod kierunkiem:\\[3pt]
\bfseries \@opiekun
\end{tabular}
\end{flushright}
\vspace{10mm plus .1fill}
\begin{flushleft}
\small
\begin{tabular}{@{} l}
Akceptacja promotora: \\
\\
\dotfill \\
data, podpis promotora \\
\end{tabular}
\end{flushleft}
{\large \@miejsce,\space \number\year\par}
\end{center}
\end{titlepage}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% dedykacja %%%%%%%%%%
\dedicationhere
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% oświadczenie %%%%%%%%%%
\oswiadczenie
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{footnote}{0}%
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
%
\setcounter{page}{2}%
% Jezeli podano slowa kluczowe wydrukuj
\clearpage
\thispagestyle{empty}
\ifvoid\abspagebox\@latex@warning{*** Nie podano streszczenia ***}%
\else\InsertAbstractHere \fi
\ifx\@keywords\EmptyKwsList \@latex@warning{*** Nie podano slow kluczowych ***}%
\else \section*{S{\l}owa kluczowe}\noindent
\@keywords
\fi
\clearpage
\thispagestyle{empty}
\ifvoid\absengpagebox\@latex@warning{*** Nie podano angielskiego streszczenia ***}%
\else\InsertAbstractengHere \fi
\ifx\@keywordseng\EmptyKwsList \@latex@warning{*** Nie angielskich podano slow kluczowych ***}%
\else \section*{Keywords}\noindent
\@keywordseng
\newpage
\fi
} %% --renewcommand: maketitle --
\def\nralbumu#1{\gdef\@nralbumu{#1}}
\def\@nralbumu{???\ClassError{dyplUZ}{Brak numeru albumu}\@ehc}
\def\kierunek#1{\gdef\@kierunek{#1}}
\def\@kierunek{???\ClassError{dyplUZ}{Nie podano kierunku studiow}\@ehc}
\def\specjalnosc#1{\gdef\@specjalnosc{#1}}
\def\@specjalnosc{???\ClassError{dyplUZ}{Nie podano specjalności studiow}\@ehc}
\def\opiekun#1{\gdef\@opiekun{#1}}
\def\@opiekun{???\ClassError{dyplUZ}{Brak danych opiekuna pracy}\@ehc}
\def\miejsce#1{\gdef\@miejsce{#1}}
\def\@miejsce{Zielona G\'ora}
\def\author#1{\gdef\@author{#1}}
\def\tytul#1{\gdef\@tytul{#1}}
\def\tytulang#1{\gdef\@tytulang{#1}}
\def\keywords#1{\gdef\@keywords{#1}}
% slowa kluczowe sa opcjonalne:
%%\def\@keywords{???\ClassError{dyplUZ}{Brak slow kluczowych}\@ehc}
\def\@keywords{????}
\def\EmptyKwsList{????}
\def\keywordseng#1{\gdef\@keywordseng{#1}}
\def\@keywordseng{????}
\def\EmptyKwsListEng{????}
%
\def\zgody#1{\gdef\@zgody{#1}}
%%
% \def\klasyfikacja#1{\gdef\@klasyfikacja{#1}}
% \def\@klasyfikacja{???\ClassError{dyplUZ}{Brak klasyfikacji
% tematycznej}\@ehc}
%
\newbox \abspagebox%% *tp **
\def\InsertAbstractHere{\unvbox\abspagebox}
%
\renewenvironment{abstract}{\global%
\setbox \abspagebox \vbox \bgroup%
\section*{Streszczenie}}
{\egroup}
%
\newbox \absengpagebox%% *tp **
\def\InsertAbstractengHere{\unvbox\absengpagebox}
%
\newenvironment{abstracteng}{\global%
\setbox \absengpagebox \vbox \bgroup%
\section*{Summary}}
{\egroup}
%
%
\renewcommand*\@seccntformat[1]{\csname the#1\endcsname.\enspace}
\def\numberline#1{\hb@xt@\@tempdima{#1.\hfil}}
\renewcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 1.0em \@plus\p@
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\mdseries
\leaders\hbox{$\m@th
\mkern \@dotsep mu\hbox{.}\mkern \@dotsep
mu$}\hfill
\nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\endgroup
\fi}
%
\def\@makechapterhead#1{%
%\vspace*{50\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
\normalsize \bfseries \MakeUppercase{\@chapapp}\space \thechapter
\par\nobreak
\vskip\baselineskip
\fi
\interlinepenalty\@M
\LARGE \bfseries #1\par\nobreak
\vskip 40\p@
}}
%
\def\@makeschapterhead#1{%
%\vspace*{50\p@}%
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\LARGE \bfseries #1\par\nobreak
\vskip 40\p@
}}
%
\renewcommand{\section}{\@startsection{section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\reset@font\Large\bfseries\raggedright}}
\renewcommand{\subsection}{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\reset@font\large\bfseries\raggedright}}
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\reset@font\normalsize\bfseries\raggedright}}
\renewcommand{\paragraph}{???\ClassError{dyplUZ}{Zbyt duzo srodtytulow}\@ehc}%
%
% Skorowidz: dodanie kresek w pozycjach skorowidza stopnia drugiego
\renewenvironment{theindex}{%
\clearpage \refstepcounter{chapter}% potrzebne do prawid{\l}owego dzia{\l}ania zak{\l}adek w dokumencie PDF
\columnseprule \z@ \columnsep 35\p@
\twocolumn[\@makeschapterhead{\indexname}]%
\@mkboth{\indexname}{\indexname}%
\addcontentsline{toc}{chapter}{\indexname}%
\thispagestyle{plain}\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\let\item\@idxitem }
{\clearpage }
\def\indexemdashes{%
\def\@idxitem{\par\hangindent 0pt}
\def\subitem{\par\hangindent 0pt --- }
\def\subsubitem{\par\hangindent 0pt --- --- }
\def\indexspace{\par \vskip 10pt plus 5pt minus 3pt\relax}}
\indexemdashes
%
% Wprowadzenie/zako\'nczenie
\newcommand{\introduction}{%\doublepage
\chapter*{\IntroName\@mkboth{\IntroName}{\IntroName}}%
\addcontentsline{toc}{chapter}{\IntroName}}
%
\newcommand{\summary}{%\doublepage
\chapter*{\SummaryName\@mkboth{\SummaryName}{\SummaryName}}%
\addcontentsline{toc}{chapter}{\SummaryName}}
%
\renewenvironment{thebibliography}[1]
{\chapter*{\bibname}%
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}%
\addcontentsline{toc}{chapter}{\bibname}%<--
\list{%%
\@biblabel{\@arabic\c@enumiv}}%\fi}%
{%%
\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
% Polecenia listoffigures/listoftables
% odkomentuj \addcontentsline, tak aby tytu{\l} spisu pojawi{\l}
% si\k{e} w spisie tre\'sci i zak\ladkach w pliku PDF:
\renewcommand\listoffigures{%
\chapter*{\listfigurename
\@mkboth{\MakeUppercase\listfigurename}%
{\MakeUppercase\listfigurename}}%
\@starttoc{lof}
%\addcontentsline{toc}{chapter}{\listfigurename}
}
%
\renewcommand\listoftables{%
\chapter*{\listtablename
\@mkboth{%
\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}%
\@starttoc{lot}
%\addcontentsline{toc}{chapter}{\listtablename}
}%
%
% --------------------------------------------------------
% Format podpisów tabel i rysunków (APA7)
% --------------------------------------------------------
% Dwuliniowe podpisy do tabel: pogrubione "Tabela X." i opis w nowej linii
\DeclareCaptionFormat{twoline}{\hspace{1.5em}\textbf{#1~#2}\par \hspace{1.5em}#3}
\captionsetup[table]{
format=twoline,
labelfont=bf,
textfont=it,
labelsep=space,
singlelinecheck=false,
justification=raggedright,
name=Tabela
}
\captionsetup[figure]{
format=twoline,
labelfont=bf,
textfont=it,
labelsep=space,
singlelinecheck=false,
justification=raggedright,
name=Rysunek
}
% formatowanie zrodła
\newcommand{\podpis}[1]{%
\vspace{-1em}%
\begin{flushleft}
\footnotesize\hspace{1.7em} #1
\end{flushleft}
\vspace{1.2em}
\normalsize
}
%
% Oznakowanie wersji dokumentu na każdej stronie w postaci
% adresu e-mail pierwszego autora (jeżeli jest zdefiniowany) lub imienia
% i nazwiska pierwszego autora + tego co autor wpisał jako
% argument polecenia \nrwersji + bieżąca data.
\def\nrwersji#1{\def\ThisDocVersion{#1}}\nrwersji{????}%
\def\ThisDocVersionId{
--> \space wersja \ThisDocVersion %z\space \number\day/\number\month/\number\year~r.
}
%
\def\IntroName{Wprowadzenie}
\def\SummaryName{Zako\'nczenie}
\def\SourceName{\'Zr\'od{\l}o}
%
\endinput
+16
View File
@@ -0,0 +1,16 @@
\usepackage[MeX]{polski}
\usepackage[labelfont=bf]{caption}
\usepackage{amsfonts}
\providecommand{\BIBand}{i}
\usepackage[noload]{qtree}
\usepackage{indentfirst}
\usepackage{booktabs}
%%%%
\usepackage{hyperref}
\usepackage{csquotes}
\usepackage{float}
\usepackage{multirow}
\usepackage{array}
%%%%
% Miejsce na deklaracje własnych poleceń:
\renewcommand{\arraystretch}{1.2}
+65
View File
@@ -0,0 +1,65 @@
% ARTYKUŁY
% Rędzio (2020):
@article{Brycz_2019,
author = {Brycz, Hanna and Konarski, Roman and Kleka, Paweł and Wright Rex},
title = {The metacognitive self: the role of~motivation and an updated measurement tool},
journal = {Economics \& Sociology},
volume = {12},
number = {1},
pages = {208--232},
year = {2019},
issn = {2071-789},
abstract = {The aim of this article is to present the theoretical motivational background regarding metacognitive self, which is being aware of how biases and psychological rules (like classic conditional) influence ones own behavior. Based on this framework, we used a Polish nationwide representative sample to create a reliable tool (the first study: \textit{n} = 1200, the next study \textit{n} = 600, Partner in Business Strategy Company as an external contractor, who served as data collector). Until now, the MCSQ40 questionnaire has been used. After modification changing the continuous scale into a 6-point scale and a survey of a representative sample of the Poles, a single-factor structure of metacognitive self was developed, and 21 items out of 40 previously used were selected. This resulted in developing a new tool: MCSQ-21. We assessed the congruent and concurrent validity of this instrument.}
}
% Drążkowski (2013):
Drążkowski, D. (2013). Poznawcze uwarunkowania zagrożenia stereotypem. In W: 8 Poznańskie Forum Kognitywistyczne. Teksty Pokonferencyjne (Vol. 7, pp. 25-28).
@article{Drazkowski_2013,
author = {Drążkowski, Dariusz},
title = { Poznawcze uwarunkowania zagrożenia stereotypem},
journal = { 8 Poznańskie Forum Kognitywistyczne. Teksty Pokonferencyjne},
volume = {7},
pages = {25--28},
year = {2013},
issn = {1689-9768},
abstract = {Artykuł omawia poznawcze mechanizmy zjawiska zagrożenia stereotypem, które przyczynia się do tego, że przedstawiciele stygmatyzowanych grup społecznych osiągają gorsze wyniki w wielu zadaniach, które wykonują. Opisany w pracy zintegrowany procesualny model efektów zagrożenia stereotypem najpełniej integruje dotychczasowe badania procesów pośredniczących między zagrożeniem stereotypem a spadkiem poziomu wykonywanych czynności. Centralne miejsce w tym modelu zajmuje pojemność pamięci operacyjnej, której zmniejszenie się pogarsza efektywność kontrolowanych czynności.}
}
% KSIĄŻKI
% Weigl (2005):
@book{Necka_2020,
author = {Nęcka, Edward and Orzechowski, Jarosław and Szymura, Błażej and Wichary, Szymon},
title = {Psychologia poznawcza},
isbn = {9788301210427},
publisher = {Wydawnictwo Naukowe PWN},
year = {2020}
}
% NARZĘDZIA
% Nęcka (2020):
@phdthesis{Redzio_2020,
title = { Paradoksalne efekty zagrożenia stereotypem: kiedy~i~dlaczego negatywne stereotypy poprawiają funkcjonowanie poznawcze?},
school = {Uniwersytet Warszawski},
author = {R{\k{e}}dzio, Anna},
year = {2020}
}
% PRACE ZBIOROWE
% Brycz (2019):
@incollection{Weigl_2005,
author = {Weigl, Barbara},
title = {Stereotypy i uprzedzenia},
editor = {Strelau, Jan},
booktitle = {Psychologia. {P}odręcznik akademicki. {T}om 3: {J}ednostka w~społeczeństwie i~elementy psychologii stosowanej},
isbn = {9788374890847},
publisher = {Gdańskie Wydawnictwo Psychologiczne},
year = {2005},
pages = {205--233}
}
+65
View File
@@ -0,0 +1,65 @@
# Poradnik {#sec-poradnik .unnumbered}
::: {.callout-note appearance="simple"}
Informacje jak używać qmarkdown przy okazji jest to wyróżniona formatem treść. W dowolnym miejscu można używając atrybutu: `note`, `tip`, `warning`, `caution`, lub `important` aby wyróżnić paragraf.
:::
Quatro pozwala na używanie formatowania markdown, ale można też stosować "sztuczki" LaTeXowe. Np. `newpage`, choć dla uniwersalności (aby praca była publikowalna też jako doc i/lub html) lepiej używać `pagebreak` z klamrami.
## Używanie kodu R {.unnumbered .unlisted}
Po kliknięciu przycisku **Render** dokument zostanie wygenerowany a wszystkie miejsca oznaczone jako *chunk* e**R**owy lub **Python**owy zostaną wykonane a ich efekt wpleciony w tekst. Aby wskazać wykonywalny kod trzeba zrobić tak:
```{r}
1 + 1
```
Kod można ukryć dodając: `echo: false`. Na wydruku pojawi się tylko efekt lub też dostępny będzie wynik obliczeń do dalszej obróbki. Więcej specyficznych ustawień można znaleźć na stronie <https://quarto.org>.
```{r}
#| echo: false
a <- 23 * 32
```
Na przykład wynik mnożenia $23 \cdot 32$ został obliczony i wynosi `r a`.
{{< pagebreak >}} \### Rysunki {.unnumbered .unlisted}
Rysunki takie jak @fig-plot1 mogą być generowane lub importowane.
```{r fig-plot1}
#| fig-cap: 'Tytuł obrazka'
plot(1) ## tu jest generowany z danych, import przez '![Tytuł](ścieżka/do/pliku)'
```
\podpis{{\it Adnotacja}. Przedruk z: Przypadkowy, 2025, s. 25.}
{{< pagebreak >}}
### Wstawianie tabel {.unnumbered .unlisted}
Tabela utworzona ręcznie i odwołanie do niej
| Default | Left | Right | Center |
|---------|:-----|------:|:------:|
| 12 | 12 | 12 | 12 |
| 123 | 123 | 123 | 123 |
| 1 | 1 | 1 | 1 |
: Wyrównanie treści w tabeli i ustalenie ich szerokości {#tbl-just tbl-colwidths="\[15,25,35,15\]"}
\podpis{{\it Źródło}: badanie własne. Szerokość w procentach: tbl-colwidths="[15,25,35,15]"}
Zobacz jak ładna jest @tbl-just. A tu przypadkowy cytat [@Brycz_2019].
Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść. Fantastyczna treść.
Niesamowite wyniki obliczone i opisane w innym pliku ale zapowiedziane w @sec-r1.
Aby zmienić czcionkę na wykresach i zapewnić na nich polskie znaki trzeba dodać na początku pliku:
```
pdf.options(family="Times", encoding='CP1250.enc')
```
Więcej [na stronie Quarto](https://rstudio.github.io/cheatsheets/html/quarto.html).
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.