Narzędzia użytkownika

Narzędzia witryny


r_gr_kryteriaoceny

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
r_gr_kryteriaoceny [2015/01/30 19:23]
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]] ​[[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// ​wykonać funkcję ​[[r_dplyr_wiersze#​distinct|distinct()]]+    * [[pseudokryteriumoceny|pseudokryteriach oceny]],  
 +    * występowaniu powyższych w [[test|testach]] i [[skala|skalach]].
  
-  * Listę zmiennych zawartych ​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) %>%
r_gr_kryteriaoceny.1422642191.txt.gz · ostatnio zmienione: 2015/01/30 19:23 przez zozlak