Różnice między wybraną wersją a wersją aktualną.
Both sides previous revision Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
r_gr_kryteriaoceny [2015/01/30 19:21] zozlak [Wstęp] |
r_gr_kryteriaoceny [2017/11/10 09:34] (aktualna) zozlak [Funkcje] |
||
---|---|---|---|
Linia 3: | Linia 3: | ||
===== Wstęp ===== | ===== Wstęp ===== | ||
- | * Pobiera informacje z banku zadań o [[kryteriumoceny|kryteriach oceny]], [[pytanie|pytaniach]], jak również występowaniu kryteriów oceny w [[test|testach]]. | + | * Przechowuje informacje z banku zadań o: |
- | * **Jednostką obserwacji** w grupie danych jest **wystąpienie [[kryteriumoceny|kryterium oceny]] w [[test|teście]]**, Stąd **to samo kryterium oceny może się pojawiać w zbiorze danych wielokrotnie**. | + | * [[pytanie|pytaniach]] |
- | * Taka konstrukcja umożliwia łączenie z grupą danych [[r_gr_testy|testy]]. | + | * [[kryteriumoceny|kryteriach oceny]], |
- | * Aby uniknąć duplikatów, wystarczy usunąć ze zbioru zmienne //id_testu, popr_dystraktor, kolejnosc_kryt// i wykonać funkcję [[r_dplyr_wiersze#distinct|distinct()]] | + | * [[pseudokryteriumoceny|pseudokryteriach oceny]], |
+ | * występowaniu powyższych w [[test|testach]] i [[skala|skalach]]. | ||
- | * Listę zmiennych zawartych w tej grupie danych znajdziesz [[r_gr#podsumowanie_informacji_o_grupach_danych|tutaj]]. | + | * **Jednostką obserwacji** w grupie danych **jest wystąpienie [[kryteriumoceny|kryterium oceny]] (także jako elementu składowego [[pseudokryteriumoceny|pseudokryterium oceny]]) w [[test|teście]] oraz [[skala|skali]]**. \\ Stąd **to samo kryterium oceny może się pojawiać w zbiorze danych wielokrotnie**. |
+ | * **Typowo tak szczegółowo określona jednostka obserwacji nie jest wygodna w użyciu.** Stąd funkcja //pobierz_kryteria_oceny()// umożliwia ograniczenie zakresu pobieranych danych do: | ||
+ | * jedynie informacji o kryteriach i pseudokryteriach oceny (z pominięciem danych o ich występowaniu w testach i skalach) | ||
+ | * informacji o kryteriach i pseudokryteriach oceny oraz ich występowaniu w testach (z pominięciem informacji o ich występowaniu w skalach) | ||
+ | * informacji o kryteriach i pseudokryteriach oceny oraz ich występowaniu w skalach (z pominięciem informacji o ich występowaniu w testach) | ||
+ | * można także wybrać, czy traktować pseudokryteria oceny jak pojedyczne kryteria, czy w rozbiciu na kryteria składowe | ||
+ | * W wypadku korzystania z pełnych danych (a więc z dołączonymi spermutowanymi przez siebie informacjami o występowaniu (pseudo)kryteriów oceny w testach i skalach) należy zwrócić szczególną uwagę na występowanie w danych duplikatów wynikających z tych permutacji. Jest to najczęstsza przyczyna błędów w analizach z wykorzystaniem tej grupy danych. | ||
- | * Aby pobrać grupę danych kryteriaOceny wywołujemy funkcję \\ \\ //**pobierz_kryteria_oceny**(src)//, gdzie \\ \\ | + | * Korzystając z grupy danych należy pamiętać o tym, że **zawiera ona także "nietypowe twory"**, które są zbiorami "normalnych" [[kryteriumoceny|kryteriów oceny]]. Najłatwiej odfiltrować je po wartości zmiennej //typ_pytania//. Te "dziwne twory" to: |
+ | * [[pseudokryteriumoceny|pseudokryteria oceny]] | ||
+ | * //pseudopytania// - "pytania", które występują w zbiorach danych z wynikami testów i przechowują sumę punktów za całe zakresy pytań w teście | ||
+ | |||
+ | * Dwie najbliżej powiązane grupy danych to | ||
+ | * [[r_gr_testy|testy]], gdzie znaleźć można dokładne informacje o testach | ||
+ | * [[r_gr_parametry|parametry]], gdzie znajdują się parametry psychometryczne kryteriów i pseudokryteriów oceny. | ||
+ | |||
+ | * Listę zmiennych zawartych w tej grupie danych znajdziesz [[r_zmienne?zm=kryteriaoceny|tutaj]]. | ||
+ | |||
+ | ===== Funkcje ===== | ||
+ | |||
+ | * //**pobierz_kryteria_oceny**(src, testy = TRUE, skale = TRUE, kryteria = TRUE)//, \\ Pobiera informacje o pytaniach, kryteriach oceny, ich przypisaniu do testów oraz skal \\ **Uwaga** parametry //testy// i //skale// zmieniają jednostkę obserwacji zwracanych danych (czytaj więcej we wstępie)! \\ Parametry: | ||
* //src// - zmienna zawierająca połączenie z bazą danych zwrócone przez funkcję polacz() | * //src// - zmienna zawierająca połączenie z bazą danych zwrócone przez funkcję polacz() | ||
+ | * //testy// - czy pobierać informacje o występowaniu [[kryteriumoceny|kryteriów]] i [[pseudokryteriumoceny|pseudokryteriów]] oceny w [[test|testach]] | ||
+ | * //skale// - czy pobierać informacje o występowaniu [[kryteriumoceny|kryteriów]] i [[pseudokryteriumoceny|pseudokryteriów]] oceny w [[skala|skalach]] | ||
+ | * //kryteria// - czy dla [[pseudokryteriumoceny|pseudokryteriów oceny]] pobierać informacje o [[kryteriumoceny|kryteriach oceny]], z których się składają | ||
- | ==== Przykład ==== | + | * //**pobierz_schematy_odp**(src)//, \\ Pobiera pełne schematy odpowiedzi pytań. Schemat łączy się z pytaniem poprzez zmienną //schemat_odp// \\ Parametry: |
+ | * //src// - zmienna zawierająca połączenie z bazą danych zwrócone przez funkcję polacz() | ||
+ | |||
+ | * //**pobierz_schematy_pkt**(src)//, \\ Pobiera pełne schematy punktowania kryteriów oceny. Schemat łączy się z kryterium oceny poprzez zmienną //schemat_pkt// \\ Parametry: | ||
+ | * //src// - zmienna zawierająca połączenie z bazą danych zwrócone przez funkcję polacz() | ||
- | ===== Typowe zastosowania ===== | + | ===== Przykładowe zastosowania ===== |
==== Pobranie informacji o maksymalnej liczbie punktów w teście ==== | ==== Pobranie informacji o maksymalnej liczbie punktów w teście ==== | ||
Linia 23: | Linia 49: | ||
src = polacz() | src = polacz() | ||
+ | # pobieramy wszystkie testy | ||
testy = pobierz_testy(src) | testy = pobierz_testy(src) | ||
- | maksPkt = pobierz_kryteria_oceny(src) %>% | + | # pobieramy informacje o kryteriach oceny i ich występowaniu w testach |
+ | # (pomijamy informacje o ich występowaniu w skalach) | ||
+ | maksPkt = pobierz_kryteria_oceny(src, testy = TRUE, skale = FALSE) %>% | ||
+ | # pozostawiamy jedynie "normalne" pytania | ||
+ | # (patrz opis zmiennej typ_pytania na http://zpd.ibe.edu.pl/doku.php?id=r_zmienne) | ||
+ | filter(!typ_pytania %in% c('pseudopytanie', 'pseudokryterium')) %>% | ||
+ | # grupujemy po //id_testu// | ||
group_by(id_testu) %>% | group_by(id_testu) %>% | ||
+ | # agregujemy sumując //l_punktow// | ||
summarize(maks_pkt = sum(l_punktow)) %>% | summarize(maks_pkt = sum(l_punktow)) %>% | ||
+ | # złączamy z testami | ||
inner_join(testy) %>% | inner_join(testy) %>% | ||
+ | # pobieramy z serwera | ||
collect() | collect() | ||
maksPkt | maksPkt | ||
</code> | </code> | ||
- | * pobieramy wszystkie testy; | + | === Uwagi === |
- | * pobieramy wszystkie kryteria oceny; | + | |
- | * grupujemy po //id_testu//; | + | |
- | * agregujemy sumując //l_punktow//; | + | |
- | * złączamy z testami; | + | |
- | * pobieramy z serwera. | + | |
- | === Uwaga === | + | * W egzaminie **maturalnym z języka polskiego do roku 2014 (włącznie)** występuje kryterium oceny //walory//, które **nie liczy się do maksymalnej liczby punktów**, które można było uzyskać w teście. Działa to w ten sposób, że jeśli razem z punktami za kryterium //walory// uczeń uzyskał mniej niż 70 punktów (maksymalna liczba punktów bez uwzględnienia //walorów//), to zalicza mu się ta suma, jeśli zaś więcej, to jego wynik jest "przycinany" do 70 punktów. \\ Z uwagi na brak jakiegokolwiek statystycznego sensu takiego postępowania oraz jednostkowe występowanie powyższa zasada **nie jest** w żaden sposób **uwzględniana** w strukturze bazy danych. |
- | + | * W wypadku, gdy **egzamin zawiera pytania z możliwością wyboru tematu** (np. matura z j. polskiego, matura rozszerzona z WOS lub z historii), wtedy w powyższym kodzie każdy z tematów policzony zostanie oddzielnie, zawyżając tym samym łączną liczbę punktów. | |
- | W egzaminie maturalnym z języka polskiego do roku 2014 (włącznie) występuje kryterium oceny //walory//, które **nie liczy się do maksymalnej liczby punktów**, które można było uzyskać w teście. Działa to w ten sposób, że jeśli razem z punktami za kryterium //walory// uczeń uzyskał mniej niż 70 punktów (maksymalna liczba punktów bez uwzględnienia //walorów//), to zalicza mu się ta suma, jeśli zaś więcej, to jego wynik jest "przycinany" do 70 punktów. | + | * W wypadku **matury z j. polskiego w //nowej formule// od 2015 roku** choć w schemacie oceniania kryteria //a// oraz //b// omawiane są osobno, to na kartach punktacji odnotowywana jest jedynie ich łączna punktacja. Powoduje to, że w bazie danych istnieją zarówno kryteria oceny //a// oraz //b// (dla odnotowania faktycznej struktury arkusza), jak i kryterium //ab// (w którym umieszczana jest suma punktów w taki sposób, w jaki gromadzą je OKE). W powyższym przykładzie zliczane są one niezależnie od siebie powodując, że łączna liczba punktów za kryteria //a// oraz //b// ulega podwojeniu. Ten wyjątek wchodzi w interakcję z opisanym w punkcie poprzednim. |
- | + | ||
- | Z uwagi na brak jakiegokolwiek statystycznego sensu takiego postępowania oraz jednostkowe występowanie powyższa zasada **nie jest** w żaden sposób **uwzględniana** w strukturze bazy danych. | + | |
==== Pobranie wszystkich testów, w których wystąpiło dane pytanie ==== | ==== Pobranie wszystkich testów, w których wystąpiło dane pytanie ==== | ||
Linia 53: | Linia 82: | ||
src = polacz() | src = polacz() | ||
+ | # pobieramy z bazy całą grupę danych testy | ||
testy = pobierz_testy(src) %>% | testy = pobierz_testy(src) %>% | ||
collect() | collect() | ||
- | kryteria = pobierz_kryteria_oceny(src) %>% | + | # pobieramy z bazy dane o kryteriach oceny i ich występowaniu w testach |
+ | # (pomijamy informacje o występowaniu w skalach) | ||
+ | kryteria = pobierz_kryteria_oceny(src, testy = TRUE, skale = FALSE) %>% | ||
collect() | collect() | ||
+ | # odnajdujemy test mc1 | ||
mc1 = testy %>% | mc1 = testy %>% | ||
filter(grepl('mc1', opis_testu)) | filter(grepl('mc1', opis_testu)) | ||
| | ||
+ | # odfiltrowujemy kryteria, tak by były tam jedynie zadania, które: | ||
kryterium = kryteria %>% | kryterium = kryteria %>% | ||
+ | # w teście, z którego pochodzą, mają numer 2 | ||
+ | # (ponieważ numer zadania w ogólności nie musi być liczbą i zmienna numer_pytania jest typu character, piszemy '2') | ||
filter(numer_pytania == '2') %>% | filter(numer_pytania == '2') %>% | ||
+ | # znajdują się w teście mc1 | ||
semi_join(mc1) %>% | semi_join(mc1) %>% | ||
+ | # z odfiltrowanych kryteriów pozostawiamy jedynie zmienną identyfikującą kryterium oceny | ||
select(kryterium) | select(kryterium) | ||
+ | # odfiltrowujemy z grupy danych kryteria, tak by zostały w niej jedynie informacje o wyszukanym przed chwilą kryterium oceny | ||
kryteria %>% | kryteria %>% | ||
semi_join(kryterium) %>% | semi_join(kryterium) %>% | ||
+ | # pozostawiamy tylko istotne zmienne i usuwamy duplikaty | ||
select(id_testu, kryterium) %>% | select(id_testu, kryterium) %>% | ||
+ | # dołączamy informacje o testach | ||
inner_join(testy) | inner_join(testy) | ||
</code> | </code> | ||
- | |||
- | * pobieramy z bazy całą grupę danych //testy//; | ||
- | * pobieramy z bazy całą grupę danych //kryteriaOceny//; | ||
- | |||
- | * odnajdujemy test //mc1//; | ||
- | |||
- | * odfiltrowujemy kryteria, tak by były tam jedynie zadania, które: | ||
- | * w teście, z którego pochodzą, mają numer 2 (ponieważ numer zadania w ogólności nie musi być liczbą i zmienna //numer_pytania// jest typu //character//, piszemy '2'); | ||
- | * znajdują się w teście //mc1// (//semi_join(mc1)//); | ||
- | * z odfiltrowanych kryteriów pozostawiamy jedynie zmienną identyfikującą kryterium oceny; | ||
- | |||
- | * odfiltrowujemy z grupy danych kryteria, tak by zostały w niej jedynie informacje o wyszukanym przed chwilą kryterium oceny - ponieważ jednostką obserwacji w zbiorze danych jest wystąpienie kryterium w teście, jest to właśnie to, czego szukamy; | ||
- | * aby dowiedzieć się więcej o tych testach (niż samo //id_testu//) złączamy jeszcze z grupą danych //testy//. | ||
Warto zauważyć, że gdybyśmy znali //id_kryterium// poszukiwanego pytania (np. //k_1576//), wyszukiwanie uprościłoby się do: | Warto zauważyć, że gdybyśmy znali //id_kryterium// poszukiwanego pytania (np. //k_1576//), wyszukiwanie uprościłoby się do: | ||
Linia 92: | Linia 120: | ||
testy = pobierz_testy(src) | testy = pobierz_testy(src) | ||
- | pobierz_kryteria_oceny(src) %>% | + | pobierz_kryteria_oceny(src, testy = TRUE, skale = FALSE) %>% |
filter(kryterium == 'k_1576') %>% | filter(kryterium == 'k_1576') %>% | ||
select(id_testu) %>% | select(id_testu) %>% |