Method: Statsample::Reliability::ScaleAnalysis#item_difficulty_analysis

Defined in:
lib/statsample/reliability/scaleanalysis.rb

#item_difficulty_analysisObject

Returns a dataset with cases ordered by score and variables ordered by difficulty



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# File 'lib/statsample/reliability/scaleanalysis.rb', line 109

def item_difficulty_analysis
  dif={}
  @ds.vectors.each{|f| dif[f]=@ds[f].mean }
  dif_sort = dif.sort { |a,b| -(a[1]<=>b[1]) }
  scores_sort={}
  scores=@ds.vector_mean
  scores.each_index{ |i| scores_sort[i]=scores[i] }
  scores_sort=scores_sort.sort{|a,b| a[1]<=>b[1]}
  ds_new = Daru::DataFrame.new({}, order: ([:case,:score] + dif_sort.collect{|a,b| a.to_sym}))
  scores_sort.each do |i,score|
    row = [i, score]
    case_row = @ds.row[i].to_h
    dif_sort.each{ |variable,dif_value| row.push(case_row[variable]) }
    ds_new.add_row(row)
  end
  ds_new
end