I want to winsorize the attached data at 1% and 99% winsorization on the basis of country and family and non family firms. like in this format. can anyone help me?
Country Kor
I used your original 22.xls file .
proc import datafile='/folders/myfolders/22.xls' out=have replace dbms=xls;mixed=yes;run;
proc format;
value $ fmt
'0'='Non-family firms'
'1'='Family firms';
run;
proc sort data=have;by count fam;run;
proc summary data=have ;
by count fam;
var book_debt_ratio;
output out=temp(drop=_freq_ _type_) p1= p99= /autoname;
run;
data want;
merge have temp;
by count fam;
if book_debt_ratio lt book_debt_ratio_P1 then book_debt_ratio=book_debt_ratio_P1;
if book_debt_ratio gt book_debt_ratio_P99 then book_debt_ratio=book_debt_ratio_P99;
run;
options nobyline;
title "Country #byval1";
proc tabulate data=want;
by count;
var book_debt_ratio;
class Fam;
format Fam $fmt.;
table Fam=' ',book_debt_ratio*(N mean median max min);
run;
Have you had a look at the discussion here?
https://communities.sas.com/t5/SAS-Procedures/How-to-winsorize/td-p/214976
The discussion includes the difference between winsorising and trimming.
I used your original 22.xls file .
proc import datafile='/folders/myfolders/22.xls' out=have replace dbms=xls;mixed=yes;run;
proc format;
value $ fmt
'0'='Non-family firms'
'1'='Family firms';
run;
proc sort data=have;by count fam;run;
proc summary data=have ;
by count fam;
var book_debt_ratio;
output out=temp(drop=_freq_ _type_) p1= p99= /autoname;
run;
data want;
merge have temp;
by count fam;
if book_debt_ratio lt book_debt_ratio_P1 then book_debt_ratio=book_debt_ratio_P1;
if book_debt_ratio gt book_debt_ratio_P99 then book_debt_ratio=book_debt_ratio_P99;
run;
options nobyline;
title "Country #byval1";
proc tabulate data=want;
by count;
var book_debt_ratio;
class Fam;
format Fam $fmt.;
table Fam=' ',book_debt_ratio*(N mean median max min);
run;
See the discussion and links in the article "How to Winsorize data in SAS."
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.